This page is shown in English, the language your browser asks for.
This page's code did not start.
Opening index.html directly from a folder blocks JavaScript modules, so nothing will happen when you choose a camera. Serve the folder over http instead:
This opens as soon as you choose a file above.ready — disconnect from the internet and this still works.not available in this browser (everything else still works).needs https:// or localhost to cache for offline use.caching unavailable here, but nothing is uploaded either way.your files have gone nowhere. {total} files loaded, all of them this page's own. {platform}something contacted {hosts}, which this tool never does. Treat that as worth investigating. {platform}The page's own ad, measurement and donate-button scripts loaded from {hosts} host; not one of them was given a file or a byte of one.The page's own ad, measurement and donate-button scripts loaded from {hosts} hosts; not one of them was given a file or a byte of one.Something broke: {detail}. Reload the page to start over.Reading {count} file…Reading {count} files…Try an exampleBuilding an example…This browser could not build the example. Choose a file instead.
Watch a camera — from another device on your local network
Open a camera on one device and watch it in another browser, with optional viewer approval. Live video travels directly between them, encrypted.
Version:v1.9.0 · 72e502048bAbout the tool version
Compare this value on both devices. If it differs, reload both pages before starting a new share.
● Camera video goes directly to one viewer. You choose whether approval is required. Internet introduces the browsers.
Your camera video goes directly to one accepted viewer over an encrypted WebRTC connection. Our introduction service carries connection negotiation, never the video or the viewer's note. There is no recording feature and no microphone request. Stop, hide or close the camera page and capture ends. Internet access is required for the introduction; pairing also reveals network addresses to the other browser. Viewer approval is on by default; turning it off lets anyone who knows your link or finds your listed camera watch while it is free.
✓ Camera only
✓ Optional viewer approval
✓ Direct encrypted video
✗ No recording
✗ No internet relay
Live check:checking…
Offline:checking…
Watch DevTools: one WebSocket lists camera names, and starting or connecting adds one for setup messages. Camera frames and the viewer's note travel the encrypted peer connection. The page stays available offline; pairing needs internet.
How the privacy claim is verifiable
You choose whether viewers need approval. The first WebRTC connection carries only an encrypted control channel. Require my approval is on by default. Turning it off accepts new viewers automatically: anyone who knows the link or finds the listed camera can watch while it is free. The camera track is added only after the viewer acknowledges acceptance, and only one viewer receives it. Changing the setting applies to new requests, not waiting requests or an already connected viewer. Video uses the browser's encrypted media transport directly between devices. It never passes through the rendezvous. A viewer can still capture their own screen; ending the link stops future video and cannot remove anything they already kept.
The introduction requires internet and exposes connection metadata. Opening this page opens a discovery WebSocket to rendezvous.abox.tools. Start camera or Connect adds a room socket that stays open while the session is active. The service sees the code, IP addresses, connection times, and WebRTC setup descriptions and candidates; those setup messages are not encrypted from the service. It does not receive video or the viewer note. Discovery lists only opted-in camera names, grouped by the public IPv4 address or IPv6 /64 seen by the service and the page origin. Shared VPNs or carrier networks can include strangers; nearby devices can be missed. Turn off listing before starting for a link-only camera. Choosing a listed name opens the viewing form and waits for Connect. The source chooses whether its owner must approve the request. Rooms and listings exist only on open connections. Cloudflare keeps connection logs for seven days: the code, address and time, never a payload.
A direct connection shares addresses before video is approved. Opening a viewer link selects the viewing form and waits. Connect asks the rendezvous to introduce the devices, and each browser then learns addresses offered by the other. Approval controls video, not that address exchange. The name you enter is a note for the source, not verified identity. Recognise the person and expected request before approving. If you turn approval off, a viewer can receive video without an owner action.
Host candidates are a connection policy, not proof of a building. No STUN server or TURN relay is configured, and non-host candidates are removed from descriptions and trickled messages. A VPN, public interface or operating-system route can affect where host addresses lead. Use a reachable local network; guest isolation, firewalls and local-network permissions may prevent the connection. There is no relay fallback.
Stop releases the camera and ends the invitation. Stop on the source closes its tracks, peers and introduction connection. Hiding or closing its page does the same, as does losing the introduction connection. A permission granted after Stop is immediately released. Disconnect on the viewer ends its connection while the source keeps its local preview available for a new request. Codes and notes are not saved by this tool.
The site frame still loads its usual third parties. Advertising and measurement scripts come from Google, and the donate button from Buy Me a Coffee. The tool does not pass them video or notes. Third-party scripts can read the page address, which includes the camera code in a viewer link. Keep approval on by recognising the intended viewer. With approval off, knowing a code permits viewing while the camera is free, so leave approval on when you want to control admission.
Check it yourself. None of the above has to be taken on trust. This page is generated from the templates and config in the repository by a build script you can read and run yourself, and the result is committed to the dist branch — so you can diff what is served against what a build of the sources produces:
The files worth reading first are config/site.toml for the Content-Security-Policy, src/capture.js for permission cancellation and track cleanup, and src/session.js for viewer acceptance before video, camera replacement and host-only connection policy. The introduction service source is workers/rendezvous/worker.js in the same repository
If your employer's security software warns about an upload. It is watching the moment a file is chosen in a browser, and it cannot know whether the page intends to send it — so it warns on the choosing. Nothing is sent here: open your browser's developer tools, switch to Network, and choose a file. There is no request carrying it, and no request at all beyond the page's own local preview. That is the same check anyone in your IT team can run in half a minute.
Online cameras
Choosing a camera fills in its code. Choose Connect to request a view.
How cameras are listed
Listed cameras share the internet address seen by our introduction service and this site’s address. A shared VPN or carrier network can include strangers, and nearby cameras can be missed. Choose a camera you recognise.
Both devices need this page open, an internet connection for pairing, and a local network that lets them reach each other. Video travels directly between the browsers. No microphone, recording or internet relay.
Share my camera
Allow camera access on this device. The other device opens your link or scans the QR code. Choose whether you want to approve each viewer.
List this camera for other devices to find The link name is visible to browsers in the discovery group described under Online cameras. Turn this off to invite viewers by link only.
Camera Keep this tab visible and this device awake. Switching tabs or closing the page stops the camera and ends the link.
Open this link on the viewing device Recognise the person or device before approving. One viewer at a time receives video; everyone else is turned away.
Choose your own name using letters, numbers and hyphens, or keep the random suggestion. Stop before changing the name. Your browser chooses the camera.
Approve viewer requests on this device. Changes to this setting apply to new requests.
Your camera is off. Nothing is paired.
Switch cameras while keeping the same viewer link and connection. A brief pause may occur while your browser opens the other camera.
Or enter this code in Watch a camera on the viewing device:
Viewer requests
Watch a camera
Choose an online camera above, or enter a code or viewer link below. This device does not need camera or microphone access.
A name the camera device will recognise Optional. This note goes to the camera browser over the encrypted connection.
Connecting shares each browser’s network address with the other and contacts our introduction service. The camera may ask its owner to approve you or start video automatically, depending on its setting. Continue only if you know who controls it.
Enter a camera code to request a view.
Connection details and troubleshooting
No camera connection yet.
This tool offers only the browsers’ own host addresses, without public STUN servers or TURN relays. A VPN or operating-system route can affect the path. Guest Wi-Fi isolation, a firewall, blocked local address discovery, or browser and OS local-network permissions can prevent a connection.
If pairing fails, stop on both devices, check that both are on the same reachable network, allow local-network access if asked, and try a new link. The camera device needs trusted HTTPS; ordinary HTTP on a LAN IP cannot request a camera.
Your camera is off. Nothing is paired.Waiting for camera permission. You can stop this attempt at any time.Camera preview is on. Waiting for a viewer you approve.Camera preview is on. A viewer can connect without asking you for approval.Approve viewer requests on this device. Changes to this setting apply to new requests.Approval is off. Anyone who knows your link or finds your listed camera can watch while it is free. Changes apply to new requests; an existing viewer stays connected.Viewer accepted. Waiting for the direct video connection.One viewer is connected to your camera. Keep this tab visible and this device awake.Current cameraCamera {number}Switching cameras…Camera switched. The viewer link and connection stay open.The camera could not be switched. Sharing continues with the current camera.The camera could not be switched or restored. Start again to share a camera.The camera stopped. Start again when you are ready to share.The camera stopped because this tab was hidden. Start again when you are ready to share.Camera access was not allowed. Check this page’s camera permission and try again.No available camera was found on this device.The camera could not start. Check whether another application is using it and try again.Camera access needs trusted HTTPS and a browser that supports it. Ordinary HTTP on a LAN IP cannot use the camera.A viewer without a noteApprove this viewerTurn awayEnter a camera code to request a view.Your request reached the camera device. If approval is required, wait for its owner; no video is being sent yet.The camera device accepted you. Waiting for live video…Receiving live video directly from the camera device.The camera device turned away your request. Ask its owner before trying again.Your browser paused playback. Choose Play live video to continue.Full screen is unavailable here. You can still watch the video in this page.Enter the complete camera code or viewer link from this tool.Choose a viewer link name with letters, numbers or hyphens.Opening the introduction connection…Connecting directly to the camera device…Disconnected. Camera capture and the live connection are closed on this device.The camera link ended. Ask the camera device to start again and send a new link.This camera link is no longer open. Check the code or ask the camera device for a new link.That camera link name is already in use. Choose another name and start again.This camera already has a viewer or too many pending requests. Try again after the camera device is free.The introduction service could not stay connected. Check your internet connection, then start again.The browsers could not keep a direct connection. Check Wi-Fi isolation, firewall and local-network permissions; no internet relay will be used.The other browser sent an unsupported connection message. Reload both pages and pair again.This page needs trusted HTTPS and a browser with WebRTC support.Viewer link copied.Select and copy the viewer link from the field above.No camera connection yet.The selected connection uses host candidates on both devices. No STUN server or TURN relay is configured.Only host candidates are offered. Waiting for the browser to report the selected connection.Video frames decoded on this device: {count}.The QR code could not be drawn. Copy the viewer link instead.Looking for online cameras…No online cameras are listed in this group. You can still use a viewer link or code.Choose a camera name to fill in its code.Camera discovery is unavailable. You can still use a viewer link or code.Listing your camera…Your camera name is listed. Your viewer approval setting still applies.Your camera is available by link, but its name could not be listed.
Did this do the job?
What went wrong?
Thank you — that helps.
Only the answer is sent, and only when you press a button. Never your file, its name, or anything about it.
# Watch a camera — from another device on your local network
Open a camera on one device and watch it in another browser, with optional viewer approval. Live video travels directly between them, encrypted.
> Watch a phone or computer camera from another browser on a reachable local network. Direct encrypted video, optional viewer approval, camera switching, no microphone or recording.
Camera video travels directly between connected browsers, with viewer approval on by default. Internet rendezvous carries setup metadata, never video; no microphone or recording feature.
## Camera video goes **directly to one viewer**. You choose whether approval is required. Internet introduces the browsers.
Your camera video goes directly to one accepted viewer over an encrypted WebRTC connection. Our introduction service carries connection negotiation, never the video or the viewer's note. There is no recording feature and no microphone request. Stop, hide or close the camera page and capture ends. Internet access is required for the introduction; pairing also reveals network addresses to the other browser. Viewer approval is on by default; turning it off lets anyone who knows your link or finds your listed camera watch while it is free.
- ✓ Camera only
- ✓ Optional viewer approval
- ✓ Direct encrypted video
- ✗ No recording
- ✗ No internet relay
## How to watch another device's camera
1. **Start on the camera device.** Open this HTTPS page on the phone or computer whose camera you want. Choose a viewer link name or keep the random suggestion, choose Start camera, and allow camera access. Your browser chooses the initial camera. After permission, a Camera selector appears if this browser exposes more than one camera; use it to switch without ending the invitation. No microphone is requested.
2. **Invite the viewing device.** Open the viewer link or scan the QR code on the other device. You can also choose a name under Online cameras, or enter the code in Watch a camera. Both devices need internet for pairing and a network that lets them reach each other.
3. **Connect the viewer.** The viewer chooses Connect to camera. If Require my approval is on, approve the request you recognise on the source. With it off, the first accepted viewer connects automatically. Live video then appears in the viewer; use Play live video if the browser pauses playback.
4. **Keep the source visible, then stop.** Keep the source page visible and its device awake while watching. Stop camera and end the link releases the camera. Switching away from the source page also stops it.
## The longer version
[How to watch a camera from another device](https://abox.tools/guides/watch-camera-from-another-device/): Connect a phone or computer camera to another browser on a reachable local network, approve the viewer, and stop capture when finished.
## Also in the box
- [Video Compressor](https://abox.tools/compress-video/): Say how big it may be. The tool works out the rest, and measures the result before you get it.
- [MP4 Converter](https://abox.tools/convert-to-mp4/): Whatever came off the screen recorder, the ripper or the camera, as H.264 and AAC in an MP4. Copied where it can be, re-encoded only where it must.
- [Video Rotator](https://abox.tools/rotate-video/): A quarter turn, a half turn, the other way. With header rotation, the picture frames stay unchanged.
- [Images to Video](https://abox.tools/images-to-video/): Turn a folder of images into a video.
## Questions
### Must both devices use the same Wi-Fi?
They need a route to each other. Wi-Fi and Ethernet on the same reachable local network can work together. A shared Wi-Fi name alone does not establish reachability: guest isolation, firewalls, VPN routing and browser permissions can block it.
### Does it work without internet?
No. The introduction uses our public rendezvous and its connection stays open during the session. Video travels directly between the browsers, with no configured internet relay. Losing the introduction connection ends the session.
### Does this turn my phone into a webcam for meeting apps?
It provides a live view in another browser. It does not install a system webcam or make that camera available to desktop meeting applications.
### Why must the camera page use HTTPS?
A browser requires a secure context and camera permission. Use the site's trusted HTTPS address. Ordinary HTTP on a local-network IP cannot request a camera; localhost is a development exception on the same computer.
### Can anyone with the link watch?
With Require my approval on, a link or code permits a request and network-address exchange; the owner must approve before video. Turn approval off to let anyone with the link or a listed camera name watch while the camera is free. The optional viewer note is not proof of identity, so approve only the person and request you expect.
### Can several devices watch at once?
One viewer at a time. Disconnect the current viewer before another can watch. Up to four peer connections may be pending; further requests are refused while busy.
### Why did sharing stop when I changed apps?
Hiding or closing the source page deliberately stops capture and ends the link. Keep it visible and awake. Start again to create a new invitation after returning.
### Can I change cameras while sharing?
After camera permission, the Camera selector appears when this browser exposes multiple video devices. Choose another to keep the same invitation and viewer connection. Some devices need a brief pause while the old hardware is released. If switching fails, the tool keeps or restores the previous camera where possible; if neither camera can be opened, sharing ends and you can start again.
### Does it send sound or record video?
The tool requests video only and has no recording feature. It does not ask for microphone access. A viewer can independently capture their screen, as with anything they can see.
### Why can pairing fail on the same Wi-Fi?
Guest networks and client isolation can separate devices. Firewalls, blocked local address discovery, OS and browser local-network permissions, or VPN routes can also prevent a direct connection. Stop on both devices, check permissions and network reachability, and try a fresh link. The tool will not switch to an internet relay.
## How the privacy claim is verifiable
- **You choose whether viewers need approval.** The first WebRTC connection carries only an encrypted control channel. Require my approval is on by default. Turning it off accepts new viewers automatically: anyone who knows the link or finds the listed camera can watch while it is free. The camera track is added only after the viewer acknowledges acceptance, and only one viewer receives it. Changing the setting applies to new requests, not waiting requests or an already connected viewer. Video uses the browser's encrypted media transport directly between devices. It never passes through the rendezvous. A viewer can still capture their own screen; ending the link stops future video and cannot remove anything they already kept.
- **The introduction requires internet and exposes connection metadata.** Opening this page opens a discovery WebSocket to `rendezvous.abox.tools`. Start camera or Connect adds a room socket that stays open while the session is active. The service sees the code, IP addresses, connection times, and WebRTC setup descriptions and candidates; those setup messages are not encrypted from the service. It does not receive video or the viewer note. Discovery lists only opted-in camera names, grouped by the public IPv4 address or IPv6 /64 seen by the service and the page origin. Shared VPNs or carrier networks can include strangers; nearby devices can be missed. Turn off listing before starting for a link-only camera. Choosing a listed name opens the viewing form and waits for Connect. The source chooses whether its owner must approve the request. Rooms and listings exist only on open connections. Cloudflare keeps connection logs for seven days: the code, address and time, never a payload.
- **A direct connection shares addresses before video is approved.** Opening a viewer link selects the viewing form and waits. Connect asks the rendezvous to introduce the devices, and each browser then learns addresses offered by the other. Approval controls video, not that address exchange. The name you enter is a note for the source, not verified identity. Recognise the person and expected request before approving. If you turn approval off, a viewer can receive video without an owner action.
- **Host candidates are a connection policy, not proof of a building.** No STUN server or TURN relay is configured, and non-host candidates are removed from descriptions and trickled messages. A VPN, public interface or operating-system route can affect where host addresses lead. Use a reachable local network; guest isolation, firewalls and local-network permissions may prevent the connection. There is no relay fallback.
- **Stop releases the camera and ends the invitation.** Stop on the source closes its tracks, peers and introduction connection. Hiding or closing its page does the same, as does losing the introduction connection. A permission granted after Stop is immediately released. Disconnect on the viewer ends its connection while the source keeps its local preview available for a new request. Codes and notes are not saved by this tool.
- **The site frame still loads its usual third parties.** Advertising and measurement scripts come from Google, and the donate button from Buy Me a Coffee. The tool does not pass them video or notes. Third-party scripts can read the page address, which includes the camera code in a viewer link. Keep approval on by recognising the intended viewer. With approval off, knowing a code permits viewing while the camera is free, so leave approval on when you want to control admission.
**Check it yourself.** None of the above has to be taken on trust. This page is generated from the templates and config in the repository by a build script you can read and run yourself, and the result is committed to the `dist` branch — so you can diff what is served against what a build of the sources produces: https://github.com/A-Box-of-Tools/website
The files worth reading first are `config/site.toml` for the Content-Security-Policy, `src/capture.js` for permission cancellation and track cleanup, and `src/session.js` for viewer acceptance before video, camera replacement and host-only connection policy. The introduction service source is `workers/rendezvous/worker.js` in the same repository
How to watch another device's camera
Start on the camera device.Open this HTTPS page on the phone or computer whose camera you want. Choose a viewer link name or keep the random suggestion, choose Start camera, and allow camera access. Your browser chooses the initial camera. After permission, a Camera selector appears if this browser exposes more than one camera; use it to switch without ending the invitation. No microphone is requested.
Invite the viewing device.Open the viewer link or scan the QR code on the other device. You can also choose a name under Online cameras, or enter the code in Watch a camera. Both devices need internet for pairing and a network that lets them reach each other.
Connect the viewer.The viewer chooses Connect to camera. If Require my approval is on, approve the request you recognise on the source. With it off, the first accepted viewer connects automatically. Live video then appears in the viewer; use Play live video if the browser pauses playback.
Keep the source visible, then stop.Keep the source page visible and its device awake while watching. Stop camera and end the link releases the camera. Switching away from the source page also stops it.
The longer version
How to watch a camera from another deviceConnect a phone or computer camera to another browser on a reachable local network, approve the viewer, and stop capture when finished.
They need a route to each other. Wi-Fi and Ethernet on the same reachable local network can work together. A shared Wi-Fi name alone does not establish reachability: guest isolation, firewalls, VPN routing and browser permissions can block it.
Does it work without internet?
No. The introduction uses our public rendezvous and its connection stays open during the session. Video travels directly between the browsers, with no configured internet relay. Losing the introduction connection ends the session.
Does this turn my phone into a webcam for meeting apps?
It provides a live view in another browser. It does not install a system webcam or make that camera available to desktop meeting applications.
Why must the camera page use HTTPS?
A browser requires a secure context and camera permission. Use the site's trusted HTTPS address. Ordinary HTTP on a local-network IP cannot request a camera; localhost is a development exception on the same computer.
Can anyone with the link watch?
With Require my approval on, a link or code permits a request and network-address exchange; the owner must approve before video. Turn approval off to let anyone with the link or a listed camera name watch while the camera is free. The optional viewer note is not proof of identity, so approve only the person and request you expect.
Can several devices watch at once?
One viewer at a time. Disconnect the current viewer before another can watch. Up to four peer connections may be pending; further requests are refused while busy.
Why did sharing stop when I changed apps?
Hiding or closing the source page deliberately stops capture and ends the link. Keep it visible and awake. Start again to create a new invitation after returning.
Can I change cameras while sharing?
After camera permission, the Camera selector appears when this browser exposes multiple video devices. Choose another to keep the same invitation and viewer connection. Some devices need a brief pause while the old hardware is released. If switching fails, the tool keeps or restores the previous camera where possible; if neither camera can be opened, sharing ends and you can start again.
Does it send sound or record video?
The tool requests video only and has no recording feature. It does not ask for microphone access. A viewer can independently capture their screen, as with anything they can see.
Why can pairing fail on the same Wi-Fi?
Guest networks and client isolation can separate devices. Firewalls, blocked local address discovery, OS and browser local-network permissions, or VPN routes can also prevent a direct connection. Stop on both devices, check permissions and network reachability, and try a fresh link. The tool will not switch to an internet relay.