开始的我也使用了网络的介绍,用ffmpeg转成rmtp流,但最后发现如果要播放rmtp流是需要flash支持的,现在的flash的支持度很差,显然不行,网上现在能找到的FFmpeg + nginx-rtmp-module方案并不是一个好方案。所以还是需要使用方案三。
以下的这个表写的比较清楚,能支持html5播放器的就httpflv和hls,二选一选择httpflv。
在本人实际 *** 作中使用的流媒体服务器并不是nginx-http-flv-module ,而是用了SRS(simple rmtp server)+FFMPEG方案,感觉更简单。
搭建过程先省略。(详细搭建SRS+ffmpeg单独文档)
遇到的问题:
搭建完成,推流后VLC能播放,但是用flv.js的播放器
http://bilibili.github.io/flv.js/demo/
总是无法播放,后来发现下面还是有提示错误的。
这里主要是要注意转换语句:
原来是这样,参数-vcodec 和 -acodec 都用的copy,而实际摄像头处理的视频格式是h.264+pcma_u
后来改成这样,将-acodec 改成aac
就能看到视频了
视频里是家中窗外风景。
实际使用中发现,如果视频部分h264不转码,用copy的模式的话cpu性能不高,可以支持很多路数。
视频和vlc播放的时候延时10s左右,感觉延时有点大。
接下来就是要把flv.js移植到工程中。然后现在的推流什么的都是命令行执行的,这些肯定不行.
js海康对讲声音音调变了是网络不太好或有电子产品干扰导致的。在同一局域网内开启对讲后设备与客户端(电脑或手机)形成回路,或是离设备太近,声音自激形成回响。同时,设备边上有电子产品干扰,也会有影响,设备附近不要有电子设备。 videojs的播放flv格式RTMP流需要浏览器运行flash插件,但是chrome现在已经不支持flash了,所以我们使用flvjs前端插件作为替代方案,并在流媒体服务器上加入了权限验证功能限制用户访问。
此方案是基于上一节中的方案进行的优化,所以没有提及的地方和原方案保持不变。
一. 在nginx中安装nginx-http-flv-module插件
有编译好的版本直接使用就行,然后修改nginx.conf文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)