Wirebook › Bonus lesson
Why does a video call go blurry when the connection is slow?
On a video call the picture sometimes turns into soft squares, then freezes, then catches up again. Nothing is broken: your device is squeezing a stream of pictures into a thin pipe. When the pipe shrinks, the call keeps the important bits (faces, motion) and throws detail away. Here you can dial the pipe thinner, spend a tiny bit budget on a face, and watch a pretend call decide what to keep.
What is actually being squeezed?
A raw video frame is huge. A modest call at 30 pictures a second can be tens of megabytes every second if you send every colour of every pixel. Home and mobile connections rarely have that much spare room, and even when they do, other people in the house are using some of it. So the call uses compression: it looks for patterns (a blue wall that barely changes, a face that moves a little) and describes those patterns with far fewer numbers than the raw pixels.
The speed of that stream is its bitrate — how many bits leave your device each second. When the path gets congested, the call turns the bitrate down. Lower bitrate means bigger blocks, softer edges, fewer pictures per second, and sometimes a freeze while it waits for a clearer moment.
- Big blocks first. Instead of painting every pixel, the encoder paints squares. Fewer bits → bigger squares → the classic “Minecraft” look.
- Keep what moves — and what you recognise. Faces and hands change a lot; wallpaper hardly does. Bits go to eyes and mouths so you can still tell if someone is smiling.
- Reuse the last frame. If almost nothing moved, send “same as before” instead of a whole new picture.
- Freeze beats nonsense. When the pipe is tiny, many apps pause on the last good frame rather than send a soup of wrong colours.
Why the other person looks fine when you look blurry
Upload and download are often different sizes. Many home connections upload more slowly than they download. Your camera feed is an upload, so when the path is busy you are the one who looks blocky to them, while their picture arriving to you can still look fine. Turning off HD, closing other uploads, or moving closer to the router gives the call more of the thin pipe.
Sister lessons: why zipping photos barely makes them smaller and interrupted downloads & byte ranges — numbered pieces that resume without redoing everything. Grown-up twin ideas: when the call never connects, see Tooltern’s WebRTC ICE failed, WebSocket connection failed, and NotAllowedError getUserMedia guides (plus ETIMEDOUT / Failed to fetch). Anvil’s HTTP status helpers name the codes servers send back.