RTCRemoteInboundRtpStreamStats
Базовая Широко поддерживается *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
Словарь RTCRemoteInboundRtpStreamStats API WebRTC используется для отчётности о статистике удалённого узла относительно конкретного входящего RTP потока. Эти значения соответствуют исходящему RTP потоку на локальном конце RTCPeerConnection.
Статистику можно получить, проитерировав RTCStatsReport, возвращаемый методом RTCPeerConnection.getStats() или RTCRtpReceiver.getStats(), пока не будет найден отчёт с type remote-inbound-rtp.
Свойства экземпляра
Статистика, специфичная для входящего удалённого потока
-
fractionLostНеобязательно -
Число, указывающее на долю потерянных пакетов для данного SSRC с момента последнего отчёта отправителя или получателя.
-
localIdНеобязательно -
Строка, используемая для поиска локального объекта
RTCOutboundRtpStreamStats, который разделяет тот же идентификатор источника синхронизации (SSRC). -
roundTripTimeНеобязательно -
Число, обозначающее оценённое время прохождения (RTT) для данного SSRC в секундах. Это свойство не будет существовать до получения действительных данных RTT.
-
roundTripTimeMeasurementsНеобязательно -
Положительное целое число, обозначающее общее количество полученных корректных измерений времени прохождения для данного источника синхронизации (SSRC).
-
totalRoundTripTimeНеобязательно -
Число, обозначающее сумму всех измерений времени прохождения с начала сессии в секундах. Среднее время прохождения можно вычислить, разделив
totalRoundTripTimeнаroundTripTimeMeasurements.
Статистика полученного RTP потока
-
jitterНеобязательно -
Число, обозначающее задержку пакетов для данного источника синхронизации в секундах.
-
packetsLostНеобязательно -
Целое число, обозначающее общее количество потерянных RTP пакетов для данного SSRC, измеренное на удалённом узле. Это значение может быть отрицательным, если были получены дублирующиеся пакеты.
-
packetsReceivedНеобязательно Экспериментально -
Положительное целое число, указывающее общее количество полученных RTP пакетов для данного SSRC, включая повторные передачи.
Общая статистика RTP потока
-
codecIdНеобязательно -
Строка, уникально идентифицирующая объект, который был проверен для получения объекта
RTCCodecStats, связанного с данным RTP потоком. kind-
Строка, указывающая, является ли
MediaStreamTrack, связанный с потоком, аудио- или видео-треком. ssrc-
Положительное целое число, идентифицирующее SSRC RTP пакетов в данном потоке.
-
transportIdНеобязательно -
Строка, уникально идентифицирующая объект, который был проверен для получения объекта
RTCTransportStats, связанного с данным RTP потоком.
Общие свойства экземпляра
Следующие свойства общие для всех объектов статистики WebRTC.
id-
Строка, уникально идентифицирующая объект, за которым ведётся мониторинг для получения этого набора статистики.
timestamp-
Объект
DOMHighResTimeStamp, указывающий время, в которое был взят образец для этого объекта статистики. type-
Строка со значением
"inbound-rtp", указывающая тип статистики, содержащейся в объекте.
Примеры
Учитывая переменную peerConnection — экземпляр RTCPeerConnection, код ниже использует await для ожидания отчёта статистики, а затем итерирует его с помощью RTCStatsReport.forEach(). Затем он фильтрует словари, выбирая только те отчёты, у которых тип remote-inbound-rtp, и регистрирует результат.
const stats = await myPeerConnection.getStats();
stats.forEach((report) => {
if (report.type === "remote-inbound-rtp") {
console.log("Remote Inbound RTP Stream Stats:");
console.log(`id: ${report.id}`);
console.log(`timestamp: ${report.timestamp}`);
console.log(`transportId: ${report.transportId}`);
console.log(`ssrc: ${report.ssrc}`);
console.log(`kind: ${report.kind}`);
console.log(`codecId: ${report.codecId}`);
console.log(`packetsReceived: ${report.packetsReceived}`);
console.log(`packetsLost: ${report.packetsLost}`);
console.log(`jitter: ${report.jitter}`);
console.log(`totalRoundTripTime: ${report.totalRoundTripTime}`);
console.log(
`roundTripTimeMeasurements: ${report.roundTripTimeMeasurements}`,
);
console.log(`roundTripTime: ${report.roundTripTime}`);
console.log(`localId: ${report.localId}`);
console.log(`fractionLost: ${report.fractionLost}`);
}
});
Спецификации
Совместимость браузеров
| Настольные | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
RTCRemoteInboundRtpStreamStats |
80 | 80 | 27 | 67 | 11 | 80 | 27 | 57 | 11 | 13.0 | 80 |
codecId |
80 | 80 | 98 | 67 | 11 | 80 | 98 | 57 | 11 | 13.0 | 80 |
fractionLost |
91 | 91 | 106 | 77 | No | 91 | 106 | 64 | No | 16.0 | 91 |
id |
80 | 80 | 72 | 67 | 14.1 | 80 | 79 | 57 | 14.5 | 13.0 | 80 |
jitter |
80 | 80 | 72 | 67 | No | 80 | 79 | 57 | No | 13.0 | 80 |
kind |
80 | 80 | 63 | 67 | 14 | 80 | 63 | 57 | 14 | 13.0 | 80 |
localId |
80 | 80 | 72 | 67 | 14.1 | 80 | 79 | 57 | 14.5 | 13.0 | 80 |
packetsLost |
80 | 80 | 72 | 67 | No | 80 | 79 | 57 | No | 13.0 | 80 |
packetsReceived |
No | No | 72 | No | No | No | 79 | No | No | No | No |
roundTripTime |
80 | 80 | 96 | 67 | 14.1 | 80 | 96 | 57 | 14.5 | 13.0 | 80 |
roundTripTimeMeasurements |
91 | 91 | 106 | 77 | No | 91 | 106 | 64 | No | 16.0 | 91 |
ssrc |
80 | 80 | 27 | 67 | 11 | 80 | 27 | 57 | 11 | 13.0 | 80 |
timestamp |
80 | 80 | 72 | 67 | 14.1 | 80 | 79 | 57 | 14.5 | 13.0 | 80 |
totalRoundTripTime |
91 | 91 | 106 | 77 | No | 91 | 106 | 64 | No | 16.0 | 91 |
transportId |
80 | 80 | No | 67 | 11 | 80 | No | 57 | 11 | 13.0 | 80 |
type |
80 | 80 | 72 | 67 | 14.1 | 80 | 79 | 57 | 14.5 | 13.0 | 80 |
См. также
© 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/RTCRemoteInboundRtpStreamStats