Compatibility
What works where — honestly.
What has actually been tested
| Feature | Chrome / Edge (desktop) | Firefox (desktop) | Safari (macOS / iOS) | Chrome (Android) |
|---|---|---|---|---|
| Host Watch Together (stream a local file) | ||||
| Join Watch Together as guest | ||||
| Camera & microphone | ||||
| Multiplayer games | ||||
| Quick Share — send | ||||
| Quick Share — receive to disk (OPFS) |
Supported Partially / not yet verified Not supported
Local video streaming
Hosting relies on HTMLMediaElement.captureStream(). Chromium-based browsers implement it. Firefox exposesmozCaptureStream(), which this site uses as a fallback (not yet verified end to end). Safari does not support capturing a stream from a video element, so Safari users can join but not host. The site checks this before you start and explains the reason instead of failing silently.
Video formats and codecs
- Tested: WebM (VP8 video) in Chromium — used by the automated media test.
- Expected to work in Chromium: MP4 with H.264 video and AAC audio, WebM with VP9/Opus.
- May work: other containers your browser happens to play (for example MKV in some Chromium builds).
- Will not work: DRM-protected files, and codecs your browser cannot decode (for example HEVC on many systems).
The guest never decodes the file itself — they receive a WebRTC stream (VP8/VP9/H.264 + Opus) negotiated between the two browsers.
Camera and microphone
Browsers only allow camera and microphone access on HTTPS (or localhost) and after you grant permission. If you deny it, or a device is unplugged, the movie keeps playing and the controls show what happened.
Networks, firewalls and TURN
WebRTC first tries a direct connection using STUN. Corporate firewalls, symmetric NAT and some mobile carriers block that. A TURN relay then forwards the encrypted traffic. Without a TURN server configured by the operator, connections between such networks fail and the page tells you so. Relayed connections add latency and cost the operator bandwidth.
File-transfer size and memory
- The sender’s browser reads the file in 64 KiB chunks and never loads it fully into memory.
- The recipient writes to the Origin Private File System where available (Chromium, recent Firefox and Safari) — limited by the browser’s storage quota, typically a share of free disk space.
- Without OPFS the file is assembled in memory; keep files under a few hundred megabytes in that case.
- The default per-link maximum is 4 GB (operator-configurable).
Keeping tabs open
- Watch Together: if the creator closes the tab, the stream stops and playback pauses for the guest. The creator can return and re-select the file.
- Quick Share: the sender must stay online until the recipient finishes. If either side disconnects, the transfer pauses; it resumes while both pages remain open and the link is still reserved for that recipient.
- Games: state is stored on the server, so closing a tab is safe; reopen the room link to continue.
Links and expiry
- Rooms expire after 12 hours without activity (configurable).
- Share links expire after 24 hours (configurable), after a successful download, or when the sender cancels.
- A failed or interrupted transfer does not consume the link.