使用 ffmpeg 在视频上叠加 alpha 图像

Overlaying alpha images on a video using ffmpeg

我有以下 ffmpeg-cli 命令,它不会产生文档中描述的效果。这可能是一个错误,还是我的命令有问题。

ffmpeg \
    -y \
    -i small.mp4 \
    -i monkey/monkey_%04d.png \
    -filter_complex "[0:v][1:v]overlay=enable='between(t,1,5)'[out1]" \
    -map '[out1]' \
    output.mp4

我希望它在第 1 秒和第 5 秒之间将 #1 流覆盖在 #0 之上。

您可以从这里下载测试 tarball link:

它包括测试用例的资产。

我试过的版本:

FFmpeg 是一种基于时间的处理器,即它按时间戳对齐数据包,因此您必须将图像序列的开始与叠加层的开始对齐。

ffmpeg \
    -y \
    -i small.mp4 \
    -i monkey/monkey_%04d.png \
    -filter_complex "[1:v]setpts=PTS-STARTPTS+(1/TB)[1v]; \
    [0:v][1v]overlay=enable='between(t,1,5)'[out1]" \
    -map '[out1]' \
    output.mp4