Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Графика, звук, видео в Linux

OGMtools - средства управления Ogg-потоками

Оригинал: Manage Ogg audio streams with OGMtools
Автор: Chad Files
Дата: 3 июня 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 14 июня 2008

При создании видео для кодирования аудиоданных я пользуюсь кодеком Ogg Vorbis. Это позволяет экономить место на диске практически без потери качества. При работе с этими ogg-файлами мне постоянно требуется соединять или изменять дорожки, что требует определенных усилий. Для облегчения решения подобных задач я выбрал для себя инструментарий OGMtools.

Комплект OGMtools содержит несколько утилит для управления файлами Ogg Media Stream (OGM). Они были разработаны для использования с программами видео-риппинга при кодировании аудиодорожек, однако естественно могут быть использованы для многих других вещей.

Программа ogminfo получает информацию об указанном Ogg-файле. Команда ogminfo -s audio.ogg выводит полные сведения об аудиофайле, в том числе размер файла, битрейт, количество пакетов и длительность звучания. Программа может вывести еще больше информации по указанному файлу, если повысить ее "разговорчивость" с помощью опции -v.

ogmcat предназначена для создания коротких аудиокусочков и комбинирования их в более длинные, а также для создания фонового зацикленного звука. К примеру, команда ogmcat -o audio.ogg track1.ogg track2.ogg track3.ogg последовательно соединяет файлы track1, track2 и track3 и выводит результат в файл audio.ogg.

В основе ogmcat лежит строгий алгоритм соединения аудиофайлов, который гарантирует корректность звука при слиянии. Подробнее о том, что именно проверяет ogmcat, можно почитать в разделе limitations руководства man ogmcat. Если все файлы были созданы в какой-то одной программе, то все должно пройти успешно. Если же нет, то слияние может не произойти, и ogmcat выдаст ошибку. Можно пропустить некоторые проверки с помощью опции -n.

Для создания зацикленного звука нужно несколько раз соединить файл самим с собой: ogmcat -o audio.ogg track.ogg track.ogg track.ogg.

Склеиваем и разделяем Ogg-дорожки

При создании скринкастов я использую recordmydesktop для создания ролика из того, что творится на экране, затем описываю производимые действия в Audacity. Затем мне становится необходимо визуально синхронизировать аудиодорожку Ogg Vorbis с видеофайлом Ogg Theora. Затем я объединяю их следующим образом. Преобразую видео Theora в xvid (так как OGMtools не поддерживает Ogg Theora), затем использую oggmerge для их слияния. Команда примерно такая: ogmmerge -o final.ogm -A video.avi audio.ogg. Опция -A указывает программе, что нужно полностью проигнорировать аудиодорожку, хранящуюся в видеофайле.

После слияния я обычно пользуюсь FFmpeg для преобразования файл в формат DV Digital Video, чтобы его можно было редактировать в Kino. Однако, если видео не нуждается в обработке, я просто применяю ogmcat для слияния всех сегментов воедино. Для автоматизации процесса я использую shell-скрипты, с ними все преобразования становятся тривиальными.

Средством, обратным к ogmmerge, является ogmsplit, призванный разделять OGM на несколько более мелких кусочков. Разделение производится либо по времени, либо по размеру файла. К примеру, ogmspit -t 300 -o split.ogg video.ogg разделит файл video.ogg на отдельные файлы, каждый длительностью 300 секунд. Выходные файлы будут иметь имена split-XXXXX.ogg, где XXXXX - последовательные числа начиная с 1, пустые позиции забиваются нулями (например, 00001). Аналогично, команда ogmsplit -s 50MiB -o split.ogg video.ogg разделит video.ogg на части размером по 50 мегабайт.

ogmdemux может извлекать потоки из OGM-файлов. Программа полезна для разделения аудио- и видеопотоков по отдельным файлам. Так, команда ogmdemux -o video -na video.ogm извлекает видеопоток из файла video.ogm и выводит результат в файл с именем video-v1.avi; опция -na (нет аудио) указывает программе, что нужно извлекать лишь видеопоток. Базовое имя результирующих файлов определяется опцией -o, а сами имена зависят от используемых опций. Аналогично, команда ogmdemux -o audio -nv video.ogm извлечет лишь аудио из полного видео и запишет результат в файл audio-v1.ogg.

Можно извлекать конкретный аудио-, видео- или текстовый поток. По умолчанию извлекается первый поток. Для получения более подробной информации обратитесь к man-странице.