以下内容主要涉及1个rtsp视频源,1至2台计算机/服务器
此处假设视频源地址为rtsp://username:password@192.168.1.3:554/h264/ch1/main/av_stream
计算机/服务器地址为192.168.1.4和192.168.1.5,分别部署视频转码和视频直播推流
目标数据流地址为rtmp://192.168.1.5/live/v1
使用工具:
ffmpeg-4.2.1
nginx-1.11.10(含nginx-rtmp-module)
vlc player
以上工具的安装可参考其他相关博客
1、视频转码
在192.168.1.4服务器上,使用shell运行如下命令:
ffmpeg -rtsp_transport tcp -i rtsp://username:password@192.168.1.3:554/h264/ch1/main/av_stream -flush_packets 1 -vf scale=800:-1 -probesize 32 -acodec copy -f flv rtmp://192.168.1.5:1935/live/v1
在以上命令中
-rtsp_transport tcp 表示强制使用TCP协议进行数据读取,如不进行该配置,则默认采用UDP协议进行读取,在网络状况糟糕或其他一些原因下,使用UDP可能导致数据包大量丢失。
-i rtsp://username:password@192.168.1.3:554/h264/ch1/main/av_stream,配置源数据流
-vf scale=800:-1 ,配置转码后视频流的大小,如800:600标识800x600像素;800:-1表示宽度为800像素,高度则根据源视频流图像比例进行自动计算
-probesize 32,配置探测读入大小,默认值为5000000 ,ffmpeg会读取这些数量的数据进行分析

本文档介绍了如何利用ffmpeg和nginx-rtmp搭建rtsp到rtmp的直播服务。首先,通过ffmpeg在192.168.1.4服务器上对rtsp视频源进行转码,然后将转码后的流推送到192.168.1.5服务器上的nginx-rtmp服务,监听在rtmp://192.168.1.5/live/v1。转码过程中,使用tcp协议保证数据传输的可靠性,并调整视频尺寸和探测大小。最后,使用vlc player验证rtmp流。
最低0.47元/天 解锁文章
678

被折叠的 条评论
为什么被折叠?



