我正在尝试使用ffmpeg
的单个实例将多个RTSP流转换为HLS。我正在使用的命令是这样的:(我把它分成多行,这样更容易阅读)
我面临的问题是,当我查看生成的ts文件时,ffmpeg正在将相同的视频流(url1)写入m1和m2目录。我究竟做错了什么? url1和url2都有效。如果我将命令分解为两个不同的ffmpeg
进程,它就可以正常工作。
感谢。
/usr/local/bin/ffmpeg -i rtsp://url1 -fflags flush_packets
-max_delay 2 -flags -global_header -hls_time 2 -hls_list_size 3
-hls_segment_filename m1/video%03d.ts -hls_flags delete_segments
-vcodec copy -y m1/video1.m3u8
-i rtsp://url2 -fflags flush_packets
-max_delay 2 -flags -global_header -hls_time 2 -hls_list_size 3
-hls_segment_filename m2/video%03d.ts -hls_flags delete_segments
-vcodec copy -y m2/video2.m3u8
答案 0 :(得分:1)
ffmpeg需要格式为
的语法ffmpeg -i input1 -i input2 ... -i inputn output1 output2 ... outputn
设置-map
选项的表示输入到输出的路由。
所以,
-i rtsp://url1 -i rtsp://url2
-map 0 -fflags flush_packets -max_delay 2 -flags -global_header
-hls_time 2 -hls_list_size 3 -hls_segment_filename m1/video%03d.ts
-hls_flags delete_segments -vcodec copy -y m1/video1.m3u8
-map 1 -fflags flush_packets -max_delay 2 -flags -global_header
-hls_time 2 -hls_list_size 3 -hls_segment_filename m2/video%03d.ts
-hls_flags delete_segments -vcodec copy -y m2/video1.m3u8