FFmpeg - 将一个视频叠加到另一个视频上?

时间:2016-02-08 12:11:34

标签: video ffmpeg processing video-processing openframeworks

  

我知道这是一个非常开放的问题。我已经对FFmpeg做了一些初步阅读,但现在需要一些指导。

问题

  • 我有一段视频input.mov
  • 我想在overlay.wov
  • 之上叠加另一个视频
  • 结果应为单个视频(output.mov)。

注释

谢谢 - C。

编辑

  1. 后端是Go / Ruby。打开使用新语言。
  2. 应保留第一个视频的音频。
  3. 设置叠加开始的间隔时间会很长。
  4. 当前解决方案

    ffmpeg -i input.mov -i overlay.mov -filter_complex "[0:0][1:0]overlay[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18  output.mov
    
    然而,这几乎可行:

    • 即使两个视频(input.mov& overlay.mov)长度相同,叠加也会缩短。
    • 除了0:00之外,我无法以任何间隔启动叠加层。

1 个答案:

答案 0 :(得分:7)

如果您只想要一个ffmpeg命令,请尝试

ffmpeg -i input.mov -i overlay.mov \
-filter_complex "[1:v]setpts=PTS-10/TB[a]; \
                 [0:v][a]overlay=enable=gte(t\,5):shortest=1[out]" \
-map [out] -map 0:a \
-c:v libx264 -crf 18 -pix_fmt yuv420p \
-c:a copy \
output.mov

这会在5秒内启动叠加,叠加的视频起点为00:15

setpts=PTS-10/TBsetpts=PTS+(overlay_delay-video_trim_in)/TB

overlay=enable=gte(t\,5)overlay=enable=gte(t\,overlay_delay)