Thossaporn Phetruphant
asked this on September 08, 2011 21:59
Hi All,
I bought BC-H16480A and drop in Ubuutu box. Install latest solo6x10 driver from Bluecherry's git and Zoneminder 1.25.0.
Here is the set :
uname -a
Linux zoneminder 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
lspci
06:05.0 Multimedia video controller: Bluecherry BC-H16480A 16 port H.264 video and audio encoder / decoder
lsmod | grep solo
solo6x10 75131 3
snd_pcm 96625 3 snd_hda_intel,snd_hda_codec,solo6x10
videobuf_dma_sg 19307 1 solo6x10
v4l2_common 17647 1 solo6x10
videodev 82052 4 solo6x10,v4l2_common
videobuf_dma_contig 13464 1 solo6x10
videobuf_core 26135 3 solo6x10,videobuf_dma_sg,videobuf_dma_contig
snd 67382 16 snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_hwdep,solo6x10,snd_rawmidi,snd_pcm,snd_seq,snd_timer,snd_seq_device
I've tried xawtv and ffplay. Its show real time video on screen and
ffplay -f video4linux2 /dev/video2
FFplay version 0.6.2-4:0.6.2-1ubuntu1, Copyright (c) 2003-2010 the Libav developers
built on Mar 22 2011 15:55:04 with gcc 4.5.2
configuration: --extra-version=4:0.6.2-1ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
WARNING: library configuration mismatch
libpostproc configuration: --enable-gpl --enable-shared --enable-pthreads
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
[video4linux2 @ 0x22d4d90]Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video2':
Duration: N/A, start: 1315539772.951659, bitrate: 0 kb/s
Stream #0.0: Video: mjpeg, yuvj420p, 352x288, 0 kb/s, 25 tbr, 1000k tbn, 25 tbc
[ffplay_output @ 0x22d7db0]auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x22dac40]w:352 h:288 fmt:yuv420p
1315539780.19 A-V: 0.000 s:6.0 aq= 0KB vq= 76KB sq= 0B f=0/183
I'm pretty sure that ZMC can access to all video device from this:
ls -ltr /dev/video*
crwxrwxrwx+ 1 root video 81, 9 2011-09-08 16:28 /dev/video9
crwxrwxrwx+ 1 root video 81, 11 2011-09-08 16:28 /dev/video11
crwxrwxrwx+ 1 root video 81, 10 2011-09-08 16:28 /dev/video10
crwxrwxrwx+ 1 root video 81, 15 2011-09-08 16:28 /dev/video15
crwxrwxrwx+ 1 root video 81, 7 2011-09-08 16:28 /dev/video7
crwxrwxrwx+ 1 root video 81, 6 2011-09-08 16:28 /dev/video6
crwxrwxrwx+ 1 root video 81, 16 2011-09-08 16:28 /dev/video16
crwxrwxrwx+ 1 root video 81, 13 2011-09-08 16:28 /dev/video13
crwxrwxrwx+ 1 root video 81, 12 2011-09-08 16:28 /dev/video12
crwxrwxrwx+ 1 root video 81, 8 2011-09-08 16:28 /dev/video8
crwxrwxrwx+ 1 root video 81, 14 2011-09-08 16:28 /dev/video14
crwxrwxrwx+ 1 root video 81, 0 2011-09-08 16:28 /dev/video0
crwxrwxrwx+ 1 root video 81, 3 2011-09-08 18:25 /dev/video3
crwxrwxrwx+ 1 root video 81, 4 2011-09-08 18:25 /dev/video4
crwxrwxrwx+ 1 root video 81, 5 2011-09-08 18:25 /dev/video5
crwxrwxrwx+ 1 root video 81, 1 2011-09-09 10:42 /dev/video1
crwxrwxrwx+ 1 root video 81, 2 2011-09-09 10:42 /dev/video2
I've tried this also, all combination between this:
In Zoneminder, The source alway be RED and no image in monitor screen.
log file 'zmc -d /dev/videoX' exited abnormally, exit status 255
This problem never happen with the 878 chip capture card that we use before get Bluecherry on board.
Comments
I can't get the BC-H16480A to work with Zoneminder either. Have tried multiple versions of Fedora, both x86_64 and i386/686. The card is recognized (after patching the drivers from the git repo with some of the patches posted by other users), and I can use ffmpeg to capture the video from /dev/video1-16; so I know that the card and cameras all work, but Zoneminder shows the source as RED and no way to see any video stream. The Zoneminder log shows:
zmwatch 4285 ERR Can't get shared memory id '7a6d0003', 3: No such file or directory zmwatch.pl
zmfix 8937 ERR Can't stat /dev/video1: Permission denied zmfix.cpp 86
I have tried multiple versions of Zoneminder, both Fedora yum installed and compiled from source. Nothing seems to work.
Just got my system working! I was having problems getting the service started via the Zoneminder "state" link at the top center of the Zoneminder Console web screen. It turns out that even though I thought selinux was disabled, it was in Enforcing mode (check using "getenforce", set using "setenforce"). Setting to Permissive mode allowed the service to start.
Next, the camera settings; I'm using the cameras from one of those Costco Q-See systems. Not the best quality, and the software that runs on the original monitor system makes it a total piece of crap, but it was a cheap entry-level system that is pretty reliable and has IR illuminators on each camera. But I digress...
I think that ideally, I'd be using Source Type: Local (General Tab) with Device Path: /dev/video1 (Source Tab), and /dev/video2, /dev/video3, ... for each additional camera. I couldn't get this Source Type to work no matter which combination of Device Format, Capture Palette, ... I even know which settings to use from the output of zmu and v4l2-ctl; doesn't matter, didn't work (source showed RED on the Zoneminder Console screen).
What did work, was to use Source Type: Ffmpeg, with the same Device Paths: /dev/video1, /dev/video2, ...
The video quality isn't perfect, and I seem to be getting a frame rate of around 15 fps on each of the cameras (I think I should be able to get at least 25 fps). May be the result of going through an extra ffmpeg software process instead of using the video right from the capture card...? I'm hoping that this is a temporary configuration and that a future release of either H16480A firmware or Zoneminder will allow the "Local" Source Type to be used.
But I'm happy to be where I am considering the number of hours that I've put into this (... typical Linux project :)
The Zoneminder forums are currently down, but when they come back up search for 'bluecherry' and 'mjpeg'. There was a patch that was added to Zoneminder that makes use of the mjpeg feed from the Bluecherry cards. It might help increase frame rate, but sadly it does not make use of the encoded video.
These are the links I spoke of on the Zoneminder forums
http://www.zoneminder.com/forums/viewtopic.php?p=71333#p71333
http://www.zoneminder.com/forums/viewtopic.php?f=9&t=17652&...
Is any other configuration required? I'm using this card and switching to Ffmpeg in Zoneminder as the source as Spoonface suggests did not work for me. I assume I have the driver installed since I also have the Bluecherry DVR V2 beta installed. (could the two be conflicting with each other -- not that I'm running them both together, just that they are both installed).
I'm running Fedora 14 (i386) with ZoneMinder 1.25.0. I had a lot of problems with my system, starting with the LAN driver not being included with the OS (try installing/updating the LAN drivers, or anything for that matter, without a network :) The bluecherry driver wouldn't compile right out of the git repo, and I know I had to patch it before it would compile and install. Similarly, ZoneMinder wouldn't build from source and needed a patch. I think I could have used yum to install zm and avoid this patch, but the yum repo doesn't have the latest version.
I'm not sure what "Bluecherry DVR V2 beta" is; is that supposed to replace ZoneMinder (monitor software)?
A couple of things that you could try for additional info:
(should show something like "##:##.# Multimedia video controller: Bluecherry BC-H16480A 16 port H.264 video and audio encoder / decoder", otherwise I think that your machine is not recognizing the PCIe card)
(should show a few lines of output containing "solo6x10", otherwise I think your driver is not installed correctly)
(should show /dev/video0 through /dev/video16, otherwise might be another driver or card detection problem?)
If all of the above work as expected, try:
which should start ffmpeg, grabbing the stream from camera 1 and save it to test.mpg. Let ffmpeg capture for 10 or 20 seconds then press the 'q' key to stop it. If the test.mpg file plays fine, then you know that your hardware & drivers are good and it's a software configuration problem.