Конвертируйте 8-битное видео H.265 / HEVC в 8-битное H.264.

Вопрос или проблема

Я хочу преобразовать 8-битное видео формата h.265 в h.264 без потери качества, чтобы иметь возможность смотреть его на моем уже немного старом телевизоре, который поддерживает только h.264.

Этот пост оказался для меня очень полезным: Как конвертировать 10-битные видео H.265 / HEVC в H.264 без потери качества?

Но по какой-то причине результативное видео h.264 все еще не могло быть проиграно на моем телевизоре. Это видео, как и оригинал, имело встроенные субтитры (не знаю, является ли это проблемой для моего телевизора), а аудиопоток был:

Формат: AAC LC SBR.
Формат/Информация: Развитый аудиокодек с низкой сложностью.
Сложность с использованием спектральной репликации.
Коммерческое название: HE-AAC.
ID кодека: A_AAC-2.

Я внес две изменения в команду ffmpeg, и это сработало для меня. У меня все еще нет +50 очков на платформе, чтобы добавлять комментарии, поэтому для всех, у кого такая же проблема, я создал этот пост, см. мой ответ ниже.

Я удалил встроенные субтитры и указал ‘традиционный’ расширенный видеокодек (AVC), который поддерживает мой телевизор.

Как я уже сказал в своем вопросе, я следовал этому посту: Как конвертировать 10-битные видео H.265 / HEVC в H.264 без потери качества? и также следовал этому посту для удаления встроенного текста: Удаление встроенных потоков субтитров из медиафайла без “стриминга/перепаковывания”

Итак, вот команда:

ffmpeg -i video.mkv -sn -c:v libx264 -crf 18 -vf format=yuv420p -c:a aac output.mkv

Обратите внимание, я не использовал опцию -map 0, так как она сохраняет все потоки, а я хотел удалить текстовый поток. В любом случае, возможно, этот шаг не был необходим, и единственная проблема с моим видео была в аудиокодеке. Так что, если вы хотите сохранить субтитры, вы можете попробовать оставить -map 0 и не использовать опцию -sn, которая является параметром для удаления текста.

Кстати, на преобразование всего видео ушло 40 минут на моем компьютере среднего класса, причем фильм был продолжительностью 60 минут, с исходным размером 1,3 ГБ, и после преобразования размер составил 2,9 ГБ.

Ответ или решение

Конвертация 8-битного видео H.265/HEVC в 8-битное видео H.264 без потери качества представляет собой сложную задачу, которая требует не только точного выполнения команды, но и учёта поддержки форматов вашим оборудованием. Рассмотрим, как браться за это с помощью FFmpeg, чтобы результат можно было без проблем проигрывать на старых устройствах, поддерживающих только H.264.

Понимание проблемы и её контекста

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

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

На основе вашего опыта и предоставленной информации, рабочее решение включает следующие шаги:

1. Удаление текстовых субтитров

Некоторые устройства могут испытывать проблемы с воспроизведением видео, если в файле имеются встроенные субтитры. Чтобы избежать этого, используйте опцию -sn в FFmpeg, чтобы удалить их:

ffmpeg -i video.mkv -sn -c:v libx264 -crf 18 -vf format=yuv420p -c:a aac output.mkv

2. Конвертация видео

Параметр -c:v libx264 указывает использование кодека H.264, а -crf 18 помогает достичь компромисса между качеством и размером файла. Параметр -vf format=yuv420p гарантирует, что цветовая схема будет поддерживаться большинством устройств.

3. Аудиокодек

Выберите аудиокодек, совместимый с вашим телевизором. Используя -c:a aac, вы обеспечиваете выбор стандартного AAC кодека, который поддерживается большинством устройств. Однако, если проблема заключалась в аудио формате HE-AAC, стандартный AAC должен решить эту проблему.

Время конвертации и размер файла

Следует учесть, что конвертация может занимать значительное время. Например, видео на 60 минут может занимать до 40 минут процессинга на среднепроизводительном компьютере, и итоговый размер файла может увеличиться, как было в вашем примере — с 1.3 GB до 2.9 GB. Это связано с использованием более старого кодека H.264, который может иметь меньшую степень сжатия по сравнению с H.265.

Дополнительные советы

  • Если вы хотите сохранить субтитры, не используйте -sn и рассмотрите опцию -map 0, чтобы сохранить все потоки, включая аудиодорожки и субтитры.
  • Если вас не устраивает увеличившийся размер файла, поэкспериментируйте с параметром -crf; значения выше 18 могут уменьшить размер, но в этом случае возможна потеря качества.

Заключение

Корректный выбор параметров FFmpeg и понимание ограничений вашего оборудования позволят вам успешно конвертировать ваши видео для просмотра на старых устройствах. Эти шаги помогут минимизировать потери качества и совместимость вашего контента с вашим телевизором.

Оцените материал
Добавить комментарий

Капча загружается...