У меня есть 950 файлов PNG, которые предназначены для того, чтобы стать отдельными кадрами на 38-секундной видео-дорожке по 25 кадров в секунду. Имена файлов идентичны, за исключением порядкового номера, как это принято в подобных случаях.
Я хочу создать контейнер широко поддерживаемого формата, в идеале WebM, если с ним можно удовлетворить все критерии, или, например, MPEG-4, с кодеком, который поддерживается современными браузерами для воспроизведения, из этой серии изображений PNG, которые я иметь. Проблема заключается в том, что цвета смещены, и цвет фона в декодированном видео больше не соответствует тому же триблету RGB, сэмплированному с цветом фона в изображениях PNG. Это приводит к тому, что видео выпадает из заданного фона на моей HTML-странице, где оно встроено.
Я попробовал простое:
ffmpeg -f image2 -i image%03d.png output.webm
что действительно дало мне видеодорожку VP9 со скоростью 25 кадров в секунду, упакованную в контейнер WebM.
Изображения в формате PNG - это анимационный стиль, с твердым фоном и простыми фигурами, которые анимируются на переднем плане Похоже, они помечены цветом (это то, что Adobe Bridge говорит мне, я предполагаю, что это означает отсутствие встроенного цветового профиля или ссылки на него). Проблема с моей вышеупомянутой попыткой заключается в том, что, хотя контейнер воспроизводится в Chrome, цвет фона, взятый из изображения PNG с триплетом RGB #ED4D56
, не соответствует воспринимаемому цвету фона, который появляется в воспроизводимом видео.
Является ли это неизбежным побочным эффектом преобразования цвета RGB в YUV (кодирование) в RGB (воспроизведение)? Есть ли способ смягчить это? Я не настаиваю на том, чтобы кадры в видеодорожке кодировались с использованием RGB, я полагаю, что YUV - это нормально, если современный браузер, воспроизводящий эти кадры, выдает одинаковый (с незначительным пределом погрешности) триплет RGB при декодировании и отображении кадр (ы).
Мой вопрос в том, какую командную строку с помощью ffmpeg
я могу попытаться смягчить? Я открыт для переключения видеокодека, формата пикселей, включения управления цветом в ffmpeg, если он существует, и т.д.