Spec-Zone.ru › Web APIs

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 недействителен.

InvalidStateError DOMException

Выбрасывается, если state имеет значение "closed".

NotSupportedError DOMException

Выбрасывается, если предоставленный 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API