ffmpeg-python 中的图像叠加

问题描述

我正在尝试使用 ffmpeg-python 为视频添加水印。我的管道非常简单,但我一直无法弄清楚语法:

new_input = ffmpeg.input(file_name).filter('overlay','overlay.png').output(fout).run()

这会引发错误 Cannot find a matching stream for unlabeled input pad 1 on filter Parsed_overlay_7 ,可能是因为覆盖过滤器的语法不正确。

解决方法

由于叠加过滤器需要两个输入,所以语法有点混乱。

有很好的例子here


这是一个代码示例:

import ffmpeg

file_name = 'input.mp4'
fout = 'output.mp4'

(
    ffmpeg
    .filter([ffmpeg.input(file_name),ffmpeg.input('overlay.png')],'overlay',10,10)
    .output(fout)
    .run()
)
,

试试这个代码:(把你需要的值放在字符串中)

from pyffmpeg import FFmpeg
ffmpeg = FFmpeg()
ffmpeg.options("-i file_name.mp4 -i overlay.png -filter_complex overlay=000:00 output.mp4")