Аудио

Аудио — это гораздо более простая проблема: если Вы беспокоитесь о качестве, просто оставьте всё как есть. Даже потоки AC-3 5.1 не более чем 448 Кбит/с и они стоят каждого бита. Вы можете соблазниться перекодированием аудио в высококачественный Vorbis (он же ogg формат), но лишь то, что у Вас сегодня нет A/V приёмника для пропускания AC-3, не означает, что у Вас не будет его завтра. Для жизнеспособности Ваших DVD рипов в будущем, сохраняйте поток AC-3. Вы можете сохранить поток AC-3, копируя его непосредственно в видеопоток в процессе кодирования . Вы также можете извлечь AC-3 поток с целью мультиплексирования его в контейнеры наподобие NUT или Matroska (Матрёшка).

mplayer файл_источника.vob -aid 129 -dumpaudio -dumpfile звук.ac3

сохранит в файл звук.ac3 аудиодорожку с номером 129 из файла файл_источника.vob (Обратите внимание: DVD VOB файлы обычно используют нумерацию аудио, отличную от стандартной, что означает, что аудиодорожка VOB 129 — это вторая аудиодорожка файла).

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

Не используйте -nosound при кодировании файла с аудио, даже если позже Вы будете отдельно кодировать и мультеплексировать аудио. Хотя это может работать в идеальных случаях, использование -nosound обычно скрывает ряд проблем в Ваших настройках кодирования в командной строке. Другими словами, наличие звуковой дорожки в процессе кодирования гарантирует Вам, что в случае отсутствия сообщений, подобных «Слишком много аудиопакетов в буфере», у Вас будет получена правильная синхронизация.

Вам необходимо обработать звук с помощью MEncoder. Например, Вы можете копировать исходную звуковую дорожку в процессе кодирования с помощью -oac copy или преобразовать её в "лёгкий" 4 кГц моно WAV PCM с помощью -oac pcm -channels 1 -srate 4000. Иначе, в ряде случаев, будет создаваться видео файл, рассинхронизированный с аудио. Такие случаи происходят, когда число кадров видео исходного файла не совпадает с полной длиной кадров аудио, или когда были разрывы/сшивания потока, где появились пропущенные или излишние аудиокадры. Правильным решением подобных проблем является вставка тишины или усечение аудио в таких точках. Однако, MPlayer не может это сделать и если Вы демультиплексируете AC-3 аудио и кодируете его отдельным приложением (или создаёте дамп в PCM с помощью MPlayer), сшивания останутся нескорректированными и единственный испособ их исправить — пропускать/дублировать видеокадры в местах сшивки. Пока MEncoder видит аудио при кодировании видео, он может выполнять этот пропуск/дублирование (что обычно не вызывыет проблем, т.к. происходит при полностью чёрных кадрах или при смене сцен), но если MEncoder не доступно аудио, он просто будет обрабатывать все кадры "как есть" и они не будут совпадать с окончательным аудиопотоком, когда Вы, например, объедините аудио и видео дорожки в Matroska файл.

Прежде всего, Вам необходимо преобразовать DVD звук в WAV файл, который может использоваться аудиокодеком в качестве входных данных. Например:

mplayer исходный_файл.vob -ao pcm:file=звук.wav
-vc dummy -aid 1 -vo null

сохранит вторую аудиодорожку из файла исходный_файл.vob в файл звук.wav. Возможно, Вы захотите нормализовать звук перед кодированием, поскольку аудиодорожки DVD обычно записываются с маленькой громкостью. Вы можете использовать, например, утилиту normalize, доступную в большинстве дистрибутивов. Если Вы пользуетесь Window$, утилита BeSweet делает то же самое. Вы можете сжать в Vorbis или MP3. Например:

oggenc -q1 звук.wav

кодирует звук.wav с качеством 1, что примерно эквивалентно 80 Кб/с и является минимальным качеством, при котором Вам нужно кодировать, если Вы заботитесь о качестве. Пожалуйста, обратите внимание, что MEncoder на данный момент не поддерживает мультиплексирование аудиопотоков Vorbis в выходной файл, поскольку он поддерживает только AVI и MPEG контейнеры для выходных файлов, использование каждого из которых может привести к проблемам A/V синхронизации с некоторыми плеерами, в случае когда AVI файл содержит VBR аудиопотоки наподобие Vorbis. Не беспокойтесь, в данном документе будет рассказано как Вы можете это сделать с помощью сторонних программ.