ffmpeg 在将 50p 重新隔行到 50i 时启动时间码帧误解

ffmpeg 在将 50p 重新隔行到 50i 时启动时间码帧误解

我们尝试使用此命令将 50p 文件转换为 50i:

ffmpeg -i“%%i”-vcodec dnxhd -b:v 120M -q 1 -flags +ildct -vf“fps = 50,format = yuv422p,scale = 1920:1080,interlace,fieldorder = tff”“coded%%〜ni_1080i50.mov”

生成的文件具有相同的持续时间和起始小时、分钟和秒。但起始时间码的帧数加倍。例如

原始时间:10:05:03:12 编码时间:10:05:03:24

或原始:10:05:03:20 编码:10:05:04:15

这肯定是 -vf “隔行” 过滤器的问题。当我删除它并再次将文件编码为 1080p50 时,时间码是正确的。

我猜这是误解。也许代码中应该用 *2 代替 /2?我认为正确的对应时间码应该是:

50p: 00 01 02 03 04 05 ... 48 49

50i: 00 00 01 00 02 00 ... 24 24

有没有什么办法可以避免这种行为?

亲切问候 Bjoern

相关内容