MJPEG over HTTP (often called Motion JPEG or MJPEG streaming) is one of the simplest and oldest methods for delivering live video over the internet. It consists of a continuous stream of individual JPEG images sent over a standard HTTP connection.
Widely used in IP cameras, webcams, and legacy surveillance systems, MJPEG remains popular in scenarios where ease of implementation and compatibility are more important than bandwidth efficiency.
## What is MJPEG over HTTP?
MJPEG is not a formal protocol standard like HLS or RTMP. Instead, it is a **stream of standalone JPEG frames** delivered via an HTTP response with the `multipart/x-mixed-replace` content type. Each frame replaces the previous one in the same connection.
Key characteristics:
- **Frame-by-frame JPEG images** (no inter-frame compression like H.264 or H.265).
- **HTTP-based** (works through standard web servers and browsers).
- **No audio** (typically video-only).
- **Very low latency** (near real-time, often under 1 second).
MJPEG streams usually operate on ports **80 (HTTP)** or **443 (HTTPS)**.
## How MJPEG over HTTP Works
1. **Client Request**
The browser or viewer sends an HTTP GET request to the camera/server (e.g., `http://camera.example.com/video.mjpg`).
2. **Server Response**
The server replies with a continuous HTTP response using the `multipart/x-mixed-replace` MIME type and a unique boundary string.
3. **Stream Delivery**
The server sends a series of JPEG images, each preceded by headers and separated by the boundary. The browser automatically displays each new JPEG as it arrives, creating the illusion of motion.
Example of a multipart response header:
```
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace;boundary=frame
--frame
Content-Type: image/jpeg
Content-Length: 12345
(binary JPEG data)
--frame
Content-Type: image/jpeg
Content-Length: 13456
(binary JPEG data)
...
```
## Advantages of MJPEG over HTTP
- **Universal browser compatibility** (works natively in Chrome, Firefox, Safari, Edge without plugins).
- **Extremely simple to implement** (no need for complex codecs or players).
- **Very low latency** (often < 500 ms).
- **No client-side software required** (just a web browser).
- **Easy to embed** in web pages using `<img src="http://camera/video.mjpg">`.
## Disadvantages of MJPEG over HTTP
- **Very high bandwidth usage** (each frame is a full JPEG image; no inter-frame compression).
- **Poor quality-to-bandwidth ratio** compared to H.264/H.265.
- **No audio support** in standard implementations.
- **Limited scalability** (high CPU and bandwidth load on server).
- **Not adaptive** (no bitrate switching or ABR).
## MJPEG vs. Other Protocols: Quick Comparison
| Feature | MJPEG over HTTP | HLS | RTMP | SRT |
|--------------------------|-----------------------------|------------------------------|------------------------------|------------------------------|
| **Primary Use** | Simple live camera viewing | Delivery to end-users | Ingest | Contribution/ingest |
| **Transport** | HTTP | HTTP/HTTPS | TCP | UDP |
| **Latency (typical)** | < 500 ms | 10–30s (2–5s LL-HLS) | 2–5s | Sub-second |
| **Adaptive Bitrate** | No | Yes | No | No |
| **Bandwidth Efficiency** | Poor | Excellent | Good | Good |
| **Device Compatibility** | Excellent (browsers) | Excellent | Limited | Limited |
| **Audio Support** | No | Yes | Yes | Yes |
| **CDN Support** | Limited | Native | Limited | Limited |
MJPEG is ideal for **quick, low-latency camera feeds** in web-based interfaces but not suitable for large-scale or high-quality streaming.
## Use Cases for MJPEG over HTTP
- **IP camera live view** in web browsers.
- **Surveillance monitoring** systems (e.g., Milestone XProtect web clients).
- **Legacy webcam streaming**.
- **Embedded devices** with limited processing power.
- **Quick proof-of-concept** or development testing.
MJPEG over HTTP remains a simple, reliable choice when bandwidth is not a concern and browser-native playback is required.
## Get Started with ORBNET Streaming Engine
The **ORBNET Streaming Engine** makes it easy to harness the power of **MJPEG over HTTP** for simple, low-latency video delivery and web-based monitoring. Whether you’re managing a complex XProtect deployment, providing live camera feeds to browsers, or building a standalone streaming solution, the Streaming Engine offers unmatched flexibility, reliability, and performance.
Explore the ORBNET Streaming Engine at [orbnetsys.com/streamingengine](https://orbnetsys.com/streamingengine) and start your 30-day free trial to experience MJPEG-powered streaming first hand.