nginx 搭建http-flv(rtmp)流媒体的一次尝试

项目需要通过调用海康摄像头实现远程监控,但是由于网络限制,只能通过代理来调用,因此只能放弃海康官网提供的视频插件,经过一番搜索,决定采用此种方式:nginx 搭建http-flv(rtmp)流媒体

基本的配置什么的,我就不在赘述,可参考网上的方法,经验证后的连接如下:
Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流

nginx 搭建http-flv(rtmp)流媒体

使用bilibili开源的flvjs实现摄像头rtsp视频直播
测试过程中的问题:
1、ffmpeg指令执行出错
ffmpeg默认推流方式采用UDP方式,若需要使用TCP协议,则需要修改,添加 -rtsp_transport tcp
添加后:ffmpeg -rtsp_transport tcp -i url

2、视频流的编码方式错误
海康威视摄像头的视频流当前默认采用的是H265编码,转成flv格式的流时会报错,需要转码成H264格式;
最终指令为:ffmpeg -rtsp_transport tcp -i rtspurl -c:v libx264 -f flv rtmp://127.0.0.1:1935/hls/name
注:rtmp协议的url与nginx中的配置相关;

3、通过flv.js实现http协议的url访问
需要在nginx中添加nginx-http-flv-module,或者直接下载带有此model且编译好的nginx。

最开始使用的是带有nginx-http-rtmp-module的nginx,到转成http协议拉流时,nginx无法正常启动,最后发现需要用nginx-http-flv-module的nginx。

至此,整个搭建过程中的主要问题总结完毕,记录下以供后续使用,文章仅供参考,如有问题,请百度其他文章。