Разберитесь с дампом webrtc

Я скачал дамп с сайта chrome://webrtc-internals.

теперь я хочу разобраться в этих данных и построить график, чтобы показать потерю пакетов и другие вещи, которые включены в дамп.

Я вижу графики только в chrome://webrtc-internals , но я хочу делать это самостоятельно и в процессе также лучше понимать журналы.

Что означает каждое поле

До сих пор я могу только понять, что это дамп json.

пожалуйста, помогите мне?


person Rohit    schedule 11.05.2014    source источник


Ответы (2)


Массивы значений, которые вы видите под каждым элементом журнала, представляют собой значения, собранные для этого элемента за эту секунду. Итак, values[0] — это информация журнала, собранная для этой категории за первую секунду. Итак, сопоставьте ssrc с тем, который указан в SDP, чтобы получить информацию журнала каждого ssrc за каждую секунду.

Объясняется далее:

Это показывает, что для ssrc 1814250626 нет потерянных пакетов, и показывает, что потери пакетов были нулевыми каждую секунду в течение периода журнала.

"ssrc_1814250626-packetsLost": {
     "startTime": "2014-05-11T21:26:06.360Z",
     "endTime": "2014-05-11T21:26:19.362Z",
     "values": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0]"
    },

Мы можем сравнить значение ssrc с SDP, которыми обмениваются, чтобы узнать, кого и какой тип мультимедиа представляет каждый источник.

"time": "5/11/2014 4:26:05 PM",
     "type": "createOfferOnSuccess",
     "value": "type: offer, sdp: v=0\r\no=- 140296487447716144 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS yGvpzuQVRTY2AmSWclrFlBZctrOijzNQkLnN\r\nm=audio 1 RTP/SAVPF 111 103 104 0 8 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:Xv9/Bx9tAWEOh1pE\r\na=ice-pwd:e7rRuOyKLk1bKUcZ1S+tDw7r\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 B4:1F:B0:32:31:60:0F:E1:EC:6D:0E:65:1D:F8:F6:F1:0C:FE:D9:46:41:37:8A:7A:21:AC:39:7A:12:0E:12:99\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtcp-mux\r\na=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:gl34DLHmuMoKoaUWhYJpDJUFkZagn1cedT1x6nQh\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\na=ssrc:1814250626 cname:aIdRfz6vBYDbJiEF\r\na=ssrc:1814250626 msid:yGvpzuQVRTY2AmSWclrFlBZctrOijzNQkLnN fad6fe24-b006-4a57-80d6-c603416f32b5\r\na=ssrc:1814250626 mslabel:yGvpzuQVRTY2AmSWclrFlBZctrOijzNQkLnN\r\na=ssrc:1814250626 label:fad6fe24-b006-4a57-80d6-c603416f32b5\r\nm=video 1 RTP/SAVPF 100 116 117\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:Xv9/Bx9tAWEOh1pE\r\na=ice-pwd:e7rRuOyKLk1bKUcZ1S+tDw7r\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 B4:1F:B0:32:31:60:0F:E1:EC:6D:0E:65:1D:F8:F6:F1:0C:FE:D9:46:41:37:8A:7A:21:AC:39:7A:12:0E:12:99\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:gl34DLHmuMoKoaUWhYJpDJUFkZagn1cedT1x6nQh\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=ssrc:477546681 cname:aIdRfz6vBYDbJiEF\r\na=ssrc:477546681 msid:yGvpzuQVRTY2AmSWclrFlBZctrOijzNQkLnN 6d5c1c40-6921-40d2-ba53-f413afb76ad1\r\na=ssrc:477546681 mslabel:yGvpzuQVRTY2AmSWclrFlBZctrOijzNQkLnN\r\na=ssrc:477546681 label:6d5c1c40-6921-40d2-ba53-f413afb76ad1\r\n"
    }

Мы можем видеть сверху, что, поскольку это событие createOfferOnSuccess, то мы знаем, что это SDP местных сторон. После этого мы видим, что локальное аудио — ssrc:1814250626, а локальное видео — ssrc:477546681. Итак, чтобы получить статистику локального видео, просто возьмите каждый массив значений, который начинается с ssrc_477546681. Он также дает вам время начала и окончания журнала в том же объекте json.

Если их значение остается неизменным в массиве значений (многочисленные одинаковые значения):

"ssrc_477546681-googFrameHeightInput": {
     "startTime": "2014-05-11T21:26:06.360Z",
     "endTime": "2014-05-11T21:26:19.362Z",
     "values": "[480,480,480,480,480,480,480,480,480,480,480,480,480,480]"
    },

Тогда вы можете поспорить, что он не менялся каждую секунду в течение периода журнала.

person Benjamin Trent    schedule 11.05.2014
comment
но как обнаружить потерю пакетов? а также могу ли я построить график в реальном времени в том же видеочате, экспериментально? - person Rohit; 12.05.2014
comment
@Rohit, вы берете поле потери пакетов из дампа, и оно показывает вам потерю пакетов за каждую секунду. Кроме того, поскольку это дамп, это не живые данные. Для этого вам придется работать с хромированными внутренностями, а не только с дампом - person Benjamin Trent; 12.05.2014
comment
pastebin.com/xs2TNeVh, пожалуйста, помогите мне разобраться в этих данных. Прошу прощения за беспокойство, но я действительно новичок в webrtc и не могу найти учебник по дампу webrtc - person Rohit; 12.05.2014
comment
Строка 875 показывает, что пакеты для ssrc:1742396484 не были потеряны. Из строки 581 мы видим, что ssrc:1742396484 — это видео, а локальный ssrc для видео — 192.168.1.102 (вы можете видеть это по сбору льда позже в этом разделе, строка 641). - person Benjamin Trent; 12.05.2014
comment
Спасибо за вашу помощь :) еще одно сомнение, как вы сопоставляете ssrc с именем элемента. - person Rohit; 12.05.2014
comment
@Rohit, какое имя элемента? Как определить, видео ли это? Или железка выдающая видео? Сторона, которая предоставляет видео? Вы можете сопоставить идентификатор трека Google с SSRC, поскольку идентификатор трека указан в SDP. - person Benjamin Trent; 12.05.2014

Импортируйте дамп в этот инструмент, чтобы получить полезные интерактивные графики:

https://fippo.github.io/webrtc-dump-importer/a

person HaveAGuess    schedule 25.12.2020