Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
live555 plugin for mjpg-streamer is the only difference from the mjpg-streamer tree on sourceforge.
branch: master

This branch is even with engine12:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
plugins
scripts
www
CHANGELOG
LICENSE
Makefile
README
TODO
mjpg_streamer.c
mjpg_streamer.h
start.sh
utils.c
utils.h

README

"MJPG-streamer", is a command line application that copied JPG-frame from a single input plugin to multiple output plugins. It can be used to stream JPEG files over an IP-based network from the webcam to a viewer like Firefox, Cambozola, Videolanclient or even to a Windows Mobile device running the TCPMP-Player.

It was written for embedded devices with very limited ressources in terms of RAM and CPU. Its origin, the "uvc_streamer" was written, because Linux-UVC compatible cameras directly produce JPEG-data, allowing fast and perfomant M-JPEG streams even from an embedded device running OpenWRT. The input module "input_uvc.so" captures such JPG frames from a connected webcam.

This tool can be modified and distributed according to the terms of the GPL v2.

Currently no issues are known, but since this software is quite young and not used widely it may cause problems. You must really know what you are doing, if you use this software. If you want to use the software you are obliged to check if the sourcecode does what you expect it to do and take the risk yourself to use it.

To view the stream use VLC or Firefox and open the URL:
http://127.0.0.1:8080/?action=stream

To view a single JPEG just call:
http://127.0.0.1:8080/?action=snapshot

To compile and start the tool:
# tar xzvf mjpg-streamer.tgz
# cd mjpg-streamer
# make clean all
# export LD_LIBRARY_PATH=.
# ./mjpg_streamer -o "output_http.so -w ./www"

If you have libv4l2 library you could compile it using it. 
There are some cameras which has extra controls using it, and you can set much more resolutions.
# tar xzvf mjpg-streamer.tgz
# cd mjpg-streamer
# make USE_LIBV4L2=true clean all
# export LD_LIBRARY_PATH=.
# ./mjpg_streamer -o "output_http.so -w ./www"

If you would like to replace a WebcamXP based system with an mjpg-streamer based you may use the 
WXP_COMPAT make argument. If you compile with this argument the mjpg stream will be available as cam_1.mjpg and the
still jpg snapshot as cam_1.jpg. 
# make WXP_COMPAT=true


More examples can be found in the start.sh bash script.

In case of error:
 * the input plugin "input_uvc.so" depends on libjpeg, make sure it is installed.

Dependencies for the input plugin "input_uvc.so":
 * libjpeg
 * recent Linux-UVC driver (newer then revision #170)

Dependencies for the output plugin "output_autofocus.so":
 * libmath
 

To play the HTTP M-JPEG stream with mplayer:
# mplayer -fps 30 -demuxer lavf "http://127.0.0.1:8080/?action=stream&ignored.mjpg"

It might be necessary to configure mplayer to prefer IPv4 instead of IPv6
# vi ~./mplayer/config
add or change the option: prefer-ipv4=yes
Something went wrong with that request. Please try again.