FFMPEG 保存多个帧并用作电影

标签 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 的编码需要这么长时间。

任何帮助将非常感激!

最佳答案

利用
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 过滤器将用克隆的帧填补这些空白。

关于FFMPEG 保存多个帧并用作电影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56645127/

相关文章:

c - Adobe alchemy 编译器问题 - 它生成 .l.bc 文件,如何将它们转换为 swc 文件?

windows - FFMPEG - 批量提取媒体持续时间并写入文本文件

android - FFmpeg:对 'main' 的 undefined reference

ffmpeg - 输出 AVStream 中的常量 time_base

ffmpeg 将视频从 25 fps 加速到 60 fps 丢帧

ffmpeg - 如何在文件过多的情况下使用 ffmpeg concat 协议(protocol)?

ffmpeg 交叉淡入淡出 2 张 1080p 的图片

rust - 如何避免 std::process::Command 单引号转义

python - 在 python 应用程序 : ffmpeg tool or libav* libraries? 中使用 FFmpeg

assembly - asm指令 "ldr"和 "ldr_post"有什么不同?