Overview
RTSP (Real Time Streaming Protocol) and RTMP (Real-Time Messaging Protocol) are the two most common ways to get video from an IP camera to a streaming server. They solve the same fundamental problem — moving live video from point A to point B — but they work quite differently under the hood.
RTSP: the camera standard
RTSP is the native protocol for virtually every IP camera on the market. It's a pull-based protocol — the streaming server connects to the camera and requests the video feed. The camera acts as a server, and PanoraCast acts as a client.
- Pull-based: PanoraCast connects to the camera
- Default port: 554 (TCP)
- Supported by: nearly every IP camera manufacturer
- Video transport: RTP over UDP or TCP
- PanoraCast uses FFmpeg to pull RTSP streams and relay to SRS
RTMP: the broadcast standard
RTMP is a push-based protocol — the camera (or encoder) pushes the stream to the server. Originally developed by Adobe for Flash streaming, RTMP remains the de facto standard for live stream ingest. All software encoders (OBS, FFmpeg, Wirecast) and some newer IP cameras support RTMP push.
- Push-based: camera/encoder connects to PanoraCast
- Default port: 1935 (TCP)
- Supported by: OBS, FFmpeg, Wirecast, some IP cameras
- PanoraCast accepts RTMP ingest directly on port 1935
Key differences
The fundamental difference is direction: RTSP is pull (server fetches from camera), RTMP is push (camera sends to server). This has practical implications for firewall configuration and network topology.
- RTSP requires the server to reach the camera — the camera network needs port 554 open
- RTMP requires the camera to reach the server — easier when cameras are behind NAT/firewalls
- RTSP is universal among IP cameras; RTMP requires camera or encoder support
- Both deliver equivalent video quality — the protocol doesn't affect the stream itself
Which should you use?
If your camera supports RTSP (most do), use RTSP — PanoraCast handles the connection automatically and manages reconnection on failures. Use RTMP if your camera is behind a strict firewall where you can't open port 554, or if you're streaming from a software encoder like OBS. Both protocols deliver the same end result: your camera stream available as HLS on the web.