Библиотека сайта rus-linux.net
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-странице.