使用 WebSockets 进行 HTML5 视频直播

实验环境:Ubuntu。

参考以下两个链接进行实践:


http://segmentfault.com/blog/xingrz/1190000000392586

http://phoboslab.org/log/2013/09/html5-live-video-streaming-via-websockets


这个解决方案是通过一个MPEG流转发服务器来实现的,该转发服务器监听8082端口,将收到的MPEG视频流通过WebSockets分发给所有链接的服务器。而MPEG视频流是通过HTTP发送到转发服务器的。


首先安装ffmpeg,可以参考:Ubuntu下安装ffmpeg


在运行

npm install ws
时有可能出错,可以参考以下链接解决:Ubuntu下“npm install ws”运行出错


安装成功之后便可正常启动服务器,如下图所示:


技术分享


启动服务器之后,在浏览器中打开两个stream-example.html,并关掉其中一个窗口,在转发服务器终端的显示结果如下图所示:


技术分享


然后可以通过如下命令从摄像头捕捉视频:

ffmpeg -s 320x240 -f video4linux2 -i /dev/video0 -f mpeg1video -b 800k -r 30 http://127.0.0.1:8082/secret/320/240/


如果连接的是USB摄像头,可以通过如下图所示的做法来在虚拟机和主机之间进行切换:


技术分享


或者通过如下命令将视频文件发送到指定的服务器和端口:

ffmpeg -i Example.mp4 -f mpeg1video -b 800k -r 30 http://127.0.0.1:8082/secret/320/240/


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。