Send a file
Pick a file, then point the other device's camera at the animated code. The stream loops forever, so a missed frame costs nothing.
Drop a file here
or click to browse — up to 5 MB
Frame rate
Higher is faster, but a camera that cannot keep up will read fewer frames.
QR density
Smaller codes scan more reliably; bigger codes move more data per frame.
Browser Support Matrix
Sending is only a canvas, so it works everywhere. Receiving depends on the camera and on how fast this browser can decode QR codes.
| Feature | Chrome | Edge | Firefox | Safari |
|---|---|---|---|---|
| Sending (canvas QR animation) | Supported | Supported | Supported | Supported |
| Camera access (getUserMedia)Needs a secure context (HTTPS) and your permission. | Supported | Supported | Supported | Supported |
| BarcodeDetector (fast scan)Chromium only, and not guaranteed even there: Linux Chromium builds frequently ship without it, so this page probes both the constructor and the QR format at runtime rather than trusting the browser name. | Partial support | Partial support | Not supported | Not supported |
| Fallback scan (jsQR)Works in every browser, but reads fewer frames per second. | Supported | Supported | Supported | Supported |
| Fullscreen senderiOS Safari restricts programmatic fullscreen to video elements. | Supported | Supported | Supported | Partial support |
Detected browser capabilities
- BarcodeDetector …
- QR format supported …
- mediaDevices …
- Secure Context (HTTPS) …