失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux系统下实现监控摄像头RTSP协议对接腾讯云直播

Linux系统下实现监控摄像头RTSP协议对接腾讯云直播

时间:2019-02-24 05:24:10

相关推荐

Linux系统下实现监控摄像头RTSP协议对接腾讯云直播

Linux系统下实现监控摄像头RTSP协议对接腾讯云直播

1.ffmpeg安装

sudo yum localinstall --nogpgcheck /free/el/rpmfusion-free-release-7.noarch.rpm /nonfree/el/rpmfusion-nonfree-release-7.noarch.rpmyum -y install ffmpeg

2.nginx-rtmp安装和配置

安装nginx组件

yum -y install gcc openssl-devel pcre-devel zlib-devel

下载nginx-rtmp-module

//方式一:git命令下载git clone /arut/nginx-rtmp-module.git//方式二:下载nginx-rtmp-module-1.2.0.tar.gz//解压tar -zxvf nginx-rtmp-module-1.2.0.tar.gz//重命名mv nginx-rtmp-module-1.2.0 nginx-rtmp-module

安装nginx

tar zxvf nginx-1.14.2.tar.gz cd nginx-1.14.2/

编译和安装

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module make make install

3.开通腾讯云直播

(1)点击立即使用开通服务

(2)点击辅助工具选择地址生成器生成推流地址

4. nginx-rtmp配置

(1)创建nginx本地文件存放目录

mkdir -p /mnt/share/html/hls

(2)rtmp配置

vim /usr/local/nginx/conf/nginx.conf#文件末尾追加rtmp {server {listen 1935; #监听的端口 chunk_size 4000;# rtmp推流请求路径 application hls { live on;hls on;# 本地保存hlv格式文件hls_path /mnt/share/html/hls; hls_fragment 10s;# 转推[腾讯云](https://l.gushuji.site/tencent)push rtmp://106630./live/rtsptest?txSecret=b8d28c20ab68f2467727b837eefcb4a2&txTime=5F140099;}}}

(3)检查配置是否正确

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

(4)启动nginx

/usr/local/nginx/sbin/nginx

5.ffmpeg拉摄像头的视频流

ffmpeg -rtsp_transport tcp -i "rtsp://admin:1111aaaa@172.19.20.201:554/cam/realmonitor?channel=1&subtype=0" -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 4000x3000 -q 10 -f flv "rtmp://127.0.0.1:1935/hls"

注:若不加-rtsp_transport可能会报Could not find codec parameters for stream 0 (Video: h264, none)错误,ffmpeg默认使用udp方式传输,在使用:avformat_find_stream_info 会出现返回 codec_id ==AV_CODEC_ID_NONE 的情况;

如果id = none 的情况在 打开解码器的时候肯定会报错,所以在 执行 avformat_find_stream_info 的时候有必要判断一下视频信息的有效性!

在 avformat_open_input打开流地址之前 强制ffmpeg 以tcp传输 ,可以解决上面返回 none的情况。

6.检测

(1) 检测ffmpeg是否从摄像头拉流到nginx-rtmp, 如果成功,可以看到:

[aac @ 0x12fb900] Queue input is backward in time0:01:59.57 bitrate=4261.0kbits/s speed=0.934x [flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 119622, current: 119605; changing to 119622. This may result in incorrect timestamps in the output file.[aac @ 0x12fb900] Queue input is backward in time0:02:14.50 bitrate=4266.0kbits/s speed=0.933x [flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 134622, current: 134605; changing to 134622. This may result in incorrect timestamps in the output file.[aac @ 0x12fb900] Queue input is backward in time0:02:29.15 bitrate=4263.7kbits/s speed=0.932x [flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 149621, current: 149606; changing to 149621. This may result in incorrect timestamps in the output file.[aac @ 0x12fb900] Queue input is backward in time0:02:44.50 bitrate=4267.9kbits/s speed=0.931x [flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 164621, current: 164606; changing to 164621. This may result in incorrect timestamps in the output file.[flv @ 0x12e37a0] Failed to update header with correct duration.ate=4267.0kbits/s speed=0.93x[flv @ 0x12e37a0] Failed to update header with correct filesize.frame= 4333 fps= 23 q=-1.0 Lsize= 90306kB time=00:02:53.47 bitrate=4264.6kbits/s speed=0.931x video:86498kB audio:3599kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.231989%[aac @ 0x12fb900] Qavg: 1180.000Exiting normally, received signal 2.[root@localhost hls]# ll总用量 54324-rw-r--r--. 1 nobody nobody 5484336 7月 16 07:03 live-10.ts-rw-r--r--. 1 nobody nobody 6584324 7月 16 07:03 live-11.ts-rw-r--r--. 1 nobody nobody 5495052 7月 16 07:03 live-12.ts-rw-r--r--. 1 nobody nobody 5491292 7月 16 07:04 live-13.ts-rw-r--r--. 1 nobody nobody 5482456 7月 16 07:04 live-14.ts-rw-r--r--. 1 nobody nobody 5491104 7月 16 07:04 live-15.ts-rw-r--r--. 1 nobody nobody 4022072 7月 16 07:04 live-16.ts-rw-r--r--. 1 nobody nobody 5485652 7月 16 07:02 live-7.ts-rw-r--r--. 1 nobody nobody 5487720 7月 16 07:03 live-8.ts-rw-r--r--. 1 nobody nobody 6585452 7月 16 07:03 live-9.ts-rw-r--r--. 1 nobody nobody155 7月 16 07:04 live.m3u8

(2)检测是否推送到腾讯云

如果推送成功则可以在流管理界面的状态看到直播中的字样。

点击操作中的测试则可以看到摄像头的直播画面如下:

如果觉得《Linux系统下实现监控摄像头RTSP协议对接腾讯云直播》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。