MJPEG Stream Viewer logo

MJPEG Stream Viewer

Display up to 16 MJPEG streams

This package can be used to display MJPEG streams generated by a lot of IP-connected cameras like those from Axis.

You can add multiple camera urls to show multiple cameras at once. Right now the limit is 16 cameras. Cameras are always aligned in a 2x2, 3x3 or 4x4 grid.

If you use four or more cameras, it's recommended to limit the capture size as well as the framerate to reasonable values so all camera images can be realistically updated fast enough by the Pi. For Axis cameras you can use urls like the following to control framerate and resolution:


You can specify an HTTP username/password per camera if your camera is password protected. Both BasicAuth and DigestAuth authentication schemes are supported.

Each camera can have a name that is visible in the bottom left corner of each image.

Usually the text in the corner should show Live. This means that the image shown is up-to-date. If the streaming process couldn't update the image for a few seconds, the text instead reads Last updated ..s ago. info-beamer will automatically try to reconnect to cameras after a few seconds.


An info-beamer device usually doesn't store the retrieved images, although retrieved images are temporarily stored in the filesystem. The info-beamer operating system is configured so it doesn't immediately persist written data and images are constantly overwritten by newer versions. This usually means that images are not persisted at all and only kept in the filesystem cache. In a future update, a RAM disk might be used to completely avoid storing the images at all.

The captured images are visible on the device detail page in the live view. This captured screen output isn't stored by info-beamer hosted.


info-beamer hosted has a powerful API. It allows you to automate almost every action on our platform. Here's how you can use this feature to automate this package.

Switching to different camera

If you have cameras you want to switch to during the night, you can automate this. The easiest way is to create two different setups: One configured for all the day-time cameras and another one for the night-time camera. With just using the web dashboard you can then easily switch between them by assigning them to a device. With the API you can of course automated this.

Let's say your setups have the IDs 12345 and 23456 and you want to switch between those on a device with ID 4567. Here is a curl based command line you can use:

# Switch device 4567 to setup 12345
curl -u:$API_KEY https://info-beamer.com/api/v1/device/4567 -d setup_id=12345

# Switch device 4567 to setup 23456
curl -u:$API_KEY https://info-beamer.com/api/v1/device/4567 -d setup_id=23456

Want to run MJPEG Stream Viewer on your Raspberry Pi?

This package is ready to run on your Raspberry Pi using info-beamer.com hosted. Easily manage unlimited number of Raspberry Pi devices and centrally configure and run visualizations like this on them. info-beamer.com is a prepaid service. You only pay for the resources you are using. No long term commitment, no hidden fees. Learn more...

Compatible devices

pi-1 pi-2 pi-3 pi-4 pi-cm1 pi-cm3 pi-zero pi-zero-2

Offline support

Maybe This package might work offline: Package provides no offline support information. Also check the information above.

Source code for this package

https://github.com/info-beamer/package-mjpeg-viewer shows you the full source code of this package so you can freely modify it if you want.