我正在尝试使用 ffmpeg 创建显示每半秒帧的示例视频。
例如,如果视频为 24 fps,我希望每 12、24、36、48... 帧等创建一个视频节目,并使用这些帧创建视频。
我找到了一种方法,即提取图像文件并将结果编码为视频。
ffmpeg -i 输入 -vf 选择='not(mod(n\,12))' -vsync vfr image_%05d.jpg
并制作视频,
ffmpeg -framerate 24 -i image_%05d.jpg -c:v libx264 -r 24 -pix_fmt yuv420p 输出.mpeg
现在,我想知道是否有办法跳过保存图像文件的步骤并在一个过程中获得重新编码的视频。
答案1
使用
ffmpeg -i input -vf select='not(mod(n\,12)),setpts=N/FRAME_RATE/TB' -r 24 output.mp4
Setpts 使得选定的帧按照输出帧速率连续序列具有时间戳。