Short Q&A transcript explaining why a single lost packet can break a video stream: video encoders send a keyframe containing full image data followed by inter-frames that carry only differences. Because frames form a dependency chain (each inter-frame depends on the previous frame and ultimately the keyframe), losing a packet that prevents decoding one frame blocks subsequent frames until the missing data is recovered. The speakers also note recovery mechanisms (NACK/retransmit) and reference an article with further details.
Chapters
It is time for another question, and this time why losing a packet of video data can cause the loss of the whole video stream.
Okay, that's an interesting one. It goes into how video is encoded and decoded and basically how we encode video and send it over. RTP is as a series of frames that depend on each other and we always send the difference for subsequent frames. The first frame is a keyframe. It's large because it has to have all the new information. Everything else is a difference between the pictures.
So, for example, if you're even not WebRTC, but if you're watching this video on YouTube, there is the first frame which includes everything. And then probably all of the next frames that you're watching don't include the actual slide with the text because we already had that. We don't need to re extend that. We're just saying something like, well, all of that stuff is already there. Yes. Didn't change.
Yes. But the problem we have in RTC is that we can have packet loss, which means that, for example, on the second frame we can lose a packet until we recover that second frame. We can't decode the third frame because the third frame depends on the second frame, which depends on the keyframe.
And then the fourth frame depends on the third one and the fifth on the fourth and the sixth on the fifth.
And yes, it's all a chain of frames.
Okay, so in case of packet losses in video, we need different types of mechanisms to go and recover from that.
Yes. So the first thing you want to achieve is to recover from the lost packet, which is basically sending a negative acknowledgment and calling the sender to retransmit that packet.
Yep.
Then you get your complete frame and then you can decode all the other frames. It depends on.
And luckily for everyone, there's actually an article that was just written about that. And that would be a link below somewhere or above or to the sides or somewhere.
Yes. Who wrote that article? Probably me, as usual.