FFmpeg:循环帧序列中的第一帧和最后一帧

FFmpeg:循环帧序列中的第一帧和最后一帧

我有 180 个文件的帧序列,.png其命名方式如下:

fr_f6a20_0001.png
...
fr_f6a20_0180.png

我想创建一个.mp4序列文件,但将第一帧和最后一帧稍微加长一点

以纯文本形式,我想要获得由三个连接部分组成的输出视频:

  • 第一帧 1 秒长度循环(30 帧)
  • 帧序列(180帧)
  • 最后一帧的 1 秒长度循环(30 帧)

阅读文档后,我得出了这个命令:

ffmpeg -framerate 30 -pattern_type sequence -i fr_f6a20_%04d.png -filter_complex "[0]loop=30:1:0[first];[0]loop=30:1:180[last];[first][0][last]concat=n=3:v=1:a=0[out]" -map "[out]" -pix_fmt yuv420p out.mp4

我从命令中得到的信息:

  • 第一帧1s循环(30帧)
  • 帧序列渲染三次(180 x 3 帧)
  • 最后一帧的 1 秒长度循环(30 帧)

我想我遗漏了一些东西,但我不知道是什么:(

答案1

使用平板对此进行过滤。

ffmpeg -framerate 30 -pattern_type sequence -i fr_f6a20_%04d.png -vf "tpad=start_duration=1:start_mode=clone:stop_duration=1:stop_mode=clone" -pix_fmt yuv420p out.mp4

相关内容