我正在运行ffmpeg以使用以下命令行在Decklink BlackMagic卡上显示传入流:
ffmpeg -y -f ourFmt -probesize 32 -i - -f decklink -preset ultrafast
-pix_fmt uyvy422 -s 1920x1080 -r 30 -af volume=0.1 -max_delay 10000
DeckLink Mini Monitor
基本上我通过UDP通过互联网获取视频并将其流式传输到ffmpeg stdin。音频和视频流都有pts和dts,并且完全同步,如果连接良好则没有问题。
但是,如果连接出现问题,我开始收到错误,有时视频延迟会显着增加,音频会停止工作。 我得到的错误是:
ffmpeg:[decklink @ 0x26cc600]没有足够的缓冲视频 帧。视频可能行为不端! ffmpeg:[decklink @ 0x26cc600]没有 缓冲的音频。音频会行为不端! ffmpeg:最后一条消息 重复4次ffmpeg:[decklink @ 0x26cc600]还不够 缓冲视频帧。视频可能行为不端! ffmpeg:[decklink @ 0x26cc600]没有缓冲的音频。音频会行为不端! ffmpeg的:
最后一条消息重复3次ffmpeg:frame = 5204 fps = 30 q = -0.0 size = N / A time = 00:02:53.76 bitrate = N / A dup = 385 drop = 5 speed = 0.993x
ffmpeg:[decklink @ 0x26cc600]没有缓冲的音频。音频会 胡作非为! ffmpeg:最后一条消息重复18次ffmpeg: [decklink @ 0x26cc600]没有足够的缓冲视频帧。 视频可能行为不端! ffmpeg:[decklink @ 0x26cc600]没有 缓冲的音频。音频会行为不端!
问题是当连接恢复正常时,视频会一直行为不通,直到我重新启动流。我想要做的是让FFmpeg跳到最后一秒的内容并从那里播放同步视频,丢弃所有后期数据,是否可能?