Opus (кодек)
Opus (ранее Harmony) — аудиокодек для сжатия с потерями, разработанный сообществом Internet Engineering Task Force (IETF) специально для применения в приложениях реального времени в Интернете[5]. Является открытым форматом, стандартизованным в RFC 6716, a эталонная реализация распространяется под трёхчастной лицензией BSD. Все известные патенты, под которые подпадает кодек Opus, доступны под лицензией royalty-free[5].
Основное преимущество данного кодека — низкая задержка кодирования (от 2,5 до 60 мс, настраиваемо), более сильное сжатие аудиоданных, поддержка многоканального звука (до 255 каналов).
Что важно знать
| Opus | |
|---|---|
| Расширение |
.opus |
| MIME-тип | audio/opus[1] audio/ogg [2] |
| Разработчик | рабочая группа IETF по кодекам |
| Последний выпуск | 1.4 (20 апреля 2023[3]) |
| Тип формата | аудиоформат |
| Содержится в | Ogg, Matroska, WebM |
| Расширен из | SILK, CELT |
| Стандарт(ы) | RFC 6716[4] |
| Открытый формат? | Да |
| Сайт | opus-codec.org (англ.) |
Основные возможности
Основные возможности Opus:
- Частота дискретизации от 8 до 48 кГц[6];
- Битрейт от 6 до 510 кбит/с[7];
- Поддерживаются режимы постоянного и переменного битрейта;
- Задержка кодирования от 2,5 до 60 мс, настраиваемо;
- Существуют реализации, использующие арифметику либо с фиксированной запятой, либо с плавающей запятой;
- Многие параметры (практически, все, за исключением частоты дискретизации и числа каналов) можно менять «на лету», без переинициализации и, следовательно, прерывания потока;
- При потере блока (например, при передаче посредством UDP) возможна попытка восстановления сигнала.
- Не является обязательной синхронизация настройки частоты дискретизации между кодером и декодером. Рекомендуется настраивать частоту дискретизации при декодировании, исходя из вычислительной мощности[8].
Opus продемонстрировал более высокое качество[9] на битрейте 64 кбит/с по сравнению c Nero HE-AAC, Vorbis и AAC LC, но несколько ниже, чем Apple HE-AAC.[10]
Поддерживаемые частоты дискретизации были определены в RFC 6716RFC:[4]
| Сокращение | Полоса пропускания звука, кГц | Эффективная частота дискретизации, кГц |
|---|---|---|
| NB (narrowband) | 4 | 8 |
| MB (medium-band) | 6 | 12 |
| WB (wideband) | 8 | 16 |
| SWB (super-wideband) | 12 | 24 |
| FB (fullband) | 20[11] | 48 |
Звуковые данные кодека могут быть упакованы в контейнер Ogg. Содержимое такого Ogg Opus потока должно быть определено как audio/ogg; codecs=opus с рекомендованным расширением файла .opus.[2] Поддержка упаковки в контейнеры Matroska была реализована в MKVToolNix.[12] Opus также является зарегистрированным форматом MPEG-TS[13] и контейнеров MP4[14]. Спецификация медиаконтейнера WebM предусматривает использование кодека Opus для кодирования аудиоданных.
В 2011 году Яном Скёглундом из Google были проведены две серии тестов[15][16], в ходе которых было проведено сравнение кодирования и декодирования в Opus на основе оценки группы экспертов и неподготовленных слушателей. По его выводам, для стереомузыки Opus при 64 кбит/20 мс, 80 кбит/10 мс и 128 кбит/5 мс дает такое же качество, как MP3 128 кбит, AAC-LC 96 кбит и лучшее качество, чем G.719 64 кбит.
История появления
4 февраля 2013 года была анонсирована новость[17] о сеансе видеосвязи напрямую между браузерами Mozilla Firefox Nightly и Google Chrome Beta 25. Этот сеанс анонсировал поддержку обоими браузерами стандарта WebRTC, на основе которого и был совершен сеанс. Соединение осуществлялось с помощью дополнения RTCPeerConnection. Для передачи звука и видео используются свободные кодеки Opus и VP8, для шифрования — DTLS-SRTP, для поддержки NAT — ICE.
Использование
Черновик стандарта WebRTC «WebRTC Audio Codec and Processing Requirements» от 15 октября 2013 года содержит требование поддержки клиентами форматов Opus и G.711[18][19].
Поддерживается в разработанных Mozilla программах Firefox и Thunderbird с 15 версии[20].
Аудиоформат Opus поддерживают такие приложения, как GStreamer, FFMpeg, foobar2000, K-Lite Codec Pack, AIMP, LAVfilters, PotPlayer и VLC player (начиная с 2.0.4). Анонсированы работы по поддержке Opus в голосовом чате Mumble и прошивке для аудиоплееров Rockbox. Разработчики популярных приложений для голосового чата Discord и TeamSpeak 3[21] также внедрили поддержку кодека.
Популярный видеохостинг YouTube использует Opus для звуковых дорожек при воспроизведении любого видео.[22]
Патентные претензии
См. также
Примечания
Ссылки
- opus-codec.org — официальный сайт Opus
- java version


