某些情况下需要将流媒体的rtmp服务拉到本地进行处理后再进行发布,目前最好的一种方案就是ffmpeg拉流,相对比较稳定。SRS也采用的是这种方式。
一、ffmpeg拉rtmp转推rtmp
ffmpeg -f flv -i \
rtmp://yunyuntx.com/live/tv \
-vcodec copy \
-acodec copy \
-f flv -y \
rtmp://127.0.0.1:1935/live/tv
这个命令是srs所采用的拉流命令。拉流后,转推给SRS再发布出去。
二、ffmpeg拉rtmp流生成hls
./ffmpeg \
-i rtmp://yunyuntx.com/live/tv \
-vcodec copy \
-acodec copy \
-vbsf h264_mp4toannexb \
-f hls \
-hls_flags delete_segments \
-segment_list_size 10 \
-hls_list_size 5 \
playlist.m3u8
-hls_list_size m3u8文件保存ts的个数;
-hls_wrap ts文件保存的个数(不设置保存所有);
-hls_flags delete_segments 自动删除旧的ts,只保留最新的几个
-start_number 1 指定生成的ts的起始序号
参考
https://blog.csdn.net/qq1036548849/article/details/106022067
https://stackoverflow.com/questions/27227175/ffmpeg-http-live-streaming-remove-old-segments
-vbsf 参数 https://www.cnblogs.com/zhibei/p/12551810.html
https://ffmpeg.org/pipermail/ffmpeg-user/2013-November/018558.html