Что такое формат файла OPUS?
Файлы с расширением .opus содержат аудио - музыкальные треки или человеческую речь, - сжатое методом с потерями. Для сжатия используются как алгоритм SILK, так и алгоритм на основе преобразования MDCT под названием CELT, что обеспечивает высокую гибкость и низкую сложность, позволяя формату кодировать звук в реальном времени даже на относительно скромных процессорах.
Уникальной особенностью звука, хранящегося в файлах .opus, является то, что их параметры могут различаться в каждом фрагменте (так называемом «фрейме», по умолчанию охватывающем 20 мс):
- Битрейт - от 6 кбит/с до 510 кбит/с
- Полоса пропускания
- Сложность
- Тип алгоритма (SILK, CELT или гибридная смесь обоих)
Формат .opus является открытым стандартом, определенным IETF (Internet Engineering Task Force), и создан Xiph.Org Foundation в сотрудничестве со Skype Technologies (ныне часть Microsoft). Эталонная реализация содержится в библиотеке libopus, доступной под лицензией New BSD. Звук в этом формате может храниться в одной из пяти внутренних полос пропускания (от узкополосной до полнополосной, до 48 кГц) и поддерживает до 255 каналов в многопоточном режиме. Он был разработан для использования внутри файловых контейнеров, чаще всего в файлах OGG, а также широко применяется для голосовой связи в реальном времени в вебе через WebRTC. Современные браузеры нативно декодируют .opus как в контейнерах Ogg, так и в WebM.
Безопасность и защита
РИСК: LOWФайл .opus представляет собой обычные сжатые аудиоданные - он не содержит исполняемого кода, поэтому сам формат безопасен. Стандартные предостережения: специально сформированные медиафайлы могут использовать уязвимости плееров (держите VLC/плееры обновленными), а голосовые сообщения могут содержать конфиденциальную личную информацию - будьте осторожны с тем, что вы загружаете в онлайн-конвертеры.
Детали формата
в двух словахПрограммы, открывающие файлы OPUS
Технические подробности
глубокая спецификация| Архитектура кодека | Гибрид режимов SILK (речь, на базе LPC) и CELT (музыка/общее аудио, на базе MDCT); кодировщик выбирает или смешивает их автоматически для каждого фрейма |
| Формат контейнера | Контейнер Ogg с расширением .opus; также встраивается в файлы WebM (.weba) и Matroska (.mkv) |
| Диапазон битрейта | от 6 кбит/с до 510 кбит/с, настраиваемый и переменный для каждого фрейма |
| Размер фрейма | от 2,5 мс до 60 мс; по умолчанию 20 мс; настраивается для каждого пакета для баланса задержки и качества |
| Внутренняя частота дискретизации | Внутри всегда обрабатывается при 48 кГц; декодер может выводить звук на 8, 12, 16, 24 или 48 кГц |
| Режимы полосы пропускания | Пять: narrowband (8 кГц), mediumband (12 кГц), wideband (16 кГц), super-wideband (24 кГц), fullband (48 кГц) |
| Максимальное количество каналов | До 255 каналов в многопоточной инкапсуляции Ogg (сопоставление каналов RFC 7845) |
| MIME-тип | audio/ogg; codecs=opus для передачи файлов; audio/opus for для потоковой передачи RTP |
| Магические байты | OggS (hex 4F 67 67 53) по смещению 0; строка OpusHead по смещению 28 в полезной нагрузке первой страницы Ogg |
| Эталонная реализация | Библиотека libopus (лицензия BSD-3-Clause); консольные инструменты opusenc и opusdec в пакете opus-tools |
| Алгоритмическая задержка | Минимум 26,5 мс упреждения; достаточно мало для голосовой и видеосвязи в реальном времени |
| Сложность кодировщика | Настраивается от 0 (самый быстрый, низкое качество) до 10 (самый медленный, высокое качество) в зависимости от ограничений процессора |
| Поддержка браузерами | Нативная в Chrome, Firefox, Edge и Opera; Safari добавила поддержку начиная с версии 11 на macOS и iOS |
| Типичные области применения | VoIP, WebRTC, стриминг подкастов и музыки, голосовые сообщения в таких приложениях, как Discord и WhatsApp |
| Выпущен | 2012 (codec standardized as RFC 6716, September 2012; Ogg encapsulation RFC 7845, 2016) |
| Открыть стандартное | Да · без роялти |
| Спецификация | datatracker.ietf.org |