Итак, я работаю над приложением, которое использует WebRTC для предоставления видео/аудиосвязи между сверстниками.WebRTC: Как рассчитать пропускную способность пользователя/сетевую задержку RTC Peer Connection
Я бы хотел сообщить пользователям о своем сетевом соединении/пропускной способности/латентности и т. Д., Чтобы предложить возможные решения, если пропускная способность и т.д. ужасно.
WebRTC имеет API getStats()
, который предоставляет несколько ключевых фрагментов информации. Когда Peer Connection активен, getStats()
дает мне следующий объект ...
{
"googLibjingleSession_5531731670954573009":{
"id":"googLibjingleSession_5531731670954573009",
"timestamp":"2016-02-02T11:14:43.467Z",
"type":"googLibjingleSession",
"googInitiator":"true"
},
"googTrack_SCEHhCOl":{
"id":"googTrack_SCEHhCOl",
"timestamp":"2016-02-02T11:14:43.467Z",
"type":"googTrack",
"googTrackId":"SCEHhCOl"
},
"ssrc_360347109_recv":{
"id":"ssrc_360347109_recv",
"timestamp":"2016-02-02T11:14:43.467Z",
"type":"ssrc",
"googDecodingCTN":"757",
"packetsLost":"0",
"googSecondaryDecodedRate":"0",
"googDecodingPLC":"3",
"packetsReceived":"373",
"googExpandRate":"0.00579834",
"googJitterReceived":"0",
"googDecodingCNG":"0",
"ssrc":"360347109",
"googPreferredJitterBufferMs":"20",
"googSpeechExpandRate":"0.00140381",
"googTrackId":"SCEHhCOl",
"transportId":"Channel-audio-1",
"googDecodingPLCCNG":"10",
"googCodecName":"opus",
"googDecodingNormal":"744",
"audioOutputLevel":"6271",
"googAccelerateRate":"0",
"bytesReceived":"21796",
"googCurrentDelayMs":"64",
"googDecodingCTSG":"0",
"googCaptureStartNtpTimeMs":"-1",
"googPreemptiveExpandRate":"0.00292969",
"googJitterBufferMs":"42"
}
}
Именно с этой информацией, которую я надеюсь вычислить пользователь ...
а) Пропускная способность (В идеале аудио и видео отдельно но прямо пропускной способности будет достаточно)
б) Сеть Задержка
заранее спасибо ...
NB: Я уже видел this wrapper, но я хотел бы иметь возможность сделать это сам (с немного вашей помощью, конечно: D), поскольку в примере кода для этой оболочки используется свойство «bytesSent», которое я похоже, не вернулись с getStats()
?
Я также осведомлен о WebRTC test имеющихся на GitHub, но опять же, я должен быть в состоянии достичь того, чего я хочу, не полагаясь на третьей стороне «плагинов» и т.д.
Хром не соответствует спецификации. См. Http://stackoverflow.com/questions/29800010/can-someone-comprehensively-explain-the-webrtc-stats-api/29840886#29840886. – jib