Motion JPEG Cameras

See: DVR at Video Technology Magazine
Livecam Server

MJPEG / JPEG Camera viewing applications

The JPEG Library - LibJPEG

The "Independent JPEG Group" or IJG is an informal group that writes and distributes a widely used free library for JPEGS called LibJPEG. Linux and FreeBSD and most other freeOS distributions are supported by it. It includes MMX support.

Independent JPEG Group web site

IJG source code

JPEG FAQ

Libjpeg documentation

Joint Photographic Experts Group web site, group that put out the JPEG standard

Webcam software

If you want to stream from your own server, you'll need to use some streaming webcam software, some Linux-friendly package are:

Motion JPEG Application

This is for Application that can receive these streams.

Abacast JPEG Virtual Video Driver, utility can be used to create a virtual video device from any JPEG push networked camera or camera server. It allows you to turn any networked JPEG push device into a virtual device for streaming media. It also allows for multiple networked cameras to show-up as independent video devices on the same PC.

SecuritySpy - a multi-camera video surveillance application for the Macintosh.
SecuritySpy Users Manual

KABcam - use Network Camera to publish live pictures on web page

Motion is a program that monitors the video signal from one or more cameras and is able to detect if a significant part of the picture has changed; in other words, it can detect motion.

ZoneMinder a Linux video camera security and surveillance solution. ZoneMinder is intended for use in single or multi-camera video security

Motion JPEG Formats

Formats of JPEG cameras are usually a mime type of "x-mixed-replace"

Here is the Original LIVECAM Motion JPEG stream

GET /xxx.jpg HTTP/1.1 HTTP/1.0 200 OK Server: Digital Video Technology PUSH1 Expires: 0 Pragma: no-cache Content-Type: multipart/x-mixed-replace;boundary=ThisRandomString --ThisRandomString Content-Type: image/jpeg Content-Length: 6280 JPEG DATA STARTS HERE

Here is the Axis cameras

GET /axis-cgi/mjpg/video.cgi HTTP/1.1 HTTP/1.0 200 OK Connection: Close Server: Camd Content-Type: multipart/x-mixed-replace; boundary=--myboundary --myboundary Content-Type: image/jpeg JPEG DATA STARTS HERE
The lack of the Content-Lenght field mades recieving and decoding the access streams somewhat more complicated and more cpu intensive since you need to search for the end of the JPEG images.

Here is the Panasonic PL-C30A

GET /nphMotionJpeg?Resolution=320x240&Quality=Standard HTTP/1.1 Authorization: Basic sdkEllhfsdkjfasMGklj= HTTP/1.0 200 OK Content-type: multipart/x-mixed-replace; boundary=--myboundary --myboundary Content-length: 11034 Content-type: image/jpeg JPEG DATA STARTS HERE

Here is the AnexTek Camera

GET /cgi-bin/auto.cgi HTTP/1.0 HTTP/1.0 200 OK Date: Mon, 08 Aug 2005 10:02:28 GMT Server: Boa/0.92q Content-Type: multipart/x-mixed-replace; boundary=--CCT_Boundary --CCT_Boundary Content-Type: image/jpeg Content-Length: 9290 JPEG DATA STARTS HERE


Motion JPEG cameras

Axis
205, 206, 206M, 206W, 207, 210, 211, 211A, 213PTZ, 221, 231D, 232D, 241Q, 241QA, 2100, 2110, 2120, 2400, 2400+, 2420

D-Link
DCS-900, DCS-900W, DCS-1000, DCS-1000W, DCS-2000, DCS-2100, DCS-2100+, DCS-5300, DCS-5300W, DCS-5300G, DN-16001, DN-16002

Panasonic
BB-HCM381A, BL-C10A, BL-C30A, KX-HCM1, KX-HCM2, KX-HCM10, KX-HCM19, KX-HCM130, KX-HCM170, KX-HCM180, KX-HCM250, KX-HCM280, KX-HCM230, KX-HCM270, WV-NP472

Canon
VB-C10, VB-C10R, VB-C50i, VB-C50iR

Sony
SNC-Z20N, SNC-RZ30N3, SNC-DF40N, SNC-CS3N, SNC-M1, SNC-M3

Toshiba
IK-WB02A, IK-WB01A, IK-WB11A, IK-WR01A

JVC
VN-C2WU, VN-C30U

TrendNet
TV-IP100, TV-IP100W, TV-IP200, TV-IP200W

Vivotek
IP2111/2121, IP2112/2122, IP6112/IP6122, IP6114/IP6124, PZ6112/PZ6122

StarDot
NetCam, NetCam MP

Grandtec
WLAN Camera

Airlink
101 AIC250W

Hawking
HNC320W

AnexTek

Genius IpCam Secure 300 ?

Mobotix ?

Toshiba ?

Linksys ?


Misc camera notes:

Panasonic CGI Interface documentation

Directory of Misc JPEG information at Video Technology Magazine


Using JAVA for a Web Cam

Technical Note: Live video on a high hit rate site From AXIS site

Java Technology Forums - MJPG raw streaming video from Axis Cameras

"--myboundary" /usr/bin/perl axis

"cinfo.out_color_space" "JCS_YCBCR"
WM_CAP_DRIVER_CONNECT include typedef

VLC to stream to DSS using sdp file.
VLC string:
========VLC command======
vlc 'http://www.mycamera.com/nphMotionJpeg?Resolution=320x240&Quality=Standard' --sout '#transcode{vcodec=mp4v,vb=256,width=240,height=208,fps=30}:rtp{dst=127.0.0.1,ttl=20,sdp=file:///usr/local/movies/webcam.sdp,name=My Site}' --noaudio -vvv
======================= 

Devices that work with Motion


Axis
205: http://192.168.0.20/jpg/image.jpg
2100: http://192.168.0.20/axis-cgi/jpg/image.cgi
2400: http://192.168.0.20/cgi-bin/fullsize.jpg?camera=1

D-Link
DSC-900W: http://192.168.0.20/image.jpg, /VIDEO.CGI
DSC-2000: http://192.168.0.20/cgi-bin/video.jpg
DSC-2100: http://192.168.0.20/cgi-bin/video.jpg
DCS-5300W: http://192.168.0.20/cgi-bin/video.jpg

Genius
IpCam Secure 300: http://192.168.0.20/image.jpg

Panasonic
http://192.168.0.20/SnapshotJPEG?Resolution=320x240&Quality=Standard

Mobotix
http://192.168.0.20/record/current.jpg

Toshiba
http://192.168.0.20/__live.jpg?&&

Linksys
Linksys IP Cameras only have an mpeg stream and will probably not work with KABcam.