FFMPEG:如何保持UDP流连接打开甚至源掉一分钟

4 udp ffmpeg vlc video-streaming dvb

我解码UDP使用流(从DVB信号genrate)FFMPEGHLS与此代码:

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
Run Code Online (Sandbox Code Playgroud)

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

udp://239.1.2.1:60001: Connection timed out
Run Code Online (Sandbox Code Playgroud)

当我在VLC播放器中播放udp且输入流下降了一些第二个VLC时,请停止播放,当流重新开始时再次播放。

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

Sam*_*ail 5

对于UDP流,您可以设置超时,例如:

ffmpeg -timeout 2000 -i udp://239.1.2.1:60001?fifo_size=50000000
Run Code Online (Sandbox Code Playgroud)

对于RTP蒸汽,您可以设置超时,例如:

ffmpeg -timeout 2000 -i rtp://192.168.0.12:1234 
Run Code Online (Sandbox Code Playgroud)

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