AudioEncoder: метод configure()
Ограниченная доступность
Эта функция не является базовой, так как не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в посвященных веб-воркерах.
Метод configure() интерфейса AudioEncoder добавляет сообщение управления для настройки аудиокодера для кодирования фрагментов.
Синтаксис
configure(config)
Параметры
config-
Объект словаря, содержащий следующие члены:
codec-
Строка, содержащая допустимую строку кодека. См. "параметр codecs" для получения подробностей о построении строки кодека.
sampleRate-
Целое число, представляющее количество выборок кадров в секунду.
numberOfChannels-
Целое число, представляющее количество аудиоканалов.
bitrateНеобязательно-
Целое число, представляющее битрейт.
bitrateModeНеобязательно-
Перечисление, определяющее режим битрейта, который должен использовать кодер. Возможные значения:
"constant"-
Принуждает аудиокодер поддерживать тот же битрейт, независимо от аудиосодержания. Это может быть полезно, когда предпочтительно предсказуемое потребление пропускной способности.
"variable"(по умолчанию)-
Позволяет аудиокодеру увеличивать или уменьшать битрейт в соответствии с содержанием кодируемого аудио, чтобы сохранить пропускную способность/размер бинарного файла, сохраняя при этом целевое качество. Например, кодер может уменьшить битрейт при кодировании тишины и вернуться к полному битрейту при кодировании речи.
Конкретные реализации кодировщиков кодеков могут использовать немного другую терминологию (например, CBR против VBR для Opus), но они должны соответствовать общему понятию «постоянный» против «переменного» битрейта.
opusНеобязательно-
Указывает параметры конфигурации кодека, специфичные для кодека Opus. Его значение представляет собой
OpusEncoderConfigобъект, возможные свойства которого следующие:applicationНеобязательно-
Перечисление, определяющее предполагаемый тип приложения кодера. Возможные значения:
audio(по умолчанию)-
Обрабатывает сигнал точно в соответствии с исходным входом.
lowdelay-
При обработке сигнала настраивает минимально возможную задержку кодирования, отключив определенные режимы работы.
voip-
Обрабатывает сигнал для улучшения разборчивости речи.
complexityНеобязательно-
Число, определяющее вычислительную сложность кодера, исходя из аспектов, описанных в разделе RFC6716, 2.1.5. — Сложность. Допустимый диапазон от 0 до 10, где 10 соответствует наивысшей сложности. Если значение не указано, значение по умолчанию зависит от платформы, при этом в спецификации рекомендуется 5 для мобильных платформ и 9 для всех других платформ.
formatНеобязательно-
Перечисление, определяющее формат, в котором кодер должен выводить
EncodedAudioChunks. Возможные значения:opus(по умолчанию)-
Выводит
EncodedAudioChunkв формате Opus. В этом случае для декодирования закодированного аудиопотока не требуется метаданных. ogg-
Выводит
EncodedAudioChunkв формате Ogg. В этом случае для декодирования закодированного аудиопотока не требуются метаданные. В этом случае метаданные закодированного аудиопотока предоставляются в конфигурации декодера — через свойствоdescriptionобъекта config, переданного вAudioDecoder.configure().
frameDurationНеобязательно-
Число, определяющее длительность кадра в микросекундах, выводимых кодером
EncodedAudioChunk. Если не указано, значениеframeDurationпо умолчанию20000. packetlosspercНеобязательно-
Число, определяющее ожидаемый процент потерь пакетов. Допустимый диапазон от 0 до 100. Если не указано,
packetlosspercпо умолчанию0. signalНеобязательно-
Перечисление, определяющее значение по умолчанию для типа кодируемого аудиосигнала. Возможные значения:
auto(по умолчанию)-
Тип аудиосигнала не указан.
music-
Аудиосигнал — музыка.
voice-
Аудиосигнал — голос или речь.
usedtxНеобязательно-
Булево значение, указывающее, использует ли кодер прерывистую передачу (DTX), которая уменьшает битрейт во время тишины или фонового шума. Когда DTX включен, каждый кадр кодируется каждые 400 миллисекунд. Если не указано,
usedtxпо умолчаниюfalse. useinbandfecНеобязательно-
Булево значение, указывающее, предоставляет ли кодер Opus внутриполосную коррекцию ошибок (FEC). Это приводит к тому, что пакеты, которые, как определяется, содержат перцептивно важную информацию речи (такую как начальные или переходные), перекодируются с меньшим битрейтом и добавляются в последующий пакет. Если не указано,
useinbandfecпо умолчаниюfalse.
Возвращаемое значение
Ничего (undefined).
Исключения
TypeError-
Выбрасывается, если предоставленный
configнедействителен. -
InvalidStateErrorDOMException -
Выбрасывается, если
stateимеет значение"closed". -
NotSupportedErrorDOMException -
Выбрасывается, если предоставленный
configдействителен, но пользовательский агент не может предоставить кодек, который может декодировать этот профиль.
Примеры
Пример базовой конфигурации
В следующем примере создается новый AudioEncoder и настраивается с некоторыми доступными параметрами.
const init = {
output: handleOutput,
error: (e) => {
console.log(e.message);
},
};
let config = {
codec: "mp3",
sampleRate: 44100,
numberOfChannels: 2,
bitrate: 128_000, // 128 kbps
bitrateMode: "constant",
};
let encoder = new AudioEncoder(init);
encoder.configure(config);
Пример конфигурации, специфичной для Opus
В следующем примере создается новый AudioEncoder и настраивается с параметрами, специфичными для Opus.
const init = {
output: handleOutput,
error: (e) => {
console.log(e.message);
},
};
let opusConfig = {
application: "voip",
complexity: 9,
signal: "voice",
usedtx: true,
};
let config = {
codec: "opus",
sampleRate: 44100,
numberOfChannels: 2,
bitrate: 128_000,
opus: opusConfig,
};
let encoder = new AudioEncoder(init);
encoder.configure(config);
Спецификации
| Спецификация |
|---|
| WebCodecs # dom-audioencoder-configure |
Совместимость с браузерами
| Стационарные компьютеры | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
configure |
94 | 94 | 130 | 80 | Нет | 94 | Нет | 66 | Нет | 17.0 | 94 |
bitrateMode |
119 | 119 | 130 | 105 | Нет | 119 | Нет | 79 | Нет | 25.0 | 119 |
opus |
110 | 110 | 130 | 96 | Нет | 110 | Нет | 74 | Нет | 21.0 | 110 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioEncoder/configure