Я пытаюсь сделать комбинацию из двух видео. Первое видео является моим входом без изменений, а второе (расположенное под первым) является фильтрованной версией первого видео. Я могу отфильтровать первое видео по своему желанию, но у меня возникают трудности с выводом двух версий, объединенных так, как мне бы хотелось.

Даже следующий этот вопрос мне не помогает:

Повышение качества видео с различными фильтрами на каждой стороне

Вот команда, которую я использую:

ffmpeg -i ./media/video/video_with_alpha.mov \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
-filter_complex \
    "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [T1]; \
     [0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [T2]; \
     [T2][T1] overlay [out_alpha]; \
     [0:v][out_alpha] overlay=0:360[out]" \
-map '[out]' -map 0:a ./media/output/video_rgb_above_alfa.mp4

В результате я получаю два наложенных друг на друга видео, например:

Пока что я хочу вот так:

Кто-нибудь из вас знает, что я делаю не так?

Заранее спасибо!

1 ответ1

0

Спасибо за ваши ответы, но я нашел свое решение с этой командой:

ffmpeg -i ./media/video/video_walpha.mov \
-filter_complex "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [1]; \
[0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [2]; \
[2][1] overlay [alpha]; \
[0:v]pad=iw:ih*2[stage]; \
[stage][alpha] overlay=0:h [merge]; \
[merge] scale=1280:-1 [out]" \
-map '[out]' -map 0:a \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
./media/output/video_mobile_rgb_alfa.mp4

Чего мне не хватало, так это фильтра "колодки".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .