IP cameras in MJPEG mode
IP Cameras in MJPEG mode
Description
IP Cameras in MJPEG mode
TVideoGrabber supports natively the IP cameras in http Motion JPEG (MJPG) or JPG mode listed on this page, with their specific URL to use.
Important note:
By default the HTTP URLs in MJPEG mode are handled by TVideoGrabber, and not by the Datastead RTSP filter.
If the Datastead RTSP/RTMP/HTTP filter is installed and you want to delegate it the processing of the HTTP/MJPEG URLs, set:
VideoGrabber.PlayerForcedCodec = "DTSTDRTSP"
before invoking StartPreview() or StartRecording().
(to go back to the default behavior set VideoGrabber.PlayerForcedCodec="")
Starting the IP camera preview or recording
To use an IP camera as video source:
- set VideoSource = vs_IPCamera
- set IPCameraURL = the URL of the IP camera (the URL depends of the manufacturer)
- invoke SetAuthentication (at_IPCamera, ".username..", "..password...") if needed
- then invoke StartPreview() or StartRecording()
E.g.:
VideoGrabber.VideoSource = vs_IPCamera
VideoGrabber.IPCameraURL = "http://192.168.0.25/axis-cgi/mjpg/video.cgi";
VideoGrabber.SetAuthentication (at_IPCamera, "root", "admin");
VideoGrabber.RecordingInNativeFormat = true
VideoGrabber.RecordingMethod = rm_MP4
VideoGrabber.AudioRecording = true
VideoGrabber.StartRecording()
All the TVideoGrabber properties and events related to the video capture devices apply to the IP cameras.
E.g.:
VideoGrabber.VideoSource = vs_IPCamera
VideoGrabber.IPCameraURL = "http://x.x.x.x/axis-cgi/mjpg/video.cgi?camera=&resolution=640x480"
VideoGrabber.StartPreview
Note:
- x.x.x.x must be replaced by the IP or the host name of your IP camera
- if the IP camera does not stream on the default 80 port, you have to specify the port after the IP, e.g. for the port 6015:
http://x.x.x.x:6015/axis-cgi/mjpg/video.cgi?camera=&resolution=640x480
Authentication
If an authentication is required to connect to the IP camera, there are 2 ways to set an username and password required:
- either by invoking SetAuthentication (at_IPCamera, "...username...", "...password..." ) before connecting to the IP camera,
- either through the OnAuthenticationNeeded event that will occur when connecting if SetAuthentication has not been invoked yet.
Frame rate
By default TVideoGrabber tries to stream the IP cameras at their maximal speed.
It uses a default frame rate of 30 fps that is therefore theoretical.
You can limit the frame rate by specifying a lower value to the FrameRate property (e.g. FrameRate = 1 will receive one frame by second).
Connection TimeOut
The connection timeout is set by default to 10000 (10 seconds), and the receive timeout to 5000 (5 seconds).
You can modify them as needed by invoking SetIPCameraSetting.
PTZ control
You can send commands to IP cameras that include PTZ control by invoking SendIPCameraCommand.
E.g.:
SendIPCameraCommand ("http://x.x.x.x/axis-cgi/com/ptz.cgi?move=home")
SendIPCameraCommand ("http://x.x.x.x/axis-cgi/com/ptz.cgi?move=up")
tc...
List of the IP camera URL formats to use, depending of the manufacturer
This list is not exhaustive. If you don't know the URL to use for your IP camera, feel free to contact us at support@datastead.com.
The URLs below must begin by http://ip:port or http://hostname:port
Examples for the axis camera below, with the following URL format: /axis-cgi/mjpg/video.cgi.
1) let's suppose the camera IP is 212.45.2.14, the URL to use is:
e.g. on the default port 80: http://212.45.2.14/axis-cgi/mjpg/video.cgi
e.g. if setup on the port 10120: http://212.45.2.14:10120/axis-cgi/mjpg/video.cgi
2) let's suppose the camera host name is myipcamera.net, the URL to use is:
e.g. on the default port 80: http://myipcamera.net/axis-cgi/mjpg/video.cgi
e.g. if setup on the port 9580: http://myipcamera.net:9580/axis-cgi/mjpg/video.cgi
A-Linking
/GetData.cgi
Airlink
/mjpeg.cgi
/cgi/mjpg/mjpeg.cgi
/cgi/jpg/image.cgi
Airlive
/video.mjpg
/mjpg/video.mjpg
Airwave
/cgi-bin/pusher.cgi
Arecont
/mjpeg?res=full&x0=0&y0=0&x1=100%&y1=100%&quality=12&doublescan=0&fps=1&ver=HTTP/1.1
/image?res=half&x0=0&y0=0&x1=1600&y1=1200&quality=15&doublescan=0
Aviosys
/GetData.cgi
Aviosys 9060-I
/cgi-bin/Stream?Video?Authorization=
Axis IP camera in MJPEG format
/axis-cgi/mjpg/video.cgi
/axis-cgi/mjpg/video.cgi?resolution=352x240 (the resolution specified must be available on the IP camera, look at the camera video settings panel)
Axis (IP video server, several cameras) in MJPEG format
/axis-cgi/mjpg/video.cgi?camera=1&resolution=320x240
/axis-cgi/mjpg/video.cgi?camera=2&resolution=320x240
/axis-cgi/mjpg/video.cgi?camera=3&resolution=320x240
/axis-cgi/mjpg/video.cgi?camera=4&resolution=320x240
/axis-cgi/mjpg/video.cgi?camera=quad&resolution=704x576 (4 x 4 layout of the 4 inputs)
Bowya (here)
/video.cgi
Bosch
/snap.jpg
Canon (VB-C50, VB-C60, etc...)
/-wvhttp-01-/
/-wvhttp-01-/GetOneShot
/-wvhttp-01-/GetOneShot?frame_count=no_limit
/-wvhttp-01-/GetStillImage
Convision
/fullsize.push?camera=1&sleep=15
Digicom
/mjpeg.cgi
D-Link (DSC2121)
/video/mjpg.cgi
D-Link
/video/mjpg.cgi
/video.cgi
/mjpeg.cgi
/cgi-bin/video.jpg
/IMAGE.jpg
/cgi-bin/video.vam
/_gCVimage.jpg
EasyN
/video.cgi
/videostream.cgi
/videostream.cgi?resolution=8
/videostream.cgi?resolution=8&rate=13
/videostream.cgi?user=username&pwd=password
Edimax
/jpg/image.jpg
/mjpg/video.mjpg
/snapshot.cgi
Ego PT-200
/cgi-bin/sf.cgi
Foscam
/videostream.cgi
/snapshot.cgi
Fulicom FC-CR1060
/cgi-bin/sf.cgi
Gadspot
/Jpeg/CamImg.jpg
/GetData.cgi?Status=0
Goscam
/cgi-bin/Stream?Video?Acc=USER?Pwd=PASSWORD?webcamPWD=RootCookies00000
(replace USER and PASSWORD by their respective values)
Kingnow PT200
/cgi-bin/sf.cgi
Hamlet
http://www.hamletcom.com/ProductDetails.aspx?ProductCode_EQ_HNIPC30W
/mjpeg.cgi
Intellinet
/jpg/image.jpg
or
/temp/image.jpg
(you may have to enable the direct HTTP image access in the setup of the camera)
Intellinet NCS18
/jpg/image.jpg
IP Cam waterproof Infrared IP Camera: http://ipcam.en.ecplaza.net/11.asp
/snapshot.cgi
IQeye
/now.jpg?snap=spush
JVC (e.g. VN-X35U/235U)
/api/video?encode=jpeg&framerate=15&boundary=on
Linksys
/img/snapshot.cgi?size=2
/img/video.mjpeg
/img/mjpeg.cgi
(MJPEG mode activated with SendIPCameraCommand ("/adm/file.cgi?h_videotype=mjpeg&todo=save")
mms://x.x.x.x/img/video.asf
(ASF mode activated with SendIPCameraCommand ("/adm/file.cgi?h_videotype=mpeg4&todo=save")
Linudix
/cgi-bin/nph-update_4ch.cgi?ch=1
Lumenera
/cgi-bin/nph-video
Marmitek
/cgi/mjpg/mjpeg.cgi
Predefined positions:
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=Position1');
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=Position2');
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=home');
...
Pan/tilt control:
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=up');
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=right');
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=down');
videograbber1.SendIPCameraCommand('http://[IPaddress]/cgi/admin/ptctrl.cgi?action=move&Cmd=left');
Mobotix
/record/current.jpg
/control/faststream.jpg?stream=full
/faststream.jpg?stream=full&fps=1.0 (1 fps)
/faststream.jpg?stream=full&fps=3.0 (1 fps)
/faststream.jpg?stream=full&fps=0 (max frame rate)
Moxa
//cgi-bin/video.jpg
Panasonic
/nphMotionJpeg?Resolution=640x480&Quality=Clarity
/cgi-bin/nphContinuousServerPush
/SnapshotJPEG?mode=Refresh
/cgi-bin/camera
Pixord
/Getimage.cgi
/Getimage?camera=1&fmt=full (full size)
/Getimage?camera=1&fmt=qsif (half size)
/Getimage?camera=1&fmt=sif (quarter size)
PLANET ICA-108
/jpg/image.jpg
Qnap
/cgi/mjpg/mjpeg.cgi
Samsung SNB
/video?submenu=mjpg
/video?submenu=jpg
Sanyo
/liveimg.cgi?serverpush=1 (MJPEG mode)
/liveimg.cgi (Jpeg mode)
Sharkx
/stream.jpg
Silicon
/snapshot.cgi
Skyway Security
/GetData.cgi?Status=0
/Jpeg/CamImg.jpg
Sony
/image
/image?speed=0
/oneshotimage.jpg
Shenzen Sunsky S-NC-0201: http://www.sun-usb.com/product/details/S-NC-0201.htm
/cgi-bin/sf.cgi
Surecom
/mjpeg.cgi
Swann IP-3G ConnectCam 1000
/cgi/jpg/image.cgi
Topcom
http://www.topcom.net/fiche.asp?p_EQ_wirelessipcam2000
/mjpeg.cgi
Toshiba
/__live.jpg?&&&
getstream.cgi?10&10&&&10&0&0&0&0
TP-Link
/jpg/image.jpg
/video.mjpg
(the "/video.mjpg" MJPEG streaming is available only after disabling the RTSP streaming and rebooting the camera)
Trendnet: http://trendnet.com/products/products.asp?cat=48
/goform/video (e.g. TV-IP201W)
/goform/video2 (e.g. TV-IP201W)
/cgi/mjpg/mjpg.cgi (e.g. TV-IP410)
/GetData.cgi
/image.jpg
Vilar
/cgi-bin/sf.cgi
Vivotek
/video.mjpg (IP71.., IP 73.., VS71.. cameras. Be sure to enable the MJPG mode in the video settings)
/cgi-bin/video.jpg
/cgi-bin/viewer/video.jpg
Y-Cam
/stream.jpg
Zavio
/jpg/image.jpg
See Also
Opening a clip or an IP URL from a background thread without blocking the main thread Player features TOnThreadSync TThreadSyncPoint EnableThreadMode OnThreadSync