You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. E.g. if packetsReceived increases but framesReceived does not, it means that there is a problem in assembling video frames from RTP packets. This can happen when:
78
-
1. web browser is not able to correctly demux incomming RTP streams possibly because sender uses incorrect payload type in RTP packets (different than the one announced in SDP) or does not include MID in RTP headers.
78
+
1. web browser is not able to correctly demux incoming RTP streams possibly because sender uses incorrect payload type in RTP packets (different than the one announced in SDP) or does not include MID in RTP headers.
79
79
Keep in mind that MID MAY be sent only at the beginning of the transmission to save bandwidth.
80
80
This is enough to create a mapping between SSRC and MID on the receiver side.
81
81
1. marker bit in RTP header is incorrectly set by the sender (although dependent on the codec, in case of video, marker bit is typically set when an RTP packet contains the end of a video frame)
82
82
1. media is incorrectly packed into RTP packet payload because of bugs in RTP payloader
83
83
1. E.g. if packetsReceived increases, framesReceived increases but framesDecoded does not, it probably means errors in decoding process.
84
84
In this case, framesDropped will probably also increase.
85
85
1. framesDropped may also increase when frames are assembled too late i.e. their playout time has passed.
86
-
1. Check borwser logs.
86
+
1. Check browser logs.
87
87
Some of the errors (e.g. decoder errors) might be logged.
88
88
89
89
## QoE
@@ -93,22 +93,22 @@ Mostly because it very often depends on a lot of factors (network condition, har
93
93
Problems with QoE are hard to reproduce, very often don't occur in local/office environment.
94
94
95
95
1. We heavily rely on chrome://webrtc-internals here.
Without RTX, even 1% of packet loss will have very big impact on QoE.
99
99
1. Check incoming/outgoing bitrate and its stability.
100
-
1. Check jitterBufferDelay/jitterBufferEmittedCount_in_ms - this is avg time each video frame spends in jitter buffer before being emitted for plaout.
100
+
1. Check jitterBufferDelay/jitterBufferEmittedCount_in_ms - this is avg time each video frame spends in jitter buffer before being emitted for playout.
101
101
1. JitterBuffer is adjusted dynamically.
102
102
103
103
## Debugging in production
104
104
105
105
1. Dump WebRTC stats via getStats() into db for later analysis.
106
106
1. getStats() can still be called after PC has failed or has been closed.
107
-
1.Continous storage WebRTC stats as time series might be challenging.
107
+
1.Continuous storage WebRTC stats as time series might be challenging.
108
108
We don't have a lot of experience doing it.
109
109
1. Come up with custom metrics that will allow you to observe the scale of a given problem or monitor how something changes in time.
110
110
1. E.g. if you feel like you very often encounter ICE failures, count them and compare to successful workflows or to the number of complete and successful SDP offer/answer exchanges.
111
-
This way you will see the scale of the problem and you can observer how it changes in time, after introducing fixes or new features.
111
+
This way you will see the scale of the problem and you can observe how it changes in time, after introducing fixes or new features.
112
112
1. It's important to look at numbers instead of specific cases as there will always be someone who needs to refresh the page, restart the connection etc.
113
113
What matters is the ratio of such problems and how it changes in time.
114
114
1. E.g. this is a quote from Sean DuBois working on WebRTC in OpenAI:
0 commit comments