Opus (кодек)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Opus
Розширення файлу: none
MIME тип: audio/opus[1]
Розробник: Jean-Marc Valin, Koen Vos
Рік випуску: вересень 2012
Остання версія: 1.1
Дата випуску останньої версії: 5 грудня 2013; 134 дні тому
Тип формату: аудіокодек
Міститься у: Ogg, Matroska
Розширений з: SILK, CELT
Стандарт(и): RFC 6716

Opusвільний та відкритий звуковий кодек, прийнятий у вересні 2012 Internet Engineering Task Force (IETF) як стандартний аудіо-кодек для інтернет-застосунків.[2] Перший стабільний реліз кодека відбувся одночасно зі стандартизацією кодека комітетом IETF (Internet Engineering Task Force), що займаються розвитком протоколів і архітектури Інтернету. Кодек Opus та його еталонна реалізація стандартизовані у вигляді RFC 6716 , в якому Opus першим визначений як стандартний аудіо-кодек для інтернету, що не вимагає ліцензійних відрахувань і не перетинається з запатентованими технологіями.

Формуванню RFC передував трирічний підготовчий етап, в рамках якого було випущено 16 попередніх варіантів специфікації. Наступною стадією розвитку стане додання RFC статусу чорнового стандарту (Draft Standard), що фактично означає повну стабілізацію протоколу та врахування всіх висловлених зауважень. На стадії чорнового стандарту перебуває більшість протоколів мережі, і лише одиниці після багатьох років існування досягають найвищого статусу — стандарт Інтернету (всього статус стандарту отримали близько 70 RFC).

Еталонні реалізації кодувальника і декодувальника Opus поширюються під ліцензією BSD. Повні специфікації формату загальнодоступні і безплатні. Всі використовувані в Opus патенти надані компаніями, котрі брали участь у розробці, для необмеженого користування без виплати ліцензійних відрахувань. Всі пов'язані з Opus інтелектуальні права і ліцензії на патенти автоматично делегуються для застосунків і продуктів, що використовують Opus, без необхідності додаткового погодження. Відсутні будь-які обмеження на область застосування і створення альтернативних сторонніх реалізацій. При цьому всі надані права відкликаються у разі розв'язування патентного розгляду, що зачіпає технології Opus, проти будь-якого користувача Opus.

Кодек створений шляхом комбінації найкращих технологій з розробленого організацією Xiph.org кодека CELT і відкритого компанією Skype кодека SILK. Крім Skype і Xiph.org в розробці Opus також взяли участь такі компанії, як Mozilla, Octasic, Broadcom і Google.

Кодек Opus відрізняється високою якістю кодування і мінімальною затримкою як при стисненні потокового звуку з високим бітрейтом, так і при стисненні голосу в обмежених за пропускною здатністю застосунках VoIP-телефонії.

Основні можливості[ред.ред. код]

Основні можливості Opus:

  • Дискретизація від 8 до 48KHz;
  • Бітрейт від 6 до 510 Kbit;
  • Підтримка постійного (CBR) і змінного (VBR) бітрейтів;
  • Підтримка вузькосмугового та широкосмугового звуку;
  • Підтримка голосу і музики;
  • Підтримка стерео і моно;
  • Тривалість кадрів від 2.5 до 60 мілісекунд;
  • Підтримка динамічного налаштування бітрейту, пропускної здатності та розміру кадру;
  • Можливість відновлення звукового потоку в разі втрати кадрів (PLC);
  • Доступність реалізацій з використанням арифметики з плаваючою і фіксованою комою.

Opus продемонстрував високу якість[3] та був визнаний найкращим кодеком при використанні бітрейта 64Kbit, обігнавши таких конкурентів, як Apple HE-AAC, Nero HE-AAC, Vorbis та AAC LC.[4]

Підтримка[ред.ред. код]

Формат та алгоритм мають відкриті документацію, референсна реалізація опублікована як вільне програмне забезпечення. Референсна реалізація Xiph називається opus-tools, і складається з окремих кодувальника та декодувальника; вона опублікована на умовах BSD-подібної ліцензії. Вона написана на C і можуть бути зібрані для апаратних архітектур з або без модуля плаваючої коми. Супровідний інструмент діагнозтики opusinfo надає докладну технічну інформацію про файли Opus, включаючи інформацію про відповідність стандарту формату бітового потоку. Він заснований на ogginfo з vorbis-tools і тому, на відміну від кодувальника та декодувальника, доступний на умовах 2-ї версії ліцензії GPL.

VoIP програми[ред.ред. код]

  • Голосовий чат Mumble у версії 1.2.4 підтримує Opus як свій основний кодек.[5][6][7][8]
  • Програмні SIP-телефони Phoner і PhonerLite підтримують Opus (підьотмка була забезпечена коли Opus ще перебував на ранніх стадіях розробки)
  • SIP та IAX2 клієнти SFLphone забезпечені підтримкою Opus[9]
  • Інтеграція Opus у клієнти Skype завершена, хоча версія з підтримкою Opus досі не опублікована.
  • Відео конференція TrueConf підтримує Opus.[10]
  • Jitsi підтримує Opus разом з VP8-відео[11][12] у релізі v2.0[13]
  • Empathy може використовувати будь-який формат, підтримуваний у GStreamer, включаючи Opus.
  • Line2 замінила свій власний кодек на Opus. Їхній iOS-застосунок став першим, хто реалізував Opus. Застосунок під Android має бути.[14]
  • CSipSimple підтримує Opus через додатковий плагін
  • Голосовий чат TeamSpeak 3 підтримує Opus для голосу і музики з версії 3.0.7 і версії клієнта 3.0.10[15][16]
  • Bria X-Lite підтримує Opus
  • Acrobits Softphone підтримує Opus

Веб каркаси і браузери[ред.ред. код]

  • Підтримка Opus обов’язкова для реалізацій WebRTC[17]
  • Mozilla підтримує Opus починаючи з версії 15 своїх Firefox та Thunderbird.[18]
  • Залежно від бекенду Opera підтримує відтворення вбудованих файлів Opus[19] Офіційна підтримка Opus та WebRTC вписані в план розробки[20]
  • Chromium та Google Chrome повністю підтримують Opus з версії 26.[21]

Потокове аудіо[ред.ред. код]

  • Icecast.[22] There are also streaming Icecast radio trials that have been live since September 2012[23] and January 2013.[24]
  • Liquidsoap
  • Airtime includes Opus support by default since version 2.4.0. [25]

Операційні системи та настільні мультимедійні каркаси[ред.ред. код]

  • У Debian GNU/Linux, Arch Linux та Ubuntu бібліотеки підтримки і інструменти розробника Opus можуть бути встановлені з перед-конфігурованих репозиторіїв[26]
  • Для Microsoft Windows існують фільтри DirectShow з підтримкою Opus, включаючи DC-Bass Source Mod та LAV Filters.[27]
  • У GStreamer інтеграція підтримки Opus повна[28]
  • FFmpeg підтримує кодування та декодування Opus через зовнішню бібліотеку libopus з FFmpeg 1.1.[29]

Підтримка у пристроях і вбудованих системах[ред.ред. код]

Програмне забезпечення плеєрів[ред.ред. код]

  • AIMP підтримує Opus з версії 3.20.[32]
  • Amarok підтримує Opus з версії 2.8.[33]
  • Capriccio (музичний плеєр для iPhone) підтримує Opus у безплатній та платних версіях[34]
  • CMUS підтримує Opus з версії 2.5.0
  • foobar2000 має внутрішню підтримку формату починаючи з v1.1.14 beta 1.[35]
  • Mpxplay підтримує Opus (використовує DLL для декодування) з v1.60 alpha 2
  • MusicBee має внутрішню підтримку Opus з версії 2.0.[36]
  • VLC media player підтримує Opus з версії 2.0.4[37]
  • Winamp підтримує Opus (використовує сторонні DLL)[38]

Інші програми[ред.ред. код]

Виноски[ред.ред. код]

  1. Network Working Group (2011-07-04). «RTP Payload Format and File Storage Format for Opus Speech and Audio Codec». Opus codec. IETF. Архів оригіналу за 2012-09-29. Процитовано 2011-10-26. 
  2. Публикация RFC ознаменовала первый стабильный релиз свободного аудиокодека Opus
  3. Raymond Chen et al. Opus Testing. IETF 80
  4. Maxwell, Greg (2011). «64kbit/sec stereo multiformat listening test - unofficial results page». Xiph.org Foundation. Архів оригіналу за 2012-09-29. Процитовано 2011-06-19. 
  5. Помилка цитування: Неправильний виклик <ref>: для виносок mumble не вказаний текст
  6. Помилка цитування: Неправильний виклик <ref>: для виносок mumble2 не вказаний текст
  7. Mumble-Server (Murmur) Opus-Codec
  8. Mumble (Client) Next generation audio codec
  9. Помилка цитування: Неправильний виклик <ref>: для виносок SFLphone не вказаний текст
  10. Помилка цитування: Неправильний виклик <ref>: для виносок TrueConf не вказаний текст
  11. Помилка цитування: Неправильний виклик <ref>: для виносок Auto1V-2 не вказаний текст
  12. Помилка цитування: Неправильний виклик <ref>: для виносок Auto1V-3 не вказаний текст
  13. https://download.jitsi.org/jitsi/changelogs/changelog-4506.html
  14. Помилка цитування: Неправильний виклик <ref>: для виносок Line2 не вказаний текст
  15. Помилка цитування: Неправильний виклик <ref>: для виносок teamspeak не вказаний текст
  16. Помилка цитування: Неправильний виклик <ref>: для виносок teamspeak2 не вказаний текст
  17. Помилка цитування: Неправильний виклик <ref>: для виносок webrtc не вказаний текст
  18. Помилка цитування: Неправильний виклик <ref>: для виносок gecko не вказаний текст
  19. Помилка цитування: Неправильний виклик <ref>: для виносок opera не вказаний текст
  20. Помилка цитування: Неправильний виклик <ref>: для виносок cnet не вказаний текст
  21. https://code.google.com/p/chromium/issues/detail?id=104241
  22. Помилка цитування: Неправильний виклик <ref>: для виносок Icecast не вказаний текст
  23. Помилка цитування: Неправильний виклик <ref>: для виносок AbsRadioOpusTrial не вказаний текст
  24. Помилка цитування: Неправильний виклик <ref>: для виносок RadioJackieOpusTrial не вказаний текст
  25. Помилка цитування: Неправильний виклик <ref>: для виносок AirtimeAddsOpusSupport не вказаний текст
  26. Помилка цитування: Неправильний виклик <ref>: для виносок Debian не вказаний текст
  27. Помилка цитування: Неправильний виклик <ref>: для виносок lavfilters не вказаний текст
  28. Помилка цитування: Неправильний виклик <ref>: для виносок gstreamer не вказаний текст
  29. http://ffmpeg.org/download.html#release_1.1
  30. Помилка цитування: Неправильний виклик <ref>: для виносок rockbox_v313 не вказаний текст
  31. Помилка цитування: Неправильний виклик <ref>: для виносок RaaA не вказаний текст
  32. Помилка цитування: Неправильний виклик <ref>: для виносок aimp не вказаний текст
  33. http://amarok.kde.org/en/releases/2.8
  34. Помилка цитування: Неправильний виклик <ref>: для виносок capriccio не вказаний текст
  35. Помилка цитування: Неправильний виклик <ref>: для виносок foobar2000 не вказаний текст
  36. Помилка цитування: Неправильний виклик <ref>: для виносок musicbee не вказаний текст
  37. Помилка цитування: Неправильний виклик <ref>: для виносок vlc не вказаний текст
  38. Помилка цитування: Неправильний виклик <ref>: для виносок winamp не вказаний текст

Помилка цитування: Тег <ref> з назвою "musicbee", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "capriccio", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "winamp", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "teamspeak2", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "teamspeak", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "foobar2000", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "aimp", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "vlc", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "RaaA", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "rockbox_v313", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "gstreamer", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "lavfilters", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Debian", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "AirtimeAddsOpusSupport", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "RadioJackieOpusTrial", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "AbsRadioOpusTrial", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Icecast", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "cnet", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "opera", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "gecko", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "webrtc", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Auto1V-3", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Auto1V-2", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "TrueConf", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Line2", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "SFLphone", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "mumble2", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "mumble", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "opusdelay", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "latencyBitrateTradeoff", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "lipsync", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "carot", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "musiclatency", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "VoIPlatency", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "testsummary", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "algdelay", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "slashdot", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "quality", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "ietf-announce", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "RC", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "jmvalin", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "bitstream_frozen", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "job", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "pre-freeze", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "name", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "renaming", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "WGformation", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Matroska", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "mozilla-hacks", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "mozilla_hacks", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "testing", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "Auto1V-1", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "homepage", визначений у <references>, не використовується в попередньому тексті.
Помилка цитування: Тег <ref> з назвою "payload-format", визначений у <references>, не використовується в попередньому тексті.

Помилка цитування: Тег <ref>, заданий в <references>, має атрибут групи "", який не фігурує в попередньому тексті.

Посилання[ред.ред. код]