用node.js怎么将采集到的视频实时的发送出去

现有c++代码返回的当前帧视频的指针,怎么转为nodejs中的变量类型,转为什么类型发送出去,又怎么在客户端(浏览器)播放?... 现有c++代码返回的当前帧视频的指针,怎么转为nodejs中的变量类型,转为什么类型发送出去,又怎么在客户端(浏览器)播放? 展开
 我来答
kaisa1028
2013-06-06 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2570万
展开全部
你的C++返回指针是没用的,你需要在C++里面森裂构造好一此扰闭个node的Buffer,返回这个Buffer给node,node才可以使用。另外,你要把video stream给客户端的话李橘,你需要一个media streaming server
更多追问追答
追问
关键是怎么转为Buffer呢,以及怎么返回。
用node.js就是做服务器的,还要用别人的流媒体服务器不太好吧
追答

media streaming好像有不同的protocol,具体是怎样,我不是很了解。

要把C++里的数据转成Buffer,你可以:

//比如你要传的这一段数据是‘abcd':
const char *data = "abcd";
int length = strlen(data);
/*
node.js里面require('buffer')来的那个Buffer是一个native的module里面用javascript写的,而C++里面能访问到的在node这个namespace里面的Buffer,是require('buffer')之后的那个SlowBuffer
*/
node::Buffer *slowBuffer = node::Buffer::New(length);
memcpy(node::Buffer::Data(slowBuffer), data, length);
/*
所以要建立require('buffer')里的那个Buffer,用C++是不行的,一定要从V8现在使用的Context里面找出global变量里的那个Buffer
*/
v8::Local<v8::Object> global = v8::Context::GetCurrent()->Global();
v8::Local<v8::Function> BufferConstructor = v8::Local<v8::Function>::Cast(global->Get(v8::String::New("Buffer")));
//调用构造函数建立Buffer
v8::Handle<v8::Value> args[3] = { slowBuffer->handle_, v8::Integer::New(length), v8::Integer::New(0) };
v8::Local<v8::Object> buf = BufferConstructor->NewInstance(3, args);
//最后的这个buf就是你要的Buffer。

 或者你也可以返回SlowBuffer之后,在node.js里面用SlowBuffer建立Buffer。

哇嘎嘎嘎呼呼
2019-08-27 · TA获得超过462个赞
知道答主
回答量:377
采纳率:33%
帮助的人:16.9万
展开全部
北漂的心酸,公众号,最新node.js从入门到精通及服务器搭建课程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式