Awesome
chrome-webrtc-packet-log-parser
Project status
At this point the project is primerly intended to be used by checking it out and modifying main.go, however you can also use it by downloading the binaries from releases.
Overview
Go command-line application to make chrome generated webrtc diagnostic packet and event recording
human readable.
For more information see here.
To regenerate proto files, call docker-compose up
in this directory.
How to execute
go run main.go <log file>
Example output:
$ go run main.go webrtc_event_log_20200514_1817_191_3.log
webrtc_event_log_20200514_1817_191_3.log opened
0: null
1: {"AudioReceiverConfig":{"remote_ssrc":1063824803,"local_ssrc":4195875351}}
2: {"VideoReceiverConfig":{"remote_ssrc":1721891724,"local_ssrc":1,"rtcp_mode":2,"remb":false,"rtx_map":[{"payload_type":96,"config":{"rtx_ssrc":574331814,"rtx_payload_type":97}},{"payload_type":98,"config":{"rtx_ssrc":574331814,"rtx_payload_type":99}},{"payload_type":100,"config":{"rtx_ssrc":574331814,"rtx_payload_type":101}},{"payload_type":102,"config":{"rtx_ssrc":574331814,"rtx_payload_type":103}},{"payload_type":104,"config":{"rtx_ssrc":574331814,"rtx_payload_type":105}},{"payload_type":106,"config":{"rtx_ssrc":574331814,"rtx_payload_type":107}},{"payload_type":108,"config":{"rtx_ssrc":574331814,"rtx_payload_type":109}}],"decoders":[{"name":"VP8","payload_type":96},{"name":"VP9","payload_type":98},{"name":"VP9","payload_type":100},{"name":"H264","payload_type":102},{"name":"H264","payload_type":104},{"name":"H264","payload_type":106},{"name":"H264","payload_type":108}]}}
3: {"AudioReceiverConfig":{"remote_ssrc":1063824803,"local_ssrc":4195875351,"header_extensions":[{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5},{"name":"urn:ietf:params:rtp-hdrext:ssrc-audio-level","id":1}]}}
4: {"AudioSenderConfig":{"ssrc":2997831384,"header_extensions":[{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5},{"name":"urn:ietf:params:rtp-hdrext:ssrc-audio-level","id":1}]}}
5: {"AudioReceiverConfig":{"remote_ssrc":1063824803,"local_ssrc":2997831384,"header_extensions":[{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5},{"name":"urn:ietf:params:rtp-hdrext:ssrc-audio-level","id":1}]}}
6: {"VideoReceiverConfig":{"remote_ssrc":1721891724,"local_ssrc":1,"rtcp_mode":2,"remb":false,"rtx_map":[{"payload_type":98,"config":{"rtx_ssrc":574331814,"rtx_payload_type":99}},{"payload_type":100,"config":{"rtx_ssrc":574331814,"rtx_payload_type":101}},{"payload_type":96,"config":{"rtx_ssrc":574331814,"rtx_payload_type":97}},{"payload_type":102,"config":{"rtx_ssrc":574331814,"rtx_payload_type":122}},{"payload_type":127,"config":{"rtx_ssrc":574331814,"rtx_payload_type":121}},{"payload_type":125,"config":{"rtx_ssrc":574331814,"rtx_payload_type":107}},{"payload_type":108,"config":{"rtx_ssrc":574331814,"rtx_payload_type":109}}],"header_extensions":[{"name":"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07","id":8},{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/color-space","id":9},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay","id":12},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type","id":11},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-timing","id":7},{"name":"urn:3gpp:video-orientation","id":13},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5},{"name":"urn:ietf:params:rtp-hdrext:toffset","id":14}],"decoders":[{"name":"VP9","payload_type":98},{"name":"VP9","payload_type":100},{"name":"VP8","payload_type":96},{"name":"H264","payload_type":102},{"name":"H264","payload_type":127},{"name":"H264","payload_type":125},{"name":"H264","payload_type":108}]}}
7: {"VideoSenderConfig":{"ssrcs":[3527308836],"header_extensions":[{"name":"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07","id":8},{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/color-space","id":9},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay","id":12},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type","id":11},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-timing","id":7},{"name":"urn:3gpp:video-orientation","id":13},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5}],"rtx_ssrcs":[657777563],"rtx_payload_type":99,"encoder":{"name":"VP9","payload_type":98}}}
8: {"VideoReceiverConfig":{"remote_ssrc":1721891724,"local_ssrc":3527308836,"rtcp_mode":2,"remb":false,"rtx_map":[{"payload_type":98,"config":{"rtx_ssrc":574331814,"rtx_payload_type":99}},{"payload_type":100,"config":{"rtx_ssrc":574331814,"rtx_payload_type":101}},{"payload_type":96,"config":{"rtx_ssrc":574331814,"rtx_payload_type":97}},{"payload_type":102,"config":{"rtx_ssrc":574331814,"rtx_payload_type":122}},{"payload_type":127,"config":{"rtx_ssrc":574331814,"rtx_payload_type":121}},{"payload_type":125,"config":{"rtx_ssrc":574331814,"rtx_payload_type":107}},{"payload_type":108,"config":{"rtx_ssrc":574331814,"rtx_payload_type":109}}],"header_extensions":[{"name":"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07","id":8},{"name":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01","id":3},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time","id":2},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/color-space","id":9},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay","id":12},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type","id":11},{"name":"http://www.webrtc.org/experiments/rtp-hdrext/video-timing","id":7},{"name":"urn:3gpp:video-orientation","id":13},{"name":"urn:ietf:params:rtp-hdrext:sdes:mid","id":4},{"name":"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id","id":6},{"name":"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","id":5},{"name":"urn:ietf:params:rtp-hdrext:toffset","id":14}],"decoders":[{"name":"VP9","payload_type":98},{"name":"VP9","payload_type":100},{"name":"VP8","payload_type":96},{"name":"H264","payload_type":102},{"name":"H264","payload_type":127},{"name":"H264","payload_type":125},{"name":"H264","payload_type":108}]}}
9: {"AudioPlayoutEvent":{"local_ssrc":1063824803}}
10: {"IceCandidatePairConfig":{"config_type":0,"candidate_pair_id":110362309,"local_candidate_type":0,"local_relay_protocol":4,"local_network_type":0,"local_address_family":0,"remote_candidate_type":0,"remote_address_family":0,"candidate_pair_protocol":0}}
11: {"IceCandidatePairConfig":{"config_type":0,"candidate_pair_id":3617290008,"local_candidate_type":0,"local_relay_protocol":4,"local_network_type":0,"local_address_family":0,"remote_candidate_type":0,"remote_address_family":0,"candidate_pair_protocol":0}}
12: {"IceCandidatePairConfig":{"config_type":0,"candidate_pair_id":527797281,"local_candidate_type":0,"local_relay_protocol":4,"local_network_type":0,"local_address_family":0,"remote_candidate_type":0,"remote_address_family":0,"candidate_pair_protocol":0}}
...
38765: {"AudioPlayoutEvent":{"local_ssrc":1063824803}}
38766: {"RtpPacket":{"incoming":false,"packet_length":79,"header":"kG9iZR5IWCmyr0bYvt4AAiLAm6ZAMBDR"}}
38767: {"AudioPlayoutEvent":{"local_ssrc":1063824803}}
38768: {"LossBasedBweUpdate":{"bitrate_bps":5687408,"fraction_loss":0,"total_packets":0}}
38769: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0xU4p977SPnYkvt4AAiLApeMxNGUA"}}
38770: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0xk4p977SPnYkvt4AAiLApeMxNGYA"}}
38771: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0x04p977SPnYkvt4AAiLApeMxNGcA"}}
38772: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0yE4p977SPnYkvt4AAiLApeMxNGgA"}}
38773: {"AudioPlayoutEvent":{"local_ssrc":1063824803}}
38774: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0yU4p977SPnYkvt4AAiLAqwIxNGkA"}}
38775: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0yk4p977SPnYkvt4AAiLAqwIxNGoA"}}
38776: {"RtpPacket":{"incoming":false,"packet_length":1081,"header":"kHw0y04p977SPnYkvt4AAiLAqwIxNGsA"}}
38777: {"RtpPacket":{"incoming":false,"packet_length":1082,"header":"kHw0zE4p977SPnYkvt4AAiLAqwIxNGwA"}}