2in1 - AMC as mjpeg player in IE and zms as stream proxy
Posted: Tue Apr 10, 2007 6:54 pm
Hi
Well, subject almost says it all. 2 features in one patch (I'm just too lazy to split those two up):
1) IE is known not to play mjpeg streams natively. cambozola.jar is used in original ZM distro, but this neat java app is lagging behind the actual image from camera. Something more native was needed to play mjpegs in IE. As I am interested almost only in Axis cameras I went for Axis Media Control redstributable cab that can be found at http://www.axis.com/techsup/cam_servers/dev/activex.htm. Just download SDK, install and look for AMC.cab in Redist folder. Copy it to ZM html root or any other location you like, configure ZM_PATH_AMC in zm->options->images, check ZM_OPT_AMC at the very same location and off you go.
This is "AMC as mjpeg player in IE" part of patch.
2) Mjpeg streaming clogs up servers processor quite a bit even if using simd optimized jpeglib. Idea is to stream as directly as possible form camera, so that no recompression needs to be done on the server. The patch turns zms in mjpeg stream proxy if instructed so by options in Monitor setup. Three new config fields are added to the Source tab of monitor configuration for Remote cameras - "Axis Direct Stream", "Path template for direct streaming" and "Supported Resolutions". First just enables or disables the feature for given camera. Second field is used as template for building image request path, it has two placeholders, one for resolution - "%1$s" and second for fps - "%2$d". Third field contains list of supported resolutions and their respective pixel counts. This field can not be edited directly because of specific format requirements, so there is Edit button and special form that helps with that. In the resolution list edit form column Resolution contains string as it should be placed in request path (the template mentioned earlier) and passed to the camera, column pixels contains total pixel count for given resolution. Pixel count is used to calculate what resolution should be requested from camera. The resolution list should be in ascending order, ie smallest resolution goes first. For an example choose some Axis IP camera preset. And again, as I am interested mostly in Axis cameras, all the stuff has Axis name in it
This is "zms as stream proxy" part of patch. I know that actual code of proxy is not exactly where it should be, but that is no problem of mine at the moment Btw, this might work for almost any mjpeg outputting camera.
Before you try and download, disclaimer, there is no warranty that this stuff will or will not work for you. I can not be held liable for anything related to ZoneMinder and this patch in particular. As soon as you download the patch you are on your own. And of course, YMMV.
http://inoperative/nv1.patch.gz
This is temporary location, therefore I do not know for how long the file will be there. OTOH, there is nothing more permanent than temporary, so it might stay there forever
Patch was made possible in collaboration with company New Vision
Almost forgot - this is for zm 1.22.3
New download location:
http://www.o6.lv/files/nv1.patch.gz
Well, subject almost says it all. 2 features in one patch (I'm just too lazy to split those two up):
1) IE is known not to play mjpeg streams natively. cambozola.jar is used in original ZM distro, but this neat java app is lagging behind the actual image from camera. Something more native was needed to play mjpegs in IE. As I am interested almost only in Axis cameras I went for Axis Media Control redstributable cab that can be found at http://www.axis.com/techsup/cam_servers/dev/activex.htm. Just download SDK, install and look for AMC.cab in Redist folder. Copy it to ZM html root or any other location you like, configure ZM_PATH_AMC in zm->options->images, check ZM_OPT_AMC at the very same location and off you go.
This is "AMC as mjpeg player in IE" part of patch.
2) Mjpeg streaming clogs up servers processor quite a bit even if using simd optimized jpeglib. Idea is to stream as directly as possible form camera, so that no recompression needs to be done on the server. The patch turns zms in mjpeg stream proxy if instructed so by options in Monitor setup. Three new config fields are added to the Source tab of monitor configuration for Remote cameras - "Axis Direct Stream", "Path template for direct streaming" and "Supported Resolutions". First just enables or disables the feature for given camera. Second field is used as template for building image request path, it has two placeholders, one for resolution - "%1$s" and second for fps - "%2$d". Third field contains list of supported resolutions and their respective pixel counts. This field can not be edited directly because of specific format requirements, so there is Edit button and special form that helps with that. In the resolution list edit form column Resolution contains string as it should be placed in request path (the template mentioned earlier) and passed to the camera, column pixels contains total pixel count for given resolution. Pixel count is used to calculate what resolution should be requested from camera. The resolution list should be in ascending order, ie smallest resolution goes first. For an example choose some Axis IP camera preset. And again, as I am interested mostly in Axis cameras, all the stuff has Axis name in it
This is "zms as stream proxy" part of patch. I know that actual code of proxy is not exactly where it should be, but that is no problem of mine at the moment Btw, this might work for almost any mjpeg outputting camera.
Before you try and download, disclaimer, there is no warranty that this stuff will or will not work for you. I can not be held liable for anything related to ZoneMinder and this patch in particular. As soon as you download the patch you are on your own. And of course, YMMV.
http://inoperative/nv1.patch.gz
This is temporary location, therefore I do not know for how long the file will be there. OTOH, there is nothing more permanent than temporary, so it might stay there forever
Patch was made possible in collaboration with company New Vision
Almost forgot - this is for zm 1.22.3
New download location:
http://www.o6.lv/files/nv1.patch.gz