使用 ffmpeg 捕获视频时“输出流中出现非单调 DTS”

使用 ffmpeg 捕获视频时“输出流中出现非单调 DTS”

我正在尝试使用新的 USB 捕获设备和 FFMPEG 在 Linux 上捕获 VHS 视频。 

我可以成功捕获音频(使用 Alsa)或视频(使用 v4l2),但是当我尝试使用相同的命令执行这两项操作时,会出现错误,并且视频和声音都非常混乱:

这是我正在使用的命令:

ffmpeg -report -thread_queue_size 512 -f v4l2 -framerate 30 -video_size 720x480 -i /dev/video0 -thread_queue_size 3584 -f alsa -ac 2 -i hw:1,0 -vcodec h264_omx -zerocopy 1 -b:v 1750k -pix_fmt yuv420p -acodec aac -b:a 96k -strict -2 test-combine.m4v

此 ffmpeg 命令在使用与此非常相似的其他 USB 设备和完全相同的 PC/VCR 设置时运行良好(我使用的是 raspberry pi,h264_omx 是硬件编码器)。所以我很惊讶它不起作用。主要错误消息如下,重复:

[aac @ 0x1017ba0] Queue input is backward in time [ipod @ 0x1015490] Non-monotonous DTS in output stream 0:1; previous: 307984, current: 307814; changing to 307985. This may result in incorrect timestamps in the output file.

有人知道这里会发生什么以及如何使命令起作用吗?到目前为止,我尝试了一些方法,但没有任何改善:

  • 在命令中切换 Alsa 和 v4l2 参数的顺序
  • 随意添加一些我从谷歌搜索中找到的 ffmpeg 参数,即use_wallclock_as_timestamps 1 -fflags +genpts  -correct_ts_overflow 0(全部包含在命令的前面 - 没有运气)
  • 如果设备本身有缺陷,则更换它(与第二个结果相同)

谢谢!

相关内容