FFmpeg точно соответствует шестнадцатеричному цвету

FFmpeg точно соответствует шестнадцатеричному цвету

Я пытаюсь использовать ffmpeg для создания видео с цветным фоном с помощью следующей команды.

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

Но генерируется неправильный зеленый; я получаю, #1B3531когда делаю скриншот видео и беру образец цвета. Мне нужно, чтобы он соответствовал фону цвета на веб-сайте, поэтому мне нужен этот конкретный кодек и формат пикселей. Я не могу использовать webm или другой кодек с платформами/браузерами, которые я должен поддерживать.

Есть ли способ получить colorисточник для вывода правильного шестнадцатеричного значения в нужном мне цветовом пространстве? Есть ли способ использовать фильтр colorspaceили colormatrixдля достижения этого эффекта (насколько я понимаю, этот цветовой сдвиг происходит из-за преобразования из RGB в YUV)?

решение1

Вам необходимо преобразовать в матрицу, используя -vf scale=out_color_matrix=bt709, и пометить вывод с помощью -colorspace 1. Я также рекомендую пометить -color_range tv (это то, что масштабирует по умолчанию), пометить -color_trc iec61966_2_1 и пометить -color_primaries на bt709.

Связанный контент