RTCRtpSender: метод getParameters()
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Метод getParameters() интерфейса RTCRtpSender возвращает объект, описывающий текущую конфигурацию, определяющую, как данные отсылаемого track будут закодированы и переданы удалённому RTCRtpReceiver.
Синтаксис
getParameters()
Параметры
Нет.
Возвращаемое значение
Объект, указывающий текущую конфигурацию отправителя.
encodings-
Массив объектов, каждый из которых определяет параметры и настройки для отдельного кодека, который может быть использован для кодирования медиа потока. Свойства объектов включают:
active-
true(по умолчанию), если кодирование отправляется,falseесли кодирование не отправляется или используется. dtxУстаревший Нестандартный-
Используется только для
RTCRtpSender, у которогоkindравенaudio, это свойство указывает, используется ли прерывистая передача (функция, при которой телефон выключается или микрофон автоматически отключается при отсутствии активности голоса). Значение принимается какenabledилиdisabled. maxBitrate-
Положительное целое число, указывающее максимальное количество битов в секунду, которое пользовательский агент разрешено предоставить кодированным с помощью этого кодирования потокам. Другие параметры могут дополнительно ограничивать битрейт, такие как значение
maxFramerate, или пропускная способность, доступная для транспорта или физической сети.Значение вычисляется с использованием стандартной пропускной способности Транспортно-независимого приложения (TIAS), как определено в RFC 3890, раздел 6.2.2; это максимальная пропускная способность, необходимая без учёта накладных расходов протоколов от IP, TCP или UDP и т. д.
Обратите внимание, что битрейт может быть достигнут различными способами, в зависимости от медиа и кодирования. Например, для видео низкий битрейт может быть достигнут путём пропуска кадров (битрейт нулевой может позволить отправить только один кадр), а для аудио поток может быть остановлен, если битрейт слишком низок для его отправки.
maxFramerate-
Значение, указывающее максимальное количество кадров в секунду для этого кодирования.
priority-
Строка, указывающая приоритет
RTCRtpSender, что может определять, как пользовательский агент распределяет пропускную способность между отправителями. Разрешенные значенияvery-low,low(по умолчанию),medium,high. rid-
Строка, которая, если задана, указывает идентификатор потока RTP (RID), который должен быть отправлен с помощью расширения заголовка RID. Этот параметр нельзя изменить с помощью
setParameters(). Его значение может быть установлено только при первом создании трансивера. scaleResolutionDownBy-
Используется только для отправителей, у которых
kindравноvideo, это значение с плавающей запятой, указывающее множитель, на который необходимо уменьшить видео во время кодирования. Значение по умолчанию 1.0 означает, что видео будет закодировано в исходном размере. Значение 2.0 уменьшает размеры видеокадров в два раза по каждой оси, что приводит к видео в 4 раза меньшего размера. Значение не должно быть меньше 1.0 (попытка увеличения размера видео приведёт кRangeError).
transactionId-
Строка, содержащая уникальный идентификатор. Это значение используется для обеспечения того, что
setParameters()можно вызвать только для изменения параметров, возвращённых конкретным предыдущим вызовом кgetParameters(). Этот параметр нельзя изменить вызывающим объектом. codecs-
Массив объектов, описывающих медиа кодеки, которые отправитель установил как включённые и готов использовать. Этот параметр нельзя изменить после первоначальной установки.
Каждый объект кодека в массиве может иметь следующие свойства:
channelsНеобязательно-
Положительное целое число, указывающее количество каналов, поддерживаемых кодеком. Например, для аудиокодеков значение 1 указывает монофонический звук, а 2 — стерео.
clockRate-
Положительное целое число, указывающее тактовую частоту кодека в Герцах (Гц). Тактовая частота — это частота, с которой увеличивается временная метка RTP кодека. Большинство кодеков имеют определённые значения или диапазоны значений, которые они допускают. IANA поддерживает список кодеков и их параметров, включая их тактовые частоты.
mimeType-
Строка, указывающая MIME медиа тип и подтип кодека, заданная строкой вида
"type/subtype". MIME-типы, используемые RTP, отличаются от используемых в других местах. IANA поддерживает реестр допустимых MIME-типов. Также см. Кодеки, используемые WebRTC для получения подробностей о потенциальных кодеках, которые могут быть упомянуты здесь. payloadType-
Используемый тип полезной нагрузки RTP для идентификации этого кодека.
sdpFmtpLineНеобязательно-
Строка, содержащая параметры формата, предоставленные локальным описанием.
headerExtensions-
Массив нуля или более расширений заголовков RTP, каждый из которых идентифицирует расширение, поддерживаемое отправителем или получателем. Расширения заголовков описаны в RFC 3550, раздел 5.3.1. Этот параметр нельзя изменить после первоначальной установки.
rtcp-
Объект
RTCRtcpParameters, предоставляющий параметры конфигурации, используемые для RTCP отправителем или получателем. Этот параметр нельзя изменить после первоначальной установки. degradationPreferenceУстаревший Необязательно-
Указывает предпочтительный способ, которым уровень WebRTC должен обрабатывать оптимизацию пропускной способности по сравнению с качеством в ситуациях с ограниченной пропускной способностью. Возможные значения:
maintain-framerate,maintain-resolution, илиbalanced. Значение по умолчаниюbalanced.
Примеры
В этом примере берётся текущий идентификатор транзакции отправителя; идентификатор транзакции уникально идентифицирует текущий набор параметров, для обеспечения того, что вызовы к setParameters() всегда обрабатываются в правильном порядке, предотвращая непреднамеренное перезапись параметров более старыми параметрами.
function getSenderTransactionID(sender) {
let parameters = sender.getParameters();
return parameters.transactionId;
}
Аналогично, этот код получает каноническое имя (CNAME), используемое для RTCP на RTCRtpSender.
function getRtpCNAME(sender) {
let parameters = sender.getParameters();
return parameters.rtcp.cname;
}
Спецификации
Совместимость браузеров
| Десктоп | Мобиль | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
getParameters |
68 | ≤79 | 46 | 55 | 11 | 68 | 46 | 48 | 11 | 10.0 | 68 |
return_object_property_codecs |
69 | ≤79 | 12846Свойство определено, но не реализовано/используется. |
56 | 11 | 69 | 12846Свойство определено, но не реализовано/используется. |
48 | 11 | 10.0 | 69 |
return_object_property_degradationPreference |
83 | 83 | Нет | 69 | 12.1 | 83 | Нет | 59 | 12.2 | 13.0 | 83 |
return_object_property_encodings |
69 | ≤79 | 46 | 56 | 12.1 | 69 | 46 | 48 | 12.2 | 10.0 | 69 |
return_object_property_headerExtensions |
69 | ≤79 | 46Свойство определено, но не реализовано/используется. |
56 | 11 | 69 | 46Свойство определено, но не реализовано/используется. |
48 | 11 | 10.0 | 69 |
return_object_property_rtcp |
69 | ≤79 | 46Свойство определено, но не реализовано/используется. |
56 | 15 | 69 | 46Свойство определено, но не реализовано/используется. |
48 | 15 | 10.0 | 69 |
return_object_property_transactionId |
69 | ≤79 | Нет | 56 | 12.1 | 69 | Нет | 48 | 12.2 | 10.0 | 69 |
См. также
© 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/RTCRtpSender/getParameters