Canais de cor vermelha e verde são trocados em vídeo renderizado ffmpeg

1

Estou usando um código semelhante para this para canalizar dados de imagem OpenGL diretamente para o ffmpeg. Estou usando essa chamada readpixels:

qglReadPixels( 0, 0, glConfig.vidWidth, glConfig.vidHeight, GL_RGB, GL_UNSIGNED_BYTE, 0 );

No entanto, tenho que usar GL_RGB em vez de GL_RGBA. Na linha de comando do ffmpeg eu mudo RGBA para RGB24 de acordo. No entanto, os canais de cores dos vídeos de saída estão confusos (o vermelho é trocado por verde). Não consigo encontrar nenhum formato de cor que seja GRB, então existe alguma maneira de trocar os canais vermelho e verde no ffmpeg usando colorchannelmixer ?

edit: isso envolveria definir RR como 0, RG como 1, GG como 0, GR como 1? Qual seria a sintaxe para isso?

Obrigado.

    
por vpvp 28.03.2016 / 22:57

1 resposta

2

Supondo que apenas os canais vermelho e verde precisem ser trocados, use

colorchannelmixer=rr=0:rg=1:gr=1:gg=0
    
por 28.03.2016 / 23:24