Skip to content

Instantly share code, notes, and snippets.

@zaxy78
Created March 20, 2018 14:56
Show Gist options
  • Save zaxy78/f4a24d6219d9e7020db28087d3c585f7 to your computer and use it in GitHub Desktop.
Save zaxy78/f4a24d6219d9e7020db28087d3c585f7 to your computer and use it in GitHub Desktop.
WebRTC PeerConnection getStats() objects for Safari 11
// 1 Remote Peer answer with a Video Stream (no audio)
{
"collection_of_stats": [
{
"map": [
{
"id": "RTCCertificate_08:B0:75:55:2------------------------------------------------------------",
"timestamp": 1521550605561,
"type": "certificate",
"base64Certificate": "MIIBFj-----------------------------------------------------------",
"fingerprint": "08:B0:-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCCertificate_C9:49:7E-----------------------------------------------------------------",
"timestamp": 1521550605561,
"type": "certificate",
"base64Certificate": "MIIBF-----------------------------------------------------------",
"fingerprint": "C9:4-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCDataChannel_1",
"timestamp": 1521550605561,
"type": "data-channel",
"bytesReceived": 0,
"bytesSent": 0,
"datachannelid": 1,
"label": "inputDataChannel",
"messagesReceived": 0,
"messagesSent": 0,
"protocol": "",
"state": "open"
},
{
"id": "RTCIceCandidatePair_N0qRFjDy_DbTYlhkM",
"timestamp": 1521550605561,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 300000,
"bytesReceived": 33284,
"bytesSent": 2824,
"currentRoundTripTime": 0.187,
"localCandidateId": "RTCIceCandidate_N0qRFjDy",
"nominated": false,
"priority": 144149268725120500,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 4,
"requestsSent": 5,
"responsesReceived": 2,
"responsesSent": 4,
"state": "inprogress",
"totalRoundTripTime": 0.375,
"transportId": "RTCTransport_video_1",
"writable": true
},
{
"id": "RTCIceCandidatePair_QO9yc48E_DbTYlhkM",
"timestamp": 1521550605561,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 0,
"bytesReceived": 0,
"bytesSent": 0,
"currentRoundTripTime": 0,
"localCandidateId": "RTCIceCandidate_QO9yc48E",
"nominated": false,
"priority": 179896594911477250,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 0,
"requestsSent": 7,
"responsesReceived": 0,
"responsesSent": 0,
"state": "inprogress",
"totalRoundTripTime": 0,
"transportId": "RTCTransport_video_1",
"writable": false
},
{
"id": "RTCInboundRTPVideoStream_4128950770",
"timestamp": 1521550605561,
"type": "inbound-rtp",
"firCount": 0,
"isRemote": false,
"nackCount": 0,
"pliCount": 0,
"qpSum": 0,
"sliCount": 0,
"ssrc": 0,
"burstDiscardCount": 0,
"burstDiscardRate": 0,
"burstLossCount": 0,
"burstLossRate": 0,
"burstPacketsDiscarded": 0,
"burstPacketsLost": 0,
"bytesReceived": 23293,
"fractionLost": 0,
"framesDecoded": 14,
"gapDiscardRate": 0,
"gapLossRate": 0,
"jitter": 0,
"packetsDiscarded": 0,
"packetsLost": 0,
"packetsReceived": 30,
"packetsRepaired": 0
},
{
"id": "RTCMediaStreamTrack_remote_video_video_label_4128950770",
"timestamp": 1521550605561,
"type": "track",
"audioLevel": 0,
"detached": false,
"echoReturnLoss": 0,
"echoReturnLossEnhancement": 0,
"ended": false,
"frameHeight": 720,
"frameWidth": 1280,
"framesCorrupted": 0,
"framesDecoded": 14,
"framesDropped": 1,
"framesPerSecond": 0,
"framesReceived": 15,
"framesSent": 0,
"fullFramesLost": 0,
"partialFramesLost": 0,
"remoteSource": true,
"trackIdentifier": "video_label"
}
]
},
{
"map": [
{
"id": "RTCCertificate_-----------------------------------------------------------",
"timestamp": 1521550606552,
"type": "certificate",
"base64Certificate": "M-----------------------------------------------------------",
"fingerprint": "08:B0:75:-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCCertificate_-----------------------------------------------------------",
"timestamp": 1521550606552,
"type": "certificate",
"base64Certificate": "M-----------------------------------------------------------",
"fingerprint": "C9:-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCDataChannel_1",
"timestamp": 1521550606552,
"type": "data-channel",
"bytesReceived": 0,
"bytesSent": 0,
"datachannelid": 1,
"label": "inputDataChannel",
"messagesReceived": 0,
"messagesSent": 0,
"protocol": "",
"state": "open"
},
{
"id": "RTCIceCandidatePair_N0qRFjDy_DbTYlhkM",
"timestamp": 1521550606552,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 300000,
"bytesReceived": 42834,
"bytesSent": 3616,
"currentRoundTripTime": 0.188,
"localCandidateId": "RTCIceCandidate_N0qRFjDy",
"nominated": false,
"priority": 144149268725120500,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 5,
"requestsSent": 5,
"responsesReceived": 3,
"responsesSent": 5,
"state": "inprogress",
"totalRoundTripTime": 0.563,
"transportId": "RTCTransport_video_1",
"writable": true
},
{
"id": "RTCIceCandidatePair_QO9yc48E_DbTYlhkM",
"timestamp": 1521550606552,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 0,
"bytesReceived": 0,
"bytesSent": 0,
"currentRoundTripTime": 0,
"localCandidateId": "RTCIceCandidate_QO9yc48E",
"nominated": false,
"priority": 179896594911477250,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 0,
"requestsSent": 8,
"responsesReceived": 0,
"responsesSent": 0,
"state": "inprogress",
"totalRoundTripTime": 0,
"transportId": "RTCTransport_video_1",
"writable": false
},
{
"id": "RTCInboundRTPVideoStream_4128950770",
"timestamp": 1521550606552,
"type": "inbound-rtp",
"firCount": 0,
"isRemote": false,
"nackCount": 0,
"pliCount": 0,
"qpSum": 0,
"sliCount": 0,
"ssrc": 0,
"burstDiscardCount": 0,
"burstDiscardRate": 0,
"burstLossCount": 0,
"burstLossRate": 0,
"burstPacketsDiscarded": 0,
"burstPacketsLost": 0,
"bytesReceived": 32463,
"fractionLost": 0,
"framesDecoded": 45,
"gapDiscardRate": 0,
"gapLossRate": 0,
"jitter": 0,
"packetsDiscarded": 0,
"packetsLost": 0,
"packetsReceived": 61,
"packetsRepaired": 0
},
{
"id": "RTCMediaStreamTrack_remote_video_video_label_4128950770",
"timestamp": 1521550606552,
"type": "track",
"audioLevel": 0,
"detached": false,
"echoReturnLoss": 0,
"echoReturnLossEnhancement": 0,
"ended": false,
"frameHeight": 720,
"frameWidth": 1280,
"framesCorrupted": 0,
"framesDecoded": 45,
"framesDropped": 1,
"framesPerSecond": 0,
"framesReceived": 46,
"framesSent": 0,
"fullFramesLost": 0,
"partialFramesLost": 0,
"remoteSource": true,
"trackIdentifier": "video_label"
}
]
},
{
"map": [
{
"id": "RTCCertificate_-----------------------------------------------------------",
"timestamp": 1521550607543,
"type": "certificate",
"base64Certificate": "M-----------------------------------------------------------",
"fingerprint": "08-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCCertificate_",
"timestamp": 1521550607543,
"type": "certificate",
"base64Certificate": "M-----------------------------------------------------------",
"fingerprint": "C9-----------------------------------------------------------",
"fingerprintAlgorithm": "sha-256"
},
{
"id": "RTCDataChannel_1",
"timestamp": 1521550607543,
"type": "data-channel",
"bytesReceived": 0,
"bytesSent": 0,
"datachannelid": 1,
"label": "inputDataChannel",
"messagesReceived": 0,
"messagesSent": 0,
"protocol": "",
"state": "open"
},
{
"id": "RTCIceCandidatePair_N0qRFjDy_DbTYlhkM",
"timestamp": 1521550607543,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 300000,
"bytesReceived": 46780,
"bytesSent": 4446,
"currentRoundTripTime": 0.185,
"localCandidateId": "RTCIceCandidate_N0qRFjDy",
"nominated": false,
"priority": 144149268725120500,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 5,
"requestsSent": 5,
"responsesReceived": 4,
"responsesSent": 5,
"state": "inprogress",
"totalRoundTripTime": 0.748,
"transportId": "RTCTransport_video_1",
"writable": true
},
{
"id": "RTCIceCandidatePair_QO9yc48E_DbTYlhkM",
"timestamp": 1521550607543,
"type": "candidate-pair",
"availableIncomingBitrate": 0,
"availableOutgoingBitrate": 0,
"bytesReceived": 0,
"bytesSent": 0,
"currentRoundTripTime": 0,
"localCandidateId": "RTCIceCandidate_QO9yc48E",
"nominated": false,
"priority": 179896594911477250,
"readable": false,
"remoteCandidateId": "RTCIceCandidate_DbTYlhkM",
"requestsReceived": 0,
"requestsSent": 9,
"responsesReceived": 0,
"responsesSent": 0,
"state": "inprogress",
"totalRoundTripTime": 0,
"transportId": "RTCTransport_video_1",
"writable": false
},
{
"id": "RTCInboundRTPVideoStream_4128950770",
"timestamp": 1521550607543,
"type": "inbound-rtp",
"firCount": 0,
"isRemote": false,
"nackCount": 0,
"pliCount": 0,
"qpSum": 0,
"sliCount": 0,
"ssrc": 0,
"burstDiscardCount": 0,
"burstDiscardRate": 0,
"burstLossCount": 0,
"burstLossRate": 0,
"burstPacketsDiscarded": 0,
"burstPacketsLost": 0,
"bytesReceived": 36029,
"fractionLost": 0,
"framesDecoded": 76,
"gapDiscardRate": 0,
"gapLossRate": 0,
"jitter": 0,
"packetsDiscarded": 0,
"packetsLost": 0,
"packetsReceived": 92,
"packetsRepaired": 0
},
{
"id": "RTCMediaStreamTrack_remote_video_video_label_4128950770",
"timestamp": 1521550607543,
"type": "track",
"audioLevel": 0,
"detached": false,
"echoReturnLoss": 0,
"echoReturnLossEnhancement": 0,
"ended": false,
"frameHeight": 720,
"frameWidth": 1280,
"framesCorrupted": 0,
"framesDecoded": 76,
"framesDropped": 1,
"framesPerSecond": 0,
"framesReceived": 77,
"framesSent": 0,
"fullFramesLost": 0,
"partialFramesLost": 0,
"remoteSource": true,
"trackIdentifier": "video_label"
}
]
}
],
"timer": 0,
"running": true,
"statsCount": 155
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment