Swizzling colors no FFMPEG

1

Eu estou tentando escrever um filtro ffmpeg que leva dois vídeos e combina-os de tal forma que Y (luma) do primeiro se torna canal vermelho para fora da saída e Y do segundo - o canal azul da saída (apenas verde fica definido para zero).
Para colocar de outra forma, eu quero isso: [v0] [v1] r = v0.y: b = v1.y: g = 0 [out]

    
por user1411900 30.11.2016 / 23:35

1 resposta

0

Supondo que suas entradas são YUV e você deseja RGB, use

ffmpeg -i yr.mp4 -i yb.mp4 -filter_complex
       "[0][1]mergeplanes=0x001000:gbrp,lut=g=0,format=rgb24" -c:v png out.mov 

Em 0x001000 , o primeiro par 00 define o primeiro plano de saída (o g em gbrp ) como o primeiro plano da primeira entrada, ou seja, luma de yr.mp4. Isso é aleatório, já que g será definido para zero mais tarde. Então 10 , que define o segundo plano para o primeiro plano da segunda entrada, ou seja, luma de yb.mp4. Finalmente, o terceiro plano é definido para luma da primeira entrada. Então o filtro lut redefine o plano G para zero. Um filtro de formato é adicionado para reempacotar os pixels como o formato comum rgb24 . O codec PNG é escolhido de forma a manter a codificação RGB.

    
por 01.12.2016 / 15:02

Tags