html5 – 如何将网络摄像头流式传输到服务器并操纵流

前端之家收集整理的这篇文章主要介绍了html5 – 如何将网络摄像头流式传输到服务器并操纵流前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将用户的网络摄像头(从浏览器)流式传输到服务器,我需要服务器能够操作流(在该视频流上运行一些C算法)并向用户发回信息.

我仔细研究了WebRTC和MediaCapture并阅读了这里的例子:https://bitbucket.org/webrtc/codelab/overview.

然而,这是为了点对点视频聊天.根据我的理解,getUserMedia的MediaStream通过RTCPeerConnection传输(使用addStream);我想知道的是:我可以使用它,但在服务器上处理视频流吗?

在此先感谢您的帮助

解决方法

这是我设计的解决方案.
我在这里发布寻求同样信息的人:-)

前端侧

我使用WebRTC API:使用getUserMedia获取网络摄像头流,打开RTCPeerConnection(以及RTCDataChannel获取下行信息).
该流是DTLS加密的(强制的),多媒体流使用RTP和RTCP.视频采用VP8编码,Opus编码音频.

后端侧

在后端,这是复杂的部分.
我能找到的最好的(另一种)替代方案是Janus Gateway.它需要处理很多东西,比如DTLS握手,RTP / RTCP解复用等.基本上,它每次发送RTP数据包时都会触发一个事件. (RTP数据包通常是MTU的大小,因此视频帧和RTP数据包之间没有1:1的映射).

然后我构建了一个GStreamer(版本1.0)来解包RTP数据包,解码VP8,确保视频缩放和颜色空间/格式转换以发出BGR矩阵(与OpenCV兼容).管道开头有一个AppSrc组件,最后有一个AppSink.

还剩下什么

我必须采取额外措施来确保良好的可伸缩性(线程,内存泄漏等),并找到一种干净有效的方法来使用我在此程序中使用的C库.

希望这可以帮助 !

猜你在找的HTML5相关文章