Кодируем vorbis в Linux

debianeach

Опубликован:  2019-03-26T05:27:58.506378Z

Продолжаем разговор о прикладных задачах для десктопа на каждый день, очередная презентация блога посвящена популярному формату хранения аудио-данных - vorbis, посмотрим на имеющиеся инструменты для работы с этим форматом и характерные приёмы их использования.

Vorbis - современный свободный формат хранения аудио-данных, приобрёл популярность за счёт отличного соотношения степени сжатия и качества воспроизведения, простоты использования и доступности, удобства работы с метаданными и широкого спектра значений некоторых технических параметров получаемых потоков. Vorbis - многоканальный кодек, по умолчанию использует переменный битрейт в достаточно широком спектре и поддерживает частоту дискретизации до 192 кГц. Этот формат очень часто используется для кодирования аудио-дорожек видео-файлов, последнее время на youtube.com достаточно часто встречаются ролики с аудио-дорожками Vorbis.

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

В Debian buster для работы с форматом Vorbis имеется специализированный пакет - vorbis-tools, который можно установить с помощью пакетного менеджера apt из официального репозитория.

sudo apt install vorbis-tools

В составе этого пакета есть все необходимые инструменты для работы с файлами формата Vorbis - эти файлы имеют расширение .ogg. Состав пакета можно увидеть при помощи dpkg, исполняемые файлы находятся в каталоге /usr/bin.

84Bm1kOdAV.png

Для каждого исполняемого модуля vorbis-tools имеется мануал, который можно просмотреть при помощи команды man.

Утилита oggenc даёт возможность кодировать аудио-данные в формат vorbis. Чтобы получить файл с расширением .ogg, понадобится исходный файл, на входе oggenc принимает файлы WAV, AIFF, FLAC, Ogg/FLAC, или сырой PCM поток. В рамках этого обзора я буду кодировать WAV-файл использованный в двух предыдущих выпусках блога.

CjFQ1dDWf5.png

На снимке экрана выше показан выхлоп mediainfo для моего исходного файла, следует обратить внимание на характерные параметры:

  • Sampling rate 44.1 kHz;
  • Bit depth 16 bits;
  • Duration 3 min 31 s;
  • Stream size 35.6 MiB.

Исходный файл представляет из себя CDDA-рип - наиболее часто встречаемая и удобная форма распространения музыки в сети Интернет на сегодня.

В командной строке oggenc имеет следующую форму ввода команды.

oggenc [options] inputfile [...]

Как видно, обязательным для ввода является только имя исходного файла, который подаётся на вход, имя результирующего файла в этом случае будет повторять имя исходного файла c расширением .ogg. Кодируем.

oggenc 05.wav

uJPbkCuN76.png

Как видно на снимке экрана выше, энкодер создал файл 05.ogg с переменным битрейтом и параметром качества кодирования равным 3,00. Для мобильных устройств качество воспроизведения файлов полученных с дефолтными настройками вполне достаточно, но степенью сжатия можно управлять, параметр качества кодирования может принимать значения от -1 до 10, при этом дробные значения допустимы. Из практики знаю, что поднимать значение качества кодирования выше 4 вряд ли когда-либо понадобится, начиная с четвёрки редкое ухо сможет отличить звучание Vorbis от исходника. Сделаю ещё один файл.

oggenc -q 4 05.wav -o 05.q4.ogg

Rib83PbKgq.png

Если посмотреть на размер полученных файлов, можно убедиться, что для мобильных устройств Vorbis очень хорошо подходит.

EfaDFVgNZg.png

Но как бы хорошо Vorbis не звучал, не стоит себя обманывать, этот формат вносит существенные искажения и является lossy форматом, кроме этого, он проигрывает формату opus в качестве воспроизводимого потока.

Поскольку oggenc на входе принимает формат FLAC и при вводе команды не требует имя исходящего файла, перекодирование очень распространённых на данный момент потрековых CDDA-рипов будет самой часто встречающейся и простой задачей. Рассмотрим простой пример, у меня есть потрековый CDDA-рип, в консоли он выглядит следующим образом.

wE9bbkkiFg.png

Чтобы получить этот альбом в формате Vorbis достаточно ввести одну очень простую команду в текущем каталоге, содержащем файлы FLAC.

oggenc -q 4 *.flac

И на выходе у нас получится весь альбом в формате Vorbis.

ULBexWA2oP.png

Следует заметить, что метаданные фалов FLAC будут автоматически скопированы в файлы Vorbis, посмотрим на примере первого трека, сделать это мне поможет утилита vorbiscomment.

vorbiscomment -l 01\ Шанхай\ -\ Блюз\ для\ Анны.ogg

d7XfPoVvB7.png

Кроме этого, программы kid3 и puddletag тоже поддерживают Vorbis.

YTqOoGNrts.png

3RqRnBJwyF.png

А если у вашего рипа есть CUE-файл, то метаданные треков легко можно подтянуть из него при помощи утилиты cue2tags из пакета cuetoolkit.

fwuh2gKgdP.png

По удобству использования Vorbis можно считать чемпионом, например работу с метаданными vorbiscomment у него позаимствовали два других аудио-формата: opus и FLAC.

Конечно же, эта статья не отражает всех приёмов работы с форматом Vorbis, и в рамках этого блога мы ещё не раз о нём поговорим и рассмотрим другие варианты прикладных задач в сочетании с видео и способы их решения. Оставайтесь с нами, будет интересно... Кстати, любой желающий может оставить свой комментарий к этой статье. Расскажите миру, что вы думаете о рассмотренном формате, как используете и почему выбрали именно его.

Комментарии: