What is RTSP, and how camera video gets onto a website
RTSP is the language an IP camera uses to hand out video. Browsers don't speak it, so a camera link can't simply be pasted into a website — a server has to sit in between and convert it into something a browser can play.
RTSP in a nutshell
RTSP (Real Time Streaming Protocol) is how a recorder (NVR/DVR), video management software or simply VLC asks a camera for its video. It works like a TV remote: the client tells the camera "describe your streams", "get ready", "play" (the DESCRIBE, SETUP and PLAY commands). The video itself travels separately as RTP packets carrying compressed pictures — almost always H.264 or H.265.
Nearly every IP camera and recorder supports RTSP: Hikvision, Dahua, Uniview, Axis, Hanwha and the rest. It is how a recorder collects video from its cameras. The standard port is 554.
Anatomy of an RTSP URL
An RTSP URL looks like a normal web address, except that it starts with rtsp:// instead of http:// and can carry the camera's username and password:
rtsp://viewer:Pa55word@203.0.113.10:554/Streaming/Channels/101
| Part | Example | Meaning |
|---|---|---|
| Scheme | rtsp:// | The protocol |
| Username | viewer | A camera user — ideally a separate, view-only one |
| Password | Pa55word | That user's password |
| Host | 203.0.113.10 | The camera's or router's public IP, or a domain name |
| Port | 554 | The RTSP port; 554 is assumed if it is left out |
| Path | /Streaming/Channels/101 | The specific stream inside the camera; every vendor has its own |
The path depends on the vendor: /Streaming/Channels/101 on Hikvision, /cam/realmonitor?channel=1&subtype=0 on Dahua, /unicast/c1/s0/live on Uniview. The full table and ways to find it are in How to find your RTSP URL.
Most cameras send two streams: the main stream at full resolution and a sub stream at lower resolution and bitrate. The sub stream is handy when the site's upload speed is low.
Why browsers can't play RTSP
Chrome, Safari, Firefox and Edge only receive video over HTTP(S) and WebRTC. RTSP is a separate protocol that runs directly on TCP and UDP, and web pages are not allowed to open such connections. The old workarounds — VLC, QuickTime or ActiveX plugins — were switched off by browsers years ago. Paste an rtsp:// link into Chrome's address bar and nothing happens.
Beyond the browser, putting a camera straight onto a website has three more problems:
- Security. If viewers connected to the camera directly, each of them would need its IP address and password. That is unacceptable on a public website.
- Bandwidth. Every viewer would pull a separate stream from the camera: ten viewers, ten times the upload from your line. A normal office or hotel connection can't take that.
- Codec. Many browsers can't play H.265 at all.
What we convert RTSP into
The VIDEOCAMERA LIVE server connects to your camera over RTSP itself and takes one stream. It then delivers that stream to every viewer in a format browsers understand:
- WebRTC (WHEP) — the first choice: minimal delay, near-real-time picture.
- LL-HLS — the fallback when a network blocks WebRTC (a strict corporate firewall, for example). A little more delay, but it gets through everywhere.
Video from an H.264 camera is normally not re-encoded, only repackaged, so quality stays exactly as the camera sends it. H.265 cameras are detected automatically and converted to H.264 while someone is watching; when nobody watches, the conversion stops. More in H.265 in the browser.
Viewers only ever see our player. The camera's IP address and password are never sent to them, and the password is stored encrypted on the server. The number of viewers doesn't load your internet — the camera still sends a single stream.
TCP or UDP
RTSP commands always travel over TCP. The video itself (RTP) can be carried in two ways:
- TCP — video comes over the same connection as the commands. One open port is enough, packets are not lost and it passes through a router port forward without trouble. This is the reliable choice over the internet.
- UDP — video comes over separate ports. It is slightly lighter on a local network, but over the internet packets get lost (grey smears and a broken-up picture) and it struggles with NAT and firewalls.
Each camera in the dashboard has a TCP/UDP choice, set to TCP by default. Leave it there unless the camera really doesn't work over TCP.
What the camera needs to reach us
Our server is on the internet; your camera usually sits on your local network at a 192.168.x.x address. For the server to connect, the camera or recorder has to be reachable from outside: a public IP address and the RTSP port forwarded on the router — see Port forwarding. Once the connection test passes, all that's left is embedding the camera on your website.
Will an RTSP link open if I paste it into Chrome or Safari?
No. Browsers don't support RTSP. To test a link, use VLC (Media → Open Network Stream). To show it on a website, the stream must first be converted to WebRTC or HLS — which is what our server does.
Which port does RTSP use?
554 over TCP by default. Some cameras have it changed — check the network settings in the camera's web interface (usually Network → Port).
Does my camera support RTSP?
The vast majority of IP cameras and recorders do. The exceptions are some cheap Wi-Fi cameras that only work with the maker's cloud app. Check the manual or see How to find your RTSP URL.
Is an RTSP stream encrypted?
Usually not. So create a separate view-only user on the camera, change the default password, keep the firmware updated and expose only the RTSP port — never the web admin ports 80/443/8000.
Should I use the main stream or the sub stream?
The main stream if your upload allows it (roughly 3–4 Mbit/s per camera for 1080p). On a weak line the sub stream gives a steadier live picture.