1

我的代码可以组合三个视频,将视频大小调整为 1920X1080,将水印调整为正确的大小,然后将水印覆盖到左下角。然后转换为 Youtube 的预期编解码器。我的问题是如何使用 -filter_complex 工作流程同时混合?目前,我有以下工作流程,除了设置不透明度之外,它可以做所有事情

ffmpeg -y -i fancy movie.mov -i logo.png -i in.mov -i out.mov -c:v libx264 -crf 18 -b:v 50000k -preset veryfast -tune film -profile:v high -x264opts cabac=1:keyint=16:bframes=2:keyint_min=15 -c:a libvo_aacenc -ab 128K -ar 48000 -filter_complex "[0:0] scale=1920X1080 [main]; [2:0] scale=1920X1080 [start]; [3:0] scale=1920X1080 [end]; [start] [2:1] [main] [0:1] [end] [3:1] concat=n=3:v=1:a=1 [prog]; [1:0] scale=480:90 [wm]; [prog] [wm] overlay=36:main_h-overlay_h-45" fart.mp4

我试图在最后一步中添加“blend=all_opacity=0.7”,这样水印就会在背景中进行筛选。如果我只是添加

[prog] [wm] overlay=36:main_h-overlay_h-45, blend=all_mode='overlay':all_opacity=0.7" fart.mp4

我收到错误消息,在过滤器 Parsed_blend_6 上找不到未标记输入垫 1 的匹配流

如果我尝试使用分号,

[prog] [wm] overlay=36:main_h-overlay_h-45; blend=all_mode='overlay':all_opacity=0.7

我收到错误消息,无法在过滤器 Parsed_blend_6 上找到未标记输入垫 0 的匹配流,这让我认为它期待类似于 [输入 1] [输入 2] 混合命令 [输出] 的内容。问题是我需要它来叠加和混合。

我尝试简化代码以测试混合操作是否正常工作。

ffmpeg -i test.mp4 -i logo.png -filter_complex "[0:0] scale=1920x1080 [wm]; [1:0] scale=1920x1080 [prog], [wm][prog] blend=all_mode='overlay':all_opacity=0.7" fart.mp4

我收到错误First input link top parameters (size 1920x1080, SAR 1:1) do not match the对应的第二个输入链接底部参数 (1920x1080, SAR 243:80) Failed to configure output pad on Parsed_blend_2

因此,除了组合过滤器的麻烦之外,我还遇到了调整水印大小的问题,因为 FFMpeg 将其视为与其他视频不同的纵横比。

这是我使用 FFmpeg 的第二天,因此我们将不胜感激。

我目前正在使用 FFMpeg 版本 N-61061-gf34cceb

4

0 回答 0