@tan76

Почему ffmpeg искажает картинку при кодировании?

Задача на первый взгляд была очень простая, взять тестовую таблицу PAL и закодировать в тридцатисекундный .VOB для проигрывания на DVD плеере. Исходная таблица находится здесь.
Строка команды примерно такая:
ffmpeg -loop 1 -i testchartpal.tif -target pal-dvd -q 2 -t 30 testchartpal.vob

В результате на видео, в блоках 1 и 2 искажаются цвета.
660d39ce40e8c192911425.png
Я уже много времени провел за экспериментами, но заставить изображение выглядеть как исходный файл, к сожалению не смог. Очень надеюсь на подсказки что я делаю не так и как с этой бедой бороться.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
ValdikSS
@ValdikSS
Картинке не хватает цветового разрешения DVD (4:2:0), чтобы корректно закодировать изображение.
https://ru.wikipedia.org/wiki/Цветовая_субдискретизация

В случае под цифрой 2 пиксели с цветовым переходом попадают в «центр» цветового блока, а в случае под цифрой 1 просто не хватает разрешения.

как с этой бедой бороться
Нужно либо применить цветовую субдискретизацию с более высоким разрешением (4:2:2, например, но оно поможет только при вертикальном расположении пикселей), либо отключить её. Если речь о бытовых DVD-плеерах, то никак — стандарт DVD предусматривает только профиль 4:2:0, насколько мне известно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы