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

cdr*_*rev 8 processing video ffmpeg video-processing openframeworks

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

问题

  • 我有一个视频input.mov.
  • 我想覆盖另一个视频overlay.wov.
  • 结果应该是单个视频(output.mov).

笔记

谢谢 - C.

编辑

  1. 后端是Go/Ruby.打开使用新语言.
  2. 应保留第一个视频的音频.
  3. 设置叠加开始的间隔会很棒.

现行解决方案

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
Run Code Online (Sandbox Code Playgroud)

然而,这几乎可行:

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

Gya*_*yan 10

如果只需要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
Run Code Online (Sandbox Code Playgroud)

这会在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)

  • 如果我想同时保留两个视频中的音频怎么样?因为现在当我尝试时,叠加层的音频消失了。谢谢! (2认同)