KionelLAB WORKFLOWS

GUIDE · UPDATED 2026

Why a screen recording of QR codes will not scan

Filming a screen that shows a stream of QR codes, then reading the video later, is a practical way to move a file off a PC with no network and no camera. When it fails, the cause is almost never the codes. It is what happened to the video.

Written by Taha Bayar, a biologist working on laboratory data handover. The examples below come from our own test recordings.

1. The video was shrunk on the way

A 1080 × 1920 phone recording of 11 seconds, 29 MB, was sent to a computer through WhatsApp. It arrived as 478 × 850 at about 1.9 Mbit/s, 2.6 MB. A dense QR code of 177 × 177 modules then has fewer than three pixels per module, and nothing reads it reliably. The original file, copied by cable, read without trouble.

Messaging apps and most e-mail and chat services recompress video. Move the original instead: a USB cable (on Windows, the phone appears under This PC, photos in DCIM), Quick Share or AirDrop, or, in WhatsApp, send it as a document rather than as a video.

2. The format is 4K, 60 fps or HEVC

Many phones record 4K or 60 fps in HEVC (H.265). A browser can play HEVC only where the computer's hardware decoder supports it, and a file the browser cannot decode delivers no frames at all. Record at 1080p and 30 fps. On an iPhone, Settings → Camera → Formats → Most Compatible records H.264.

Higher resolution does not help by itself: if the code fills a small part of a 4K picture, a reader that scales the frame down loses the detail anyway. Filling the picture with the code does more than adding pixels around it.

3. The codes change faster than the camera films

Most phones record 30 frames a second. If the screen shows 60 different codes a second, most video frames catch two codes at once, blended, and neither reads. Showing each code for at least two camera frames avoids this. Kionel's recording mode shows 20 codes a second for that reason, and its colour code 15.

4. The browser tab went to the background

Reading a video in a browser relies on the browser handing each frame to the page. Browsers stop doing that for a tab in the background, while the video itself keeps playing. The frames go by unread, and the reading stalls. In one of our tests this happened at 99%, when the tab was switched to check the sending screen. Keep the reading tab in front; Kionel now pauses the reading while the tab is hidden and continues when you come back.

5. The picture itself

How long to film

A file needs a certain number of different codes; the capacity guide gives the figures. With a fountain code, any codes will do, in any order, so a recording that was too short can be followed by a second one. If only a few codes are read from a long video, filming longer will not help: the picture is the problem, and one of the causes above applies.

Kionel measures this for you: when a recording ends early it says how many more seconds to film, and when the codes are too few to extrapolate from, it says the picture is the issue and, for a shrunk video, that it was shrunk.

Start freeOffline package