RTCCodecStats
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Словарь RTCCodecStats API WebRTC предоставляет статистику о кодеке, используемом RTP-потоками, которые отправляются или принимаются связанным объектом RTCPeerConnection.
Эту статистику можно получить, итерируя объект RTCStatsReport, возвращаемый методом RTCPeerConnection.getStats(), пока не будет найден элемент с типом type codec.
Статистику кодеков можно сопоставить со статистикой входящих или исходящих потоков (локальных и удалённых), сопоставив их свойство codecId с id кодека. Например, если RTCInboundRtpStreamStats.codecId совпадает с RTCCodecStats.id в том же отчёте, то мы знаем, что кодек используется для входящего потока этого соединения. Если ни один поток codecId не ссылается на статистику кодека, то этот объект статистики кодека удаляется — если кодек снова используется, объект статистики будет воссоздан с тем же id.
Объекты кодеков могут быть ссылаться несколькими RTP-потоками в секциях медиа с использованием одного и того же транспорта. Фактически, предполагается, что пользовательские агенты объединяют информацию в один элемент "codec" на тип полезной нагрузки на транспорт (если sdpFmtpLine отличается при отправке или приёме, то для кодирования и декодирования потребуются разные кодеки). Обратите внимание, что другие транспорты будут использовать свои собственные уникальные объекты RTCCodecStats.
Свойства экземпляра
-
channelsНеобязательно -
Положительное число, указывающее количество каналов, поддерживаемых кодеком.
-
clockRateНеобязательно -
Положительное число, содержащее частоту дискретизации медиа.
mimeType-
Строка, содержащая тип MIME медиа, например, video/VP8.
payloadType-
Положительное целое число в диапазоне от 0 до 127, указывающее тип полезной нагрузки, используемой в RTP-кодировании или декодировании.
-
sdpFmtpLineНеобязательно -
Строка, содержащая параметры, специфичные для формата, строки
"a=fmtp"в SDP кодека (если присутствует). transportId-
Строка, содержащая уникальный идентификатор транспорта, на котором используется этот кодек. Это может быть использовано для сопоставления с соответствующим объектом
RTCTransportStats.
Общие свойства экземпляра
Следующие свойства общие для всех объектов статистики WebRTC (подробнее см. RTCStatsReport):
id-
Строка, уникально идентифицирующая объект, который отслеживается для получения этого набора статистики.
timestamp-
Объект
DOMHighResTimeStamp, указывающий время, в которое был получен образец для этого объекта статистики. type-
Строка со значением
"codec", указывающая тип статистики, содержащейся в объекте.
Примеры
Учитывая переменную myPeerConnection, которая является экземпляром RTCPeerConnection, код ниже использует await для ожидания отчёта о статистике, а затем итерирует его с помощью RTCStatsReport.forEach(). Затем он фильтрует словари, выбирая только те отчёты, тип которых codec, и выводит результат.
const stats = await myPeerConnection.getStats();
stats.forEach((report) => {
if (report.type === "codec") {
// Log the codec information
console.log(report);
}
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
RTCCodecStats |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
channels |
83 | 83 | 98 | 69 | 14.1 | 83 | 98 | 59 | 14.5 | 13.0 | 83 |
clockRate |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
id |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
mimeType |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
payloadType |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
sdpFmtpLine |
83 | 83 | 98 | 69 | 14 | 83 | 98 | 59 | 14.5 | 13.0 | 83 |
timestamp |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
transportId |
89 | 89 | 98 | 75 | Нет | 89 | 98 | 63 | Нет | 15.0 | 89 |
type |
80 | 80 | 98 | 67 | 13.1 | 80 | 98 | 57 | 13.4 | 13.0 | 80 |
См. также
RTCStatsReport-
codecsпараметр, передаваемый вRTCRtpTransceiver.setCodecPreferences()иRTCRtpSender.setParameters()(). -
codecsсвойство в объекте, возвращаемомRTCRtpSender.getParameters()иRTCRtpReceiver.getParameters().
© 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/RTCCodecStats