При сжатии захватов с TV и решении схожих задач, требующих маломальского монтажа (вырезания рекламы, например), интерфейс (вернее отсутствие оного) нивелирует все остальные преимущества AviSynth’a над старым добрым VirtualDUB’ом. Нет проблем — обработайте видео в привычном VirtualDUB’e, сохраните аудиоряд в wav-файл, а затем переведите VirtualDUB в режим фреймсерверa (File -> Start Frame Server). В результате будет создан vdr-файл, который опять же «съест» AviSynth Script Creator.
Сегодня речь пойдет о том, как научиться работать со всем этим безобразием, а именно кодировать видео в MPEG-4 AVC с использованием только бесплатного софта. Существует множество способов сделать это, я расскажу о том, который использую сам, то есть, разумеется, об оптимальном. Он базируется на использовании открытого видеокодера x264, бесплатного аудиокодера Nero AAC и графической оболочки MeGUI. Поскольку способ этот довольно запутанный, начертим общий план действий (см. блок-схему).
C приходом h264 мировая общественность фактически отказалась от традиционного, но устаревшего контейнера AVI в пользу родного для всех четвертых MPEG’ов MP4. Нет, h264-поток, конечно, можно впихнуть и в «авишку», для чего достаточно скачать и установить acm-версию кодека x264, а затем воспользоваться любым видеоредактором, но при этом вы лишитесь множества «вкусностей» формата. К ним относятся некоторые «фичи» энкодера, повышающие качество итогового материала, а также надежная поддержка нескольких медиапотоков, субтитров, меню и глав. Кроме того, h264 avi-файл не будет читаться на аппаратных проигрывателях, в отличие от стандартизированного [ISO/IEC 14496-14, ISO/IEC 14496-12] MP4. Вместе с контейнером на свалку истории отправился и VfW-интерфейс, и все утилиты для работы с ним (и даже старый добрый VirtualDUB). Исторический процесс повернулся на 180 градусов и от сложного непрозрачного системного интерфейса Video for Windows вернулся к простому: для кодирования используется CLI-кодек (Command Line Interface, интерфейс командной строки) x264.exe. На вход x264.exe подается некоторый видеопоток, а на выходе получается mp4-видеофайл. Настройка параметров компрессии производится с помощью ключей командной строки. x264.exe может принять на вход либо специальный AVI-файл, либо AVISynth’овский [AVISynth — своеобразный язык программирования, предназначенный для обработки видео. Использует текстовые avs-скрипты в качестве инструкций по обработке видеопотока. Широко использует DirectShow-интерфейс Windows, поддерживает расширения через дополнительные плагины] скрипт-фреймсервер, занимающийся предварительной подготовкой вашего видео. Мы будем использовать только AVS-скрипты.
Для кодирования звука (который, естественно, жмется отдельно и независимо от видео) на текущий момент оптимален CLI-кодек от Ahead [Да-да, именно фирма Ahead — создатель коммерческого Nero Recode — недавно выпустила лучший бесплатный MPEG4-кодировщик аудио! А произошло это чудо вот как: в начале нынешнего года Nero Recode начала сдавать позиции в плане кодирования видео. Но аудиокодер Nero оставался вне конкуренции. Пытливые умы и тут насолили Ahead: оказалось, что для кодирования звука достаточно выцарапать из дистрибутива Nero Recode 6 или 7 пару-тройку файликов, после чего с помощью специальных GUI ими можно было успешно пользоваться, даже не слишком нарушая лицензионное соглашение. Файлики эти быстро расползлись по Сети, и прогрессивная общественность окончательно отвернулась от Nero Recode. Ahead, поняв, что стремительно теряет популярность в среде видеокодеров, решилась на отчаянный шаг и 1 мая сего года выпустила удобный бесплатный CLI-кодировщик, ни в чем не уступающий своему удачнейшему аналогу из последней версии Recode] — neroAacEnc.exe, пережимающий входной поток в mp4-аудиофайл. Пару mp4-файлов с видео и звуком, полученных после кодирования, хотелось бы как-то соединить. Для этого предназначена еще одна CLI-утилита — mp4box.exe, микширующая все медиапотоки в один файл. Естественно, вручную писать команды для управления всеми этими утилитами невозможно, ведь для каждой из них существуют многие десятки ключей! Поэтому правит бал единая графическая оболочка MeGUI, автоматизирующая и визуализирующая весь процесс подготовки видео, настройки кодеков и микшеров и т. д. Вообще говоря, MeGUI, кроме кодирования x264, поддерживает еще больше десятка других свободных CLI-компрессоров и микшеров и, по замыслу разработчиков, должна кодировать все, что угодно, во все остальное. Но из-за громадья планов программа постоянно сырая, и на момент написания статьи многие ее возможности были реализованы посредственно. Со временем она, конечно, должна «просохнуть», а в сегодняшней практической части некоторые действия будут выполняться с помощью альтернативного софта.
Ну что, вас не испугало теоретическое описание процесса? Fortes fortuna adjuvat — смелым помогает судьба, так что приступим к практической части. Разумеется, в одной статье невозможно описать и десятой части возможностей MeGUI, поэтому сегодня займемся только созданием видеофайла с h264-видеопотоком и AAC-звуком.