使用 FFMPEG 将多个 PNG 序列作为不同时间点的叠加

使用 FFMPEG 将多个 PNG 序列作为不同时间点的叠加

我正在尝试在视频的不同时间点叠加三个不同的 PNG 序列。第一个序列按预期工作。它在 0 到 4 秒之间进行动画处理。从 4 到 8 秒。我只看到第二个序列的最后一帧,从 8 到 12 秒。只有第三个序列的最后一帧。所有三个序列都是 100 帧。

有任何想法吗?

这就是我一直在尝试的:

"C:\ffmpeg\bin\ffmpeg.exe" -i %1 ^
-start_number 0 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_Start\Vandmaerke_Start_%%03d.png" ^
-start_number 0 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_Midt\Vandmaerke_Midt_%%03d.png" ^
-start_number 0 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_End\Vandmaerke_End_%%03d.png" ^
-filter_complex ^
"[0:v][1:v]overlay=enable='between(t,0,4)' [temp0]; ^
[temp0][2:v]overlay=enable='between(t,4,8)' [temp1]; ^
[temp1][3:v]overlay=enable='between(t,8,12)' [out]" -map [out] -map 0:a -c:a copy "C:\Users\ojan\Documents\2017 Lukker\output.mp4"

答案1

使用

ffmpeg -i %1 ^
-start_number 0 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_Start\Vandmaerke_Start_%%03d.png" ^
-start_number 0 -itsoffset 4 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_Midt\Vandmaerke_Midt_%%03d.png" ^
-start_number 0 -itsoffset 8 -i "C:\Users\ojan\Documents\2017 Lukker\Vandmaerke_End\Vandmaerke_End_%%03d.png" ^
-filter_complex ^
"[0:v][1:v]overlay=enable='between(t,0,4)' [temp0]; ^
[temp0][2:v]overlay=enable='between(t,4,8)' [temp1]; ^
[temp1][3:v]overlay=enable='between(t,8,12)' [out]" -map [out] -map 0:a -c:a copy "C:\Users\ojan\Documents\2017 Lukker\output.mp4"

FFmpeg 旨在处理包含定时样本的文件。overlay过滤器根据相应的时间戳使用帧对(BG/FG)。-itsoffset X将视频中包含的或由 ffmpeg 生成的时间戳(例如图像序列)偏移 X 秒。

相关内容