Кодирование H.264 видео с HandBrake

Автор: Евгений Рыжков и Татьяна Головко Дата публикации: 22.03.2011

В этой главе я буду использовать "H.264" как сокращение для видео H.264 базового профиля и аудио AAC профиля low-complexity в формате MPEG-4. Для такой «смеси» имеется встроенная поддержка в Safari, в Adobe Flash, на iPhone и Google Android.

Если отбросить вопросы лицензирования, то самый простой способ кодирования H.264 — это использование HandBrake. HandBrake — это приложение с открытым исходным кодом для кодирования H.264. Ранее этот кодер работал со многими форматами, но в последних версиях от их поддержки отказались и сосредоточились только на H.264. Дистрибутивы приложения доступны для Windows, Mac OS X, современных версий Linux.

HandBrake поставляется в двух вариантах: с графическим интерфейсом и в виде командной строки. Я сначала покажу, как работать с графической версией, а затем покажу, как будут выглядеть те же функции в командной строке.

Запускаем HandBrake и первым делом выбираем источник видео:

выбираем видео файл

Нажимаем кнопку "Source", затем выбираем "Video File" в выпадающем меню. Для HandBrake в качестве входных данных можно использовать практически любой видео файл, включая DV видео из домашних видеокамер.

HandBrake пожалуется тебе, что не установлен по умолчанию каталог, куда сохранять перекодированное видео:

предупреждение

Это можно проигнорировать, а можно открыть окно настроек (подменю "Tools") и указать директорию по умолчанию.

Справа будет виден список с вариантами готовых настроек. Выберем "iPhone & iPod Touch" — тут установлено большинство настроек, которые нам подходят.

окно настроек

Важная опция для нас, которая отключена по умолчанию — "Web optimized". Выбор данной опции, перегруппирует некоторые настройки кодирования таким образом, чтобы после начала просмотра видео, остальная его часть подгружалась в фоновом режиме. Я рекомендую каждый раз проверять эту опцию. Это никак не влияет на размер видео файла, но зато делает видео в Веб более доступным.

устанавливаем "Web optimized"

Во вкладке "Picture" можно задать максимальную ширину и высоту видео. И лучше будет, если поставить галочку "Keep Aspect Ratio", чтобы при изменении размеров видео, сохранились его пропорции.

настраиваем размер видео

Во вкладке "Video" есть несколько важных опций:

Video Codec

Убеждаемся что установлено "H.264 (x264)".

2-Pass Encoding

Когда выбрана эта опция, кодировщик пройдется по видео два раза. В первый заход, он проанализирует видео: состав цветов, наличие сцен движения и сцен обрывов. Во второй заход будет происходить собственно кодирование на основании собранных данных за первый заход. Как и следовало ожидать, такой вариант займет времени в два раза больше, чем кодирование в один заход. Но видео в результате получится лучшего качества без увеличения размера файла. Я всегда пользуюсь этой опцией. Даже если ты готовишь ролик для YouTube, где при добавлении видео происходит дополнительная компрессия видео, все равно рекомендую использовать эту опцию.

Turbo First Pass

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

Quality

Есть несколько вариантов задать качество результирующего видео.

  • можно задать максимальный вес файла, и HandBrake сделает все, чтобы не выйти за рамки данного размера;
  • можно задать "bitrate" — количество битов, требуемых для хранения одной секунды видео;
  • или же можно указать непосредственно качество в пределах от 0 до 100 процентов. Больший процент приведет к лучшему качеству, но и к большему размеру файла.

Какой из этих вариантов использовать, зависит от многих факторов и нет универсального решения для всех случаев.

установки качества

В: Могу ли я использовать двухпроходное кодирование для видео Ogg?

О: Да, но лучше этого не делать из-за принципиальных различий работы кодеров. Двухпроходное H.264 кодирование используется, когда нужно получить видео более высокого качества. Двухпроходное кодирование Ogg обычно используется, когда нужно получить файл определенного размера. Чтобы получить хорошее качество для Ogg, достаточно настроек кодера и не нужно прибегать к двухпроходному кодированию.

В этом примере я выбрал битрейт равным 600, что является достаточно высоким для видео 320x240. Я также включил 2-Pass Encoding с Turbo First Pass.

Во вкладке "Audio" скорее всего не нужно ничего менять. Если в видео присутствует несколько звуковых дорожек, можно указать, чтобы при перекодировании учитывались не все. Если на видео в основном только речь, то имеет смысл уменьшить битрейт до 96 kbps. Так же по умолчанию включена опция "iPhone" — лучше ее так и оставить.

настройки аудио

Следующий шаг — нажимаем кнопку "Browse" чтобы выбрать директорию и имя файла для перекодируемого видео:

выбор директории

И в конце нажимаем "Start" чтобы запустить процесс кодирования:

запускаем кодирование

Во время кодирования, HandBrake будет отображать статистику процесса:

идет кодирование

Куда дальше