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.