FFMPEG:如何保持 UDP 流连接打开,即使源丢失几分钟

FFMPEG: How to keep UDP stream connection open even source drop some minute

i 使用 ffmpegUDP 流(从 DVB 信号生成)解码为 HLS使用此代码:

ffmpeg -i udp://239.1.2.1:60001?fifo_size=50000000 -acodec copy -vcodec copy -hls_time 2 -hls_wrap 5 -f hls /var/www/html/ts/1.m3u8

有时 DVB 信号下降几秒钟或几分钟,导致 ffmpeg 停止编码并显示错误:

udp://239.1.2.1:60001: Connection timed out

当我在 VLC 播放器中播放 udp 并且输入流下降几秒钟时 VLC 等待停止播放,当流再次开始播放时。

现在我想知道是否存在一种方法让 ffmpeg 发现流停止并且不显示超时错误...这意味着 FFMPEG 每次从源开始时保持连接打开并等待接收流。谢谢

对于 UDP 流,您可以像这样设置超时:

ffmpeg -timeout 2000 -i udp://239.1.2.1:60001?fifo_size=50000000

对于 RTP 流,您可以像这样设置超时:

ffmpeg -timeout 2000 -i rtp://192.168.0.12:1234 

对于 RTSP 流,您可以在 SDP 文件中指定超时