FFMPEG:如何保持 UDP 流连接打开,即使源丢失几分钟
FFMPEG: How to keep UDP stream connection open even source drop some minute
i 使用 ffmpeg 将 UDP 流(从 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 文件中指定超时
i 使用 ffmpeg 将 UDP 流(从 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 文件中指定超时