Ffmpeg 忽略 -itsoffset?

Ffmpeg 忽略 -itsoffset?

我将两个图像序列并排组合成一个视频。第一个序列需要在整个视频时长内播放,但第二个序列应在 50 秒后开始播放。

我调用 ffmpeg 如下:

ffmpeg -f image2 -r 25 -i ./sequence1/frame.%04d.png -f image2 -r 25 -itsoffset 00:00:50 -i ./sequence2/frame%05d.png -filter_complex '[0:v]pad=iw+300:ih[int];[int][1:v]overlay=1620:0[vid]' -map [vid] -c:v libx265 -crf 23 -preset slow output.mp4

不幸的是,ffmpeg 似乎忽略了我的-itsoffset论点(或者我误解了这个论点的运作方式?)因为两个序列都是从视频的开头开始的。

有想法吗?

答案1

当输入包含时间戳时必须应用该-itsoffset选项。您的输入是图片并且没有时间戳,因此itsoffset选项对它们没有影响。

1-达到您的目标:

已经延迟的图片流,必须转换为视频流:ffmpeg -f image2 -framerate 25 -i ./sequence2/frame%05d.png -c:v libx265 -crf 23 -preset slow -pix_fmt yuv420p ./sequence2/sequence2.mp4

现在您可以使用此mp4文件代替带有itsoffset选项的第二个序列。 ffmpeg -f image2 -r 25 -i ./sequence1/frame.%04d.png -itsoffset 00:00:50 -i ./sequence2/sequence2.mp4 -filter_complex '[0:v]pad=iw+300:ih[int];[int][1:v]overlay=1620:0[vid]' -map [vid] -c:v libx265 -crf 23 -preset slow output.mp4

2- 注意:

在这种情况下,我们有一个编码和解码循环,这会导致一些质量损失。但这并不是太令人担心的事情。

-r-framerate不是相同的选项,在这些情况下你最好-framerate使用-r

相关内容