【问题标题】:FFMPEG: How to keep UDP stream connection open even source drop some minuteFFMPEG:如何保持 UDP 流连接打开,即使源下降了几分钟
【发布时间】:2016-06-14 07:51:32
【问题描述】:

我使用 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 保持连接打开并等待每次从源开始时接收流。谢谢

【问题讨论】:

标签: ffmpeg udp video-streaming vlc dvb


【解决方案1】:

对于 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 文件中指定超时

【讨论】:

  • fifo_size 在 RTP 中不需要?
  • 如果你需要一些缓冲添加 fifo_size 否则不要。
  • 对于 RTP,我收到错误 Option timeout not found. (ffmpeg version 4.4)
猜你喜欢
  • 2016-01-10
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
相关资源
最近更新 更多