Hopefully others in this thread can help you out if you hit issues.
What is does?
It is two separate features that have been merged into a single branch:
1. h264 Passthrough - Passes FFmpeg cameras h264 packets direct to an mp4 container. Best used in Record mode. By it's nature you must have a h264 capable camera using FFmpeg source type, and if you want to record audio it must be compatible with mp4 container, and if you want that to playback in a browser has to be AAC.
2. h264 Encode - Takes any camera sources jpegs and encodes them to h264. Would not advise this for h264 capable camera as you would be decoding and encoding back to same format. It is good for old mpeg cameras etc. But you take a cpu hit on the h264 encoding.
What it still needs
1. Some sort of buffer for h264 packets, so we can do Modect and other functions that only record video on demand. Currently video starts recording but has to wait for a keyframe before picture is established.
2. Transcode Audio to AAC so we can play back via browsers
3. Enabled streaming live video without decoding to jpegs
4. Stop decoding jpegs all together.
5. Fix Timeline view
Installing
If you have some non h264 capable cameras and want to use the h264 encode function you need to install libx264-dev and libmp4v2-dev or whatever are your distro equivalents. I have added these to the ubuntu1604 debian folder already so if you use ubuntu you will be fine.
To install you need to build a package until I get an auto build making the PPA and RPM's
Deb
Building Package from Source
Only difference is you need to tell the script to use the feature branch, so when install guide talks about master and stable commands use this instead.
Code: Select all
./do_debian_package.sh `lsb_release -a 2>/dev/null | grep Codename | awk '{print $2}'` `date +%Y%m%d`01 local feature-h264-videostorage
How to build custom zoneminder package
When you get to the How to modify the source prior to build section
You will need to checkout the branch also, so add that command to end of this section of commands.
Code: Select all
cd
git clone https://github.com/ZoneMinder/ZoneMinder
cd ZoneMinder
git submodule init
git submodule update
git checkout feature-h264-videostorage
Once you have your package head back to standard install guides and substitute the standard install process with your new custom built package.
Using it
The branch adds a new Storage tab to monitor setup Save Jpegs
Decide whether or not to keep ZoneMinder's standard jpegs. Note: Currently we are still decoding h264 to enable the live streaming function of ZoneMinder.
Video Writer
Choose h264 Passthrough or h264 Encode, refer to What it Does above for which to choose.
Optional Encoder Parameters
For h264 Encode option you can play with the parameters
Whether to store the audio stream when saving an event.
Do that, but if you turn this on and start getting issues probably some problem with your stream, so turn it off again.
I will update this thread as people give feedback etc.