ТЕХНОЛОГИИ: h264 Год спустя Технология: Кодирования видео в MPEG-4 AVC. Часть первая
Автор: Филипп Казаков
Чуть больше года назад на страницах «Компьютерры» я делился опытом работы с новаторским на тот момент видеокомпрессором Ateme h264, реализованном в программе-кодировщике Ahead Nero Recode. Тогда Recode был чуть ли не единственным продуктом, позволявшим кодировать видео в h264, а потому приходилось мириться с традиционными свойствами монопольного коммерческого софта.
Собственно, только кодеком нового поколения Nero Recode и мог похвастаться, а в других отношениях программа была просто ужасна. Вообще-то говорить о ней в прошедшем времени не совсем корректно, — проект еще до сих пор развивается и продается, — но сегодня, к счастью, у него есть сильный конкурент, который позволит всем желающим отправить дистрибутив Recode на кладбище жесткого диска. Конкурент этот многолик, как Нерей, и имя ему — Open Source.
Напомню вкратце, о чем идет речь. Формат компрессии видео MPEG-4, стандартизированный в 1998 году, подразделяется на два основных профайла — MPEG-4 ASP (Advanced Simple Profile), к которому относятся DivХ, XviD и иже с ними, и MPEG-4 AVC (Advanced Video Coding, он же h264 или MPEG-4 Part 10). Первый получил феноменальную популярность благодаря полухакерской тусовке, взломавшей кодек Microsoft и выпустившей его легендарную модификацию DivX 3.11. С тех пор утекло много воды: «разработчики» DivХ 3.11 организовали собственную фирму DivX Networks, полностью переписали код компрессора и коммерциализировали свой продукт. Появилось и множество конкурентов, самым заметным из которых стал открытый XviD. Однако через какое-то время все возможности MPEG-4 ASP были исчерпаны, кодеки вылизаны почти до блеска, и кривая развития компрессоров устремилась к горизонтальной асимптоте [Попробуйте, например, ради интереса закодировать пару роликов 6-й и 5-й версиями DivХ, и вы обнаружите, что разница между этими версиями несравненно меньше, чем между 5-й и 3-й]. В этот момент на сцену вышел следующий профайл — MPEG-4 AVC, более требовательный к ресурсам кодирующих и воспроизводящих систем, зато позволяющий использовать более совершенные приемы компрессии и обеспечивший скачкообразное улучшение параметра качество/битрейт. Скачок этот можно сравнить с переходом от VCD к DVD (от MPEG-1 к MPEG-2), и хотя MPEG-4 ASP все еще гораздо популярнее AVC, явление это временное: h264 заявлен как производственный стандарт будущих HD/Blue-ray-дисков и уже используется для спутникового телевещания в Европе. Сегодня существуют стационарные плейеры, поддерживающие этот формат, а через несколько лет h264-плейеры станут столь же привычными, как DVD сегодня.
Вернемся к конкуренту Nero Recode. Он представляет собой сборник множества бесплатных commandline-энкодеров, микшеров, GUI и декодеров, увязав которые воедино, можно собрать нечто позволяющее закодировать в MPEG-4 AVC все, что душе угодно. Получается некий узел программ в Unix-стиле, вроде известнейшего пакета Gordian Knot, использовавшегося для кодирования MPEG-4 ASP. Единого названия у этого «кооператива» нет, как нет и законченного программного продукта. Нет точного перечня утилит, его составляющих, а также стабильного хостинга и красивого сайта для них. Нет и сложившейся команды разработчиков. Словом — классический «зоопарк» OpenSource-сообщества, со свойственной ему чехардой в версиях сборок компонентов, совместимостью, хостингами и документацией, полным отсутствием заботы об удобстве пользователя и отказом от любых гарантий.
Зато — к острию новой технологии можно прикоснуться уже сейчас, причем бесплатно, был бы доступ в Интернет.
В некоторых случаях, прежде чем подавать видео на вход AviSynth’a, имеет смысл прогнать его через еще один фреймсервер. В основном такой подход используется при декодировании DVD-видео и сжатии захватов с TV. DVD обычно имеют сравнительно сложную внутреннюю структуру и требуют отдельной утилиты для предварительной подготовки видеоконтента и приведения его в удобоваримый для AviSynth’a вид. DGIndex — наследник легендарного DVD2AVI — индексирует VOB-файлы, скопированные на жесткий диск из директории VIDEO_TS исходного DVD, и создает индексный d2v-файл. DGIndex.exe вы найдете в папке с MeGUI — программа должна была его скачать, как и ависинтовский плагин DGDecode.dll.
Сначала определите, в каких файлах скопированного вами DVD находится сам фильм, открывая VOB’ы в проигрывателе (например, в скачанном Classic Media Player’e). Имена всех файлов с фильмом скорее всего будут отличаться только порядковыми номерами; соблюдая очередность, загрузите VOB’ы в DGIndex. Проверьте пункт Audio->Output Method->Demux All Tracks, отвечающий за сохранение всех оригинальных аудиодорожек без перекодировки. Теперь выберите File->Save Project и сохраните d2v-файл, который затем можно будет открыть в AviSynth Script Creator’e. Сохраняя готовый AVISynth-скрипт, оставьте то же имя файла и путь, что были у d2v-проекта, — это позволит делать предпросмотр avs-скрипта вместе со звуком.