Opus (кодек)
Opus (ранее Harmony) — аудиокодек для сжатия с потерями, разработанный сообществом Internet Engineering Task Force (IETF) специально для применения в приложениях реального времени в Интернете[5]. Является открытым форматом, стандартизованным в RFC 6716, a эталонная реализация распространяется под трёхчастной лицензией BSD. Все известные патенты, под которые подпадает кодек Opus, доступны под лицензией royalty-free[5].
Opus | |
---|---|
Расширение |
.opus |
MIME-тип | audio/opus[1] audio/ogg [2] |
Разработчик | рабочая группа IETF по кодекам |
Последний выпуск | 1.3.1 (12 апреля 2019[3]) |
Тип формата | аудиоформат |
Содержится в | Ogg, Matroska, WebM |
Расширен из | SILK, CELT |
Стандарт(ы) | RFC 6716[4] |
Открытый формат? | Да |
Сайт | opus-codec.org (англ.) |
Медиафайлы на Викискладе |
Основное преимущество данного кодека — низкая задержка кодирования (от 2,5 до 60 мс, настраиваемо), более сильное сжатие аудиоданных, поддержка многоканального звука (до 255 каналов).
Основные возможности
Основные возможности 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, LAVfilters, PotPlayer и VLC player (начиная с 2.0.4). Анонсированы работы по поддержке Opus в голосовом чате Mumble и прошивке для аудиоплееров Rockbox. Разработчики популярных приложений для голосового чата Discord и TeamSpeak 3[21] также внедрили поддержку кодека.
Популярный видеохостинг YouTube использует Opus для звуковых дорожек при воспроизведении любого видео.[22]
Патентные претензии
Компании Huawei и Qualcomm предъявили[23][24] претензии о нарушении собственных патентов, которые затем были отвергнуты как несостоятельные[25].
См. также
Примечания
- Network Working Group. RTP Payload Format and File Storage Format for Opus Speech and Audio Codec (недоступная ссылка). Opus codec. IETF (July 4, 2011). Дата обращения: 26 октября 2011. Архивировано 29 сентября 2012 года.
- Ogg Encapsulation for the Opus Audio Codec . IETF (28 апреля 2015). Дата обращения: 30 июня 2015.
- Opus Codec
- Valin, Jean-Marc; Vos, Koen; Terriberry, Timothy B. Definition of the Opus Audio Codec (11 сентября 2012). Дата обращения: 21 июня 2014.
- Newly standardized Opus audio codec fills every role from online chat to music (англ.), Ars Technica. Дата обращения 31 мая 2018.
- Opus Codec . opus-codec.org. — «Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)». Дата обращения: 12 марта 2016.
- Opus Codec . opus-codec.org. — «Bitrates from 6 kb/s to 510 kb/s». Дата обращения: 12 марта 2016.
- OpusFAQ — XiphWiki
- Raymond Chen et al. Opus Testing. IETF 80
- Maxwell, Greg 64kbit/sec stereo multiformat listening test - unofficial results page (недоступная ссылка). Xiph.org Foundation (2011). Дата обращения: 19 июня 2011. Архивировано 29 сентября 2012 года.
- Несмотря на то, что Теорема Котельникова лимитирует полосу пропускания половиной частоты дискретизации, Opus не кодирует аудио выше чем 20 кГц, общепринятым порогом человеческого восприятия звука.
- Bunkus, Moritz MKVToolNix v6.4.0 released . Список рассылки Matroska users (16 сентября 2013). Дата обращения: 24 декабря 2013.
- SMPTE Registration Authority, LLC Registrations . SMPTE Registration Authority, LLC. Дата обращения: 31 мая 2018. Архивировано 13 октября 2014 года.
- The 'MP4' Registration Authority . Дата обращения: 31 мая 2018. Архивировано 28 августа 2004 года.
- https://www.opus-codec.org/comparison/GoogleTest1.pdf
- https://www.opus-codec.org/comparison/GoogleTest2.pdf
- Hello Chrome, it's Firefox calling! (англ.). Mozilla Hacks – the Web developer blog. Дата обращения: 31 мая 2018.
- RFC 7874 - WebRTC Audio Codec and Processing Requirements (англ.). datatracker.ietf.org. Дата обращения: 31 мая 2018.
- Google proposes VP8 and Opus for WebRTC standard - The H Open: News and Features (англ.). www.h-online.com. Дата обращения: 31 мая 2018.
- Media formats supported by the audio and video elements . MDC. Дата обращения: 31 мая 2018. Архивировано 27 июня 2010 года.
- TeamSpeak 3 Client 3.0.10 released - TeamSpeak
- encoding - What audio formats and codecs are used for YouTube videos? . Sound Design Stack Exchange. Дата обращения: 27 июля 2020.
- Qualcomm Incorporated's Statement about IPR related to draft-ietf-codec-opus-05 (англ.). IPR Details. Дата обращения: 31 мая 2018.
- Huawei Technologies Co.,Ltd's Statement about IPR related to draft-ietf-codec-opus-11 (англ.). IPR Details. datatracker.ietf.org. Дата обращения: 31 мая 2018.
- It's Opus, it rocks and now it's an audio codec standard! (англ.). Mozilla Hacks – the Web developer blog. Дата обращения: 31 мая 2018.
Ссылки
- opus-codec.org — официальный сайт Opus
- java version