HandBrake: кодируем видео в H.264 для телевизоров LG и не только

Опубликовано 3 года назад

Расскажу, как я два дня разбирался, почему на одном смарт-телевизоре видео воспроизводится хорошо, а на другом с тормозами, рывками и дерганием. Возможно кому-то будет полезен мой опыт. К сожалению, информации о нюансах кодирования видео в интернете очень мало. Производители тоже не особо распространяются о поддержке их устройствами тех или иных кодеков.

Начну с небольшой предыстории, которую в общем-то можно пропустить и сразу перейти к описанию и решению проблемы.

В конце года я обычно собираю со всех своих девайсов весь отснятый за год видеоматериал, удаляю ненужное, а оставшееся монтирую в какие-то логически выстроенные серии: дети, какие-то поездки, мероприятия, рабочие моменты, художественные зарисовки или просто монтирую в хронологическом порядке. Смонтированное видео кодирую каким-нибудь популярным кодером типа H.264 (H.265 воспроизводится пока еще не везде), чтобы это все разумно весило и нормально читалось на любом устройстве. Готовый материал заливаю к себе на DLNA‑сервер, чтобы весь мой видеоархив всегда был под рукой и без лишних телодвижений открывался на любом устройстве.

Но в этот раз мой план нарушился на этапе кодирования. Смонтированное видео после экспорта из FCP (Final Cut Pro) имеет высокий битрейт и весит достаточно много. Я его кодирую в бесплатном приложении HandBrake на своих привычных настройках. Но в ноябре я рассказывал, мне пришлось переустановить Мак‑ос «с нуля», и все мои пресеты были потеряны. Конечно, я их по памяти восстановил, но не полностью, как выяснилось. Вот на этом и остановлюсь подробнее.

Итак, я обычно снимаю с запасом в 4K (реже в FHD), чтобы можно было безболезненно обрезать лишнее, но стабильно с 60 FPS. На выходе из FCP (и других приложений) обычно получаю QuickTime MP4 в FHD с 60 FPS. И в таком виде отправляю в HandBrake. Кстати, HandBrake — прекрасное приложение, давно им пользуюсь, особенно радует наличие пакетной обработки.

Мои настройки в HandBrake обычно следующие:

Сводка

Формат: MP4
Passthru Common Metadata: да
Оптимизация для веб: да
Выравнивать начало A/V: да


Размеры

Здесь я ничего не трогаю, т.к. мои исходники не требуют никаких изменений.


Фильтры

Иногда полезно включить удаление гребенки и обнаружение интерлейсинга, но чаще всего все выключено.


Видео

Кодировщик видео: H.264 (VideoToolbox)
Частота кадров (FPS): Такой же, как в исходном файле
Переменная: да
Средний битрейт: 10000 кбит/с

Аудио, Субтитры и Главы я обычно не трогаю, потому что у меня всегда одна аудиодорожка, субтитров нет, а помечаю главы я очень редко.

После кодирования размер видео уменьшается примерно в пять раз: 1 минута видео весит примерно 75 мб. Такой результат меня вполне устраивает.

Описание проблемы

С этими настройками я перекодировал все видео текущего года. Хорошо, что я никогда сразу не удаляю исходники. После заливки видео на DLNA‑сервер, я проверил видео лишь на некоторых устройствах: на компьютере и старом маленьком смарт-телевизоре LG. Раз на нем все прекрасно работает, значит на других более современных плеерах все будет в порядке, подумал я. А вот и нет! Уже позже выяснилось, на большом и более свежем смарт‑тв LG SM8050 видео нереально тормозит и смотреть его невозможно. Я не специалист по видеомонтажу, и я сломал голову в поисках причины этого безобразия. Визуально все выглядело так, словно телевизору не хватает ресурсов. Но я это исключал, потому что этот же телевизор прекрасно воспроизводит видео из того же HandBrake с более высоким битрейтом в 4K 60 FPS. Кроме того, его младший брат (к слову, стоимостью в пять раз дешевле) прекрасно выводит то же самое видео с того же самого сервера. WTF?

Решение проблемы

Я не буду описывать все эксперименты, которые мне пришлось произвести, чтобы выяснить причину, перейду сразу к решению.

Причина оказалась в опциях кодирования. Спасибо замечательному приложению MediaInfo, в котором можно загрузить одновременно два видеофайла и прямо по пунктам посмотреть все их различия. Разница обнаружилась в опциях кодировщика. У меня стоял профиль main и уровень 5.1. На старых видео, которые одинаково хорошо работают на всех устройствах профиль был high и уровень 4.1. Изменение опций кодировщика решило мою проблему: видео стали на всех устройствах воспроизводиться плавно, без каких-либо рывков и тормозов.

Вот так выглядит моя вкладка Видео в HandBrake:

HandBrake: настройки кодирования видео
HandBrake: настройки кодирования видео

В заключении хочу всех предостеречь никогда не удалять сразу исходники и обязательно проверять работу видео на как можно большем количестве устройств.

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Добавить комментарий