How to add an MJPEG Camera
MJPEG is the old school way of streaming. Shinobi supports it but it takes a little bit of know-how. Here's that know-how.
Before Continuing
If your camera is capable of providing an H.264 Stream I suggest you take a look at these articles first.
- How I Optimized my RTSP Camera
- View H.264 and H.265 streams in the browser with Shinobi and maintain low CPU use
Minor Internal Optimization
Controlling the bitrate is similar to controlling a stream of water. With MJPEG, knowing how to do this is important. Keep in mind that these are recommendations and you don't have to use these settings.
- Framerate (FPS) : High : 10 - 15 FPS, Low : 2-5 FPS
- Bit Rate : between 256kbps and 1Mpbs
Settings in Shinobi
For the Connection section I used:
- Input Type : MJPEG
For the Input section I used:
- Analyzation Duration : 1000000
- Probe Size : 1000000
- Monitor Capture Rate : Should match the stream. Probe the stream if you need to find it.
For the Stream section I used:
- Stream Type : MJPEG or Base64 over Websocket
- FPS (Frame Rate) : Should match the stream.
For the Record section I used:
- Video Codec : libx264
- Audio Codec : No Audio (MJPEG does not carry Audio)
- FPS (Frame Rate) : Should match the stream.
For Global Detector Settings section I used:
- Send Frames : Yes
- Save Events to SQL : Yes (if you want to view the dots in Power Video Viewer)
- Feed-in Image Width : 640
- Feed-in Image Height : 480
- How to Record : Traditional Recording
- Trigger Record : Yes
- Recording Timeout : 2
For Motion Detection section I used:
- Use Built-In : yes
- Indifference : Varies based on camera view point
- Full Frame Detection or Regions
For Traditional Recording section I used in combination with Global Detector Settings:
- Video Codec : libx264
- Audio Codec : No Audio (MJPEG does not carry Audio)
- Segment Length : 2 (creates 5 second buffer)
- HLS List Size : 3 to 10