我想从网络流A中获取视频流,而从网络流B中获取音频流。
我尝试了以下命令:
ffmpeg -i rtsp://192.168.1.1 -i http://192.168.1.2 -c copy -map 0:v:0 -map 1:a:0 -f mp4 out.mp4
这会不断出现以下错误:
[rtsp @ 0x564b44779f60] max delay reached. need to consume packet
[rtsp @ 0x564b44779f60] RTP: missed 591 packets
同时使用命令
ffmpeg -i rtsp://192.168.1.1 -c copy -f mp4 out.mp4
和
ffmpeg -i http://192.168.1.2 -c copy -f mp3 out.mp3
工作顺利。
视频流是HEVC,音频流是MP3。我想念什么?
答案 0 :(得分:0)
要回答我自己的问题:
一次使用两个或多个源时,数据包丢失似乎增加了。如果有人知道为什么,那么对此的答案仍然会很感激。
但是,使用TCP作为RTSP的传输协议,显然可以防止数据包丢失:
ffmpeg -rtsp_transport tcp -i rtsp://...
通过另外提高thread_queue_size
可以获得更好的结果:
-thread_queue_size 1024
上述两个选项都是输入选项,必须放在-i
之前。