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

Путь звука

Звук на пути от ведущего к слушателям претерпевает несколько превращений. Средней подробности путь выглядит так:

 

  • Сначала звуковая волна улавливается микрофоном и передаётся в компьютер.
  • Тут же из аналоговой формы она преобразуется в цифровой сигнал, то есть оцифровывается. Приложения (в т.ч. вещательное) работают именно с оцифрованным звуком.
    • на этом этапе характеристики звука (частота, число каналов, число бит) как правило наибольшие, которые позволяют получить микрофон и звуковая карта.
  • В несжатом цифровом виде звук занимает довольно много места, слишком много для передачи через интернет. Поэтому он кодируется в сжатый формат.
    • перед кодированием звук преобразуется к нужному числу бит, частоте и числу каналов
    • затем сжимается кодеком (кодировщиком) в соответствии с битрейтом (или параметром качества)
    • кодируется звук как правило с потерями, то есть обратно точную звуковую волну восстановить нельзя. Но нашему уху вполне хватает и неточной
  • Дальше сжатые данные отправляются на сервер, тот в свою очередь раздаёт их слушателям, а у них происходит обратный процесс.

Таким образом, на качество звука будут влиять:

  1. Микрофон и звуковая карта ведущего
  2. Характеристики оцифрованного звука
  3. Используемый кодек и битрейт

Про микрофон и звуковую карту уже многие рассказывали. Разберёмся с остальными пунктами.

Какие параметры кодирования звука обеспечат хорошее качество

Характеристики оцифрованного звука

Перед сжатием исходный звук преобразовывается: может измениться его частота, число каналов, иногда число бит. Изменяются они как правило в сторону уменьшения. Нет смысла их увеличивать — качество звука от этого не улучшится.

То есть уже на этом этапе звук немного ужимается.

Посмотрим, что это за характеристики и какие значения для них выбрать.

Число бит

Параметр встречается редко. Но если встретится, смело уменьшайте до 16 бит.

Задаёт диапазон изменения амплитуды оцифрованной звуковой волны. Или «по-научному» глубину дискретизации.

Число каналов

Как правило хватает одного канала (моно). Если конечно вы не собираетесь транслировать какие-либо стереоэффекты : )

Один канал хорошо экономит битрейт. Т.к. в случае стерео-звука каждый канал сжимается отдельно. То есть можно считать, что для для серео для того же качества понадобится в два раза больший битрейт1.

Если нужно стерео (и ваш микрофон его может обеспечить), ставьте два канала. Более двух каналов в трансляциях встречается очень редко. К тому же, MP3 поддерживает максимум 2.

Частота дискретизации

Частота дискретизации — задаёт число сэмплов, которое понадобится для хранения секунды звука. Сэмпл зависит от битности (числа бит), то есть для 16 бит сэмпл = двум байтам.

Для голосового вещания вполне хватает частоты 22050 герц. Можно и до 16000 уменьшить2.

Если кроме голоса будет музыка, можно увеличить до 32000 или выше. Послушайте звучание, поставьте, как понравится.

Но учтите: чем выше частота, тем больше потребуется битрейт, чтоб сохранить приемлемое качество. А от битрейта многое зависит.

Характеристики сжатого звука

Оцифрованный звук с нужными характеристиками передаётся кодировщику, который его сожмёт. Для сжатия (особенно, если это видео) может использоваться много настроек. Но для нас основная — это битрейт. Ну и сам кодировщик.

Битрейт

Битрейт en задаёт число бит для кодирования секунды звука. То есть он похож на частоту, но речь уже идёт о сжатом звуке.

Также битрейт обозначает число бит, передаваемых за секунду по каналу связи. Если быть более точным, то как раз к каналу битрейт и привязывается при сжатии. Показывая, что для передачи звука нужен канал, способный пропустить столько-то бит в секунду.

Битрейт задаётся в битах в секунду: бит/с, bits/s, bps (bits per second). Но чаще в килобитах и мегабитах: kbps (kbit/s), Mbps (Mbit/s).

Info

число байт в секунду = число бит в секунду / 8

Note

Приставки кило- и мега- здесь обозначают десятичный множитель, то есть 1000 и 1000000. А не двоичный, как обычно в компьютерных системах, когда 1 килобайт = 1024 байтам.

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

Чем больше битрейт, тем меньше потерь. Меньше битрейт — больше потерь при сжатии и соответственно ниже качество.

Для указанных выше параметров вещания (22,5 КГц, моно) подходит битрейт 32 кбит/с.

Расчёт

От битрейта зависит, сколько слушателей сможет обслужить ваш вещательный сервер. Или вместить комната вебинара. Просто укажите в калькуляторе ширину канала сервера (урок «Как выбрать сервер») и битрейт:

Например на 100МБит канале поместятся максимум \(100 \times 1000/32 = 3125\) слушателей.

Ширина канала:
10 Мбит/с 30 Мбит/с 100 Мбит/с 1000 Мбит/с
Битрейт (кбит/с):
16 24 32 40 48 56 64 80 96 128 160 192 224 256 320
Итого: ?

В случае трансляции кроме голоса ещё и музыки (радио) параметры сжатия звука могут быть выше. Тут уже уместнее стерео с частотой 44,1 КГц, битрейт 96-128КБит/с и выше.

При 128 kbps вещании на 100МБит канале поместятся \(100 \times 1000/128 \approx 780\) слушателей, что тоже неплохо.

Audio CD

Кстати, аудио-CD записываются как раз с параметрами 44100 Гц, 16 бит, стерео. Но без сжатия.

CBR, VBR, ABR

Среди параметров сжатия может встретиться такой. Для кодирования домашней коллекции музыки отлично подходит переменный (плавающий, variable, VBR) битрейт. Но для вещания он не подходит — следует выбирать CBR (constant bitrate).

Подробности

Упрощённо: при сжатии звук разбивается на кусочки. И каждая такая часть сжимается отдельно. Некоторые кусочки можно сжать сильнее, сохраняя качество. Например, тишину. Некоторые наоборот требуют больше бит для сжатия, чем указано в битрейте.

CBR это не учитывает, каждый кусочек сжимается до определённого размера.

При сжатии с VBR кодек записывает столько бит, сколько требуется для каждого кусочка. При этом стараясь «подогнать» средний битрейт (для всего файла) под заданный.

Но так как канал у нас с ограниченной пропускной способностью, более длинные кусочки, отправляемые слушателям одновременно, могут просто в канал не пролезть. Т.к. они требуют больше бит, чем мы указали в битрейте.

ABR (adaptive bitrate) — что-то среднее между CBR и VBR.

Кодек

Кодек (encoder, кодировщик) определяет, каким способом будет сжиматься звук. Айскаст поддерживает MP3, vorbis (в контейнере Ogg), AAC, AAC+.

Каждый кодек сжимает звук своими алгоритмами и выдаёт результат в собственном формате.

Не каждый плеер поддерживает все форматы. В основном это касается веб-плееров на флеше и браузеров, когда используем HTML5 audio плеер.

Кроме того, часть кодеков защищены лицензиями, подразумевающими лицензионные отчисления за пользование кодеком: за кодирование и декодирование звука. Поэтому некоторые приложения, например audacity, поставляется без MP3 кодека, который нужно установить самостоятельно.

кодексжатиелицензиябраузеры (html5)flashмобильные
AAC отличное проприетарный IE, Safari, ±Chrome ± часто
MP3 нормальное проприетарный Почти все. Opera, Firefox, Chromium не всегда + почти все
Vorbis (Ogg) хорошее свободный Почти все, кроме IE, Safari - редко
Opus* отличное свободный Firefox, Chromium - очень редко

Итого:

AAC-кодеки отлично сжимают звук, но в браузерах встречаются не так часто, как хотелось бы. Также они поддерживаются далеко не всеми вещательными приложениями. Хороший выбор, если хочется улучшить качество не увеличивая битрейт. Но придётся подобрать приложение для вещания и плеер в вебинарную комнату.

Ogg-Vorbis — свободно распространяемый кодек. Часть браузеров могут его играть вообще без флеша. Но он не поддерживается в Internet Explorer и Safari. Никаких лицензионных ограничений, но придётся поискать плеер в комнату вещания.

Opus — относительно новый свободно распространяемый кодек. Хорошо сжимает звук, но пока очень слабо поддерживается. Не готов для использования.

MP3. Для максимальной совместимости лучше использовать mp3. Только его умеет воспроизводить flash player, который используем в комнате вещания. Браузеры без флеша часто умеют воспроизводить mp3 через HTML5 audio.

Про битрейт и кодеки

В прошлом разделе примерные битрейты я указывал именно для MP3.

Для ogg vorbis битрейт может задаваться неявно, через настройку качества.

Для AAC+ битрейт можно смело уменьшать по сравнению с MP3 — качество сохранится.

О плеерах

Большинство современных приложений плееров (VLC, Winamp, Vox, AIMP, …) без труда поддерживают все указанные форматы. Но удобнее, когда плеер находится прямо на сайте, в комнате вещания.

Для сайта мы используем flash player с возможностью переключения на HTML5 audio. Пример такого переключения есть в бонусе «Готовые шаблоны».

А про то, как можно подружить флеш плееры с ogg vorbis и AAC, я расскажу в бонусе «Плеер в комнату».


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

  2. по непроверенной информации flash mp3 плеер испытывает трудности с частотами отличными от 11025, 22050 и 44100 Гц. Так что если 16000 у вас не заработало, меняйте.