Bluecherry releases its version 2 driver (GPL)

Update 6/19/2010

Further information on the driver and using the card can be found on Ben Collins blog (here). Check back next week for an update on this site for sample code for saving MPEG-4 streams to the disk.

As previously mentioned we have been working hard over the past few months on the driver for version 2 of our Linux hardware compression card. Since version 2 is a complete rewrite of our DVR software we naturally wanted to start with a clean driver, one that was written from scratch. So, we leveraged the Linux kernel’s API for Video (Video4Linux) and Audio (ALSA). This effectively puts Bluecherry as the first company to produce a multi-input MPEG-4 hardware compression GPL driver written around the Linux kernel’s API.

As mentioned in Ben Collin’s personal blog today we published version 2 of this driver on git.kernel.org. While we have a few features we still plan to add to the driver along with the Video4Linux API, but it’s close enough that we feel comfortable releasing the driver to the community. The driver was originally intended for version 2 of the Bluecherry surveillance application, however we felt that other open source applications could make use of the time and effort we put into the driver.

This driver will load up to 16 MPEG-4 and JPEG encoders, 16 audio (ALSA) devices, along with a uncompressed YUV display port. This display port allows you to change the composite video output, for example you can have a quad view (or more) of attached cameras, also known as a “4-UP”. This can actually save hundreds of dollars, since technically you would not need an external video quad or mulitplexer to combine separate cameras into one video output.

The driver is really meant for those with a bit of technical knowledge in using the Video4Linux API, since (currently) most Video4Linux expect to receive MPEG-2 / JPEG / YUV from the Video4Linux API. This means that the majority of open source applications will only be able to access the JPEG feed off the card. It should be noted that the FPS on each port in JPEG and MPEG-4 are dedicated. This basically means that there’s no switching of inputs, so applications can expect to receive a full 7.5FPS @ 704×480 (Using 16 channels). Making use of the MPEG-4 stream would require some modification in the Video4Linux support in the user-space application, or piping the MPEG-4 stream into an application that supports MPEG-4 streams.

Note: This currently only covers our MPEG-4 cards. We will be adding support for a seperate line of H.264 in the next month, so check back for an updated driver.

An example of the kernel log when the driver is loaded is below:

[ 10.867392] solo6010 0000:03:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 10.868562] solo6010 0000:03:01.0: Enabled 2 i2c adapters
[ 14.328870] solo6010 0000:03:01.0: Initialized 4 tw28xx chips: tw2864[4]
[ 14.328943] solo6010 0000:03:01.0: Display as /dev/video0 with 16 inputs (5 extended)
[ 14.382318] solo6010 0000:03:01.0: Encoders as /dev/video1-16
[ 14.382666] solo6010 0000:03:01.0: Alsa sound card as Softlogic0

lspci -v:

03:01.0 Multimedia video controller: Bluecherry BC-16480A MPEG4 16 port audio video encoder / decoder

Technical specifications:

Video Information

Inputs

Up to 16 (BNC)
Outputs1 (Composite)
Video Resolution(s)704×480 @ 120FPS

704×240 @ 240FPS

352×240 @ 480FPS

Video CompressionMPEG-4
Audio information
InputsUp to 16 (RCA)
Outputs1 (Composite)
Audio Sampling Rate8Khz
Audio CodecG.723

Expected retail price of these cards, without our software, is $200 for the 4 port, $230 for the 8 port, and $375 for the 16 port card. Quantity discounts will apply

Each card comes with a one year warranty, a thirty day no hassle return, and access / support of our GPL driver. Bluecherry is a registered licensee of the MPEG-4 Visual patent license (MPEGLA)

More information:

Bug tracker: http://improve.bluecherrydvr.com/projects/solo6010-v2