FFmpeg colocando um vídeo acima da versão filtrada [duplicado]

0

Estou tentando fazer uma combinação de dois vídeos. O primeiro vídeo é a minha entrada inalterada, enquanto o segundo (colocado abaixo do primeiro) é uma versão filtrada do primeiro vídeo. Eu sou capaz de filtrar o primeiro vídeo como eu quero, mas eu tenho dificuldades em fazer uma saída das duas versões combinadas como eu gostaria de fazer.

Mesmo seguindo essa outra pergunta, não me ajuda:

Upscaling video com filtro diferente em cada lado

Aqui está o comando que estou usando:

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

O resultado é que os dois vídeos se sobrepõem um ao outro assim:

Enquantooqueeuqueroéassim:

Algum de vocês sabe o que estou fazendo errado?

Obrigado antecipadamente!

    
por Andrea Silvestri 02.09.2015 / 12:54

1 resposta

0

Obrigado por suas respostas, mas encontrei minha solução com este comando:

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

O que eu estava perdendo era na verdade o filtro "pad".

    
por 03.09.2015 / 09:37

Tags