Наложение масштабированного изображения на видео - PullRequest
1 голос
/ 04 марта 2020

Как масштабировать изображение и поместить его поверх видео, используя ffmpeg?

Используя приведенный ниже скрипт, я получаю ошибку Invalid stream specifier: wm..

ffmpeg.exe -i img0.png -i vid1.mp4 -i vid2.mp4 -i vid3.mp4 -filter_complex_script fcs.txt
    -map [outv] -map [outa] out.mp4

fcs.txt:

[0:v]scale=-1:128[wm];

[1:v]gblur=sigma=30:steps=5[bg1];
[1:v]scale=-1:1080,eq=saturation=1.05[fg1];
[bg1][fg1]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[bf1];
[bf1][wm]overlay=(1920-200):(1080-200)[fv1];

[2:v]gblur=sigma=30:steps=5[bg2];
[2:v]scale=-1:1080,eq=saturation=1.05[fg2];
[bg2][fg2]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[bf2];
[bf2][wm]overlay=(1920-200):(1080-200)[fv2];

[3:v]gblur=sigma=30:steps=5[bg3];
[3:v]scale=-1:1080,eq=saturation=1.05[fg3];
[bg3][fg3]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[bf3];
[bf3][wm]overlay=(1920-200):(1080-200)[fv3];

[fv1][1:a][fv2][2:a][fv3][3:a]concat=n=3:v=1:a=1[outv][outa]

полное сообщение об ошибке:

[png_pipe @ 0000019fc01f2c00] Invalid stream specifier: wm.
Last message repeated 1 times
Stream specifier 'wm' in filtergraph description [0:v]scale=-1:128[wm];

1 Ответ

1 голос
/ 04 марта 2020

Промежуточные выходы фильтра нельзя использовать повторно, как вы делали, подавая [wm] на три оверлейных фильтра. Можно либо клонировать выход на 3 выхода, и подать их по отдельности, либо в этом случае выполнить наложение после concat, поскольку все параметры наложения идентичны.

Итак, метод клонирования:

[0:v]scale=-1:128,split=3[wm1][wm2][wm3];
...
[bf1][wm1]overlay=(1920-200):(1080-200)[fv1];
...
[bf2][wm2]overlay=(1920-200):(1080-200)[fv2];
....
[bf3][wm3]overlay=(1920-200):(1080-200)[fv3];

или наложение post-concat,

...
[fv1][1:a][fv2][2:a][fv3][3:a]concat=n=3:v=1:a=1[outv][outa];
[outv][wm]overlay=(1920-200):(1080-200)[outv]

(удалить предыдущие наложения и обновить метки пэдов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...