FFmpeg corresponde exatamente à cor hexadecimal

FFmpeg corresponde exatamente à cor hexadecimal

Estou tentando usar o ffmpeg para gerar um vídeo com fundo colorido usando o seguinte comando.

ffmpeg.exe -t 5 -f lavfi -i color=c=0x1E3932:s=1094x863 -vcodec libx264 -pix_fmt yuv420p output_test.mp4

Mas o verde errado é gerado; Estou entendendo #1B3531quando tiro uma captura de tela do vídeo e faço uma amostra da cor. Preciso que ele corresponda à cor de fundo de um site, e é por isso que preciso desse codec e formato de pixel específicos. Não consigo usar o webm ou um codec diferente com as plataformas/navegadores que devo oferecer suporte.

Existe alguma maneira de obter uma colorfonte para gerar o valor hexadecimal correto no espaço de cores que desejo? Existe alguma maneira de usar o filtro colorspaceou colormatrixpara obter esse efeito (pelo que entendi, essa mudança de cor vem da conversão de RGB para YUV)?

Responder1

Você precisa converter para matriz usando -vf scale=out_color_matrix=bt709 e marcar a saída usando -colorspace 1. Eu também recomendo marcar -color_range tv (é o padrão da escala), marcar -color_trc iec61966_2_1 e marcar -color_primaries como bt709.

informação relacionada