FFMPEG可容纳多帧并用作电影

时间:2019-06-18 08:46:26

标签: ffmpeg

我有一个正在尝试从中创建跳投的视频。例如,我希望命令的输出将原始剪辑的第5帧显示30帧,将OG剪辑的第25帧显示30帧。

假设OG片段为30 FPS

ffmpeg -t 1 -i og_clip.mp4 -filter_complex "
    [0]select=eq(n\,5)[H1];[0][H1]overlay[O1];
    [0]select=eq(n\,25)[H2];[0][H2]overlay[O2];
    [O1][O2]concat=n=2[Merge]" -map "[Merge]" out.mp4

以上方法无法正常工作。

到目前为止,我一直在做的事情包括两个部分:

ffmpeg -i og_clip.mp4 -vf "select=eq(n\,5)" -vframes 1 -y out_0.png
ffmpeg -i og_clip.mp4 -vf "select=eq(n\,25)" -vframes 1 -y out_1.png
ffmpeg -t 1 -i og_clip.mp4 -i out_0.png -i out_1.png -filter_complex "
    [0][1]overlay[H1];[0][2]overlay[H2];
    [H1][H2]concat=n=2[Merge]" -map "[Merge]" out.mp4

一直在为我工作。唯一的问题是,我要使用的每帧首先转换为png的过程都花费了很长时间。我试图将所有内容压缩为一个命令。我认为png的编码需要这么长时间。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

使用

ffmpeg -t 1 -i og_clip.mp4 -filter_complex "[0]select=eq(n\,5)+eq(n\,25),settb=1/30,setpts=N*30,fps=30" -an out.mp4

选择帧后,将时间戳调整为相隔30帧。然后fps过滤器会用克隆的帧填补这些空白。