No video in ZM, but XAWTV works fine...

Forum for questions and support relating to the 1.24.x releases only.
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

No video in ZM, but XAWTV works fine...

Post by Big Daddy K »

Hi there,

I've been wrestling with zoneminder all day (originally tried to install from source on 64-bit Fedora 11, wasted an hour on that before finding a precomiled RPM which did it all for me - duh...)

Anyway, all's running fine now, ZM 1.24.2 is fired up, and I try to add my USB webcam, which has been confirmed as working with xawtv (despite a few odd errors):

[root@jellycomp ~]# xawtv -c /dev/video0
This is xawtv-3.95, running on Linux/x86_64 (2.6.30.5-43.fc11.x86_64)
xinerama 0: 1280x1024+0+0
WARNING: No DGA direct video mode for this display.
/dev/video0 [v4l2]: no overlay support
v4l-conf had some trouble, trying to continue anyway
Warning: Missing charsets in String to FontSet conversion
Warning: Missing charsets in String to FontSet conversion
Warning: Missing charsets in String to FontSet conversion
ioctl: VIDIOC_G_STD(std=0x3e7fe0ca98 [PAL_H,PAL_I,PAL_K,PAL_N,PAL_60,?,?,SECAM_K1,SECAM_L,?ATSC_8_VSB,ATSC_16_VSB,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)]): Invalid argument
ioctl: VIDIOC_S_STD(std=0x0 []): Invalid argument


Anyway, despite all that, I get a great, clear image - nice. :D

Then, however, I try zmu:

[root@jellycomp ~]# zmu -d /dev/video0 -q -v
Error, failed to query crop /dev/video0: Invalid argument

And forcing V4L v1 doesn't help much:

[root@jellycomp ~]# zmu -d /dev/video0 -q -v -V 1
Error, failed to get channel 0 attributes: Invalid argument

lsusb shows my device as:

Bus 001 Device 005: ID 0ac8:332d Z-Star Microelectronics Corp. Vega USB 2.0 Camera

Anyway, I figure as it's working in xawtv, I might as well give it a shot in zoneminder, so set up a new monitor, but from the moment I add it, the camera shows as red, and I get no image at all.

I did have trouble getting it to show video in xawtv previously, but found that was due to having another USB cam on the same USB bus, so disconnected the other.

So, I'm a bit stuck really! In case it's of interest - this camera works perfectly with the similar app "motion" - didn't need any config, drivers or anything, just worked the moment I fired the app up...

Any ideas?

Thanks!
BDK
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

Post by Big Daddy K »

By the way, I should also have said, my ultimate goal is to use MythTV's zoneminder plugin to run the whole show, taking feeds from several machines around the house. I saw someone on this forum mention that MPEG-streaming across a network is less resource-intensive than running ZM on multiple machines, so an option I considered was to use motion on this webcam to capture an MPEG stream, and use zoneminder on my MythTV box to collate all the feeds. However, I couldn't find an obvious way in zoneminder to add a monitor which is an MPEG stream, rather than an actual device.

Sorry, I know this is a completely different question to my original one, but either solution would do the job! :D
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

Post by Big Daddy K »

By the way, my messages log contains this info, in case it's helpful:

Sep 20 22:22:01 jellycomp zmdc[8218]: INF ['zmc -d /dev/video0' started at 09/09/20 22:22:01]
Sep 20 22:22:01 jellycomp zmdc[4811]: INF ['zmc -d /dev/video0' starting at 09/09/20 22:22:01, pid = 8218]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: INF [Debug Level = 0, Debug Log = <none>]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: INF [Starting Capture]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: FAT [Failed to set video format: Invalid argument]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: INF [Got signal 6 (Aborted), exiting and forcing backtrace]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Signal address is 0x202, no eip]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /lib64/libpthread.so.0 [0x3e80a0eee0]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /lib64/libc.so.6(gsignal+0x35) [0x3e7fe332f5]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /lib64/libc.so.6(abort+0x180) [0x3e7fe34b20]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /usr/bin/zmc [0x40d06e]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /usr/bin/zmc [0x41eda3]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /usr/bin/zmc [0x41f692]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /usr/bin/zmc [0x4052cc]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /lib64/libc.so.6(__libc_start_main+0xfd) [0x3e7fe1ea2d]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: ERR [Backtrace: /usr/bin/zmc [0x404ec9]]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: INF [Backtrace complete, please execute the following command for more information]
Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: INF [addr2line -e /usr/bin/zmc 0x3e80a0eee0 0x3e7fe332f5 0x3e7fe34b20 0x40d06e 0x41eda3 0x41f692 0x4052cc 0x3e7fe1ea2d 0x404ec9]


Blindly, I did try running the command mentioned above, which just outputted this:

[root@jellycomp log]# addr2line -e /usr/bin/zmc 0x3e80a0eee0 0x3e7fe332f5 0x3e7fe34b20 0x40d06e 0x41eda3 0x41f692 0x4052cc 0x3e7fe1ea2d 0x404ec9
??:0
??:0
??:0
??:0
??:0
??:0
??:0
??:0
??:0
hushpuppy
Posts: 147
Joined: Wed Aug 08, 2007 10:28 am

Post by hushpuppy »

Have you tried with /dev/video instead of /dev/video0 ?

Do you have any other video devices loaded that may be causing a conflict ?

Try lsusb & lspci to see whats there ?
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Big Daddy K wrote: Sep 20 22:22:01 jellycomp zmc_dvideo0[8218]: FAT [Failed to set video format: Invalid argument]
One of your settings are not supported by the camera or the camera or drivers for it don't support snapshots.

Fire up xawtv and try to take a snapshot as this duplicated the method ZM uses. If you get a snapshot, look for what might not be supported by the cam (size, palette, standard, etc)
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

Post by Big Daddy K »

Thanks for the responses (and sorry for the delay, damn day-job taking over again!!!)

Yes, I did try /dev/video instead of /dev/video0, but that device seems completely wrong, as I'm getting nothing back. Also, the cam works absolutely fine in Cheese Webcam booth (bundled with Fedora 11) and shows up there as /dev/video0, as well as showing up in xawtv under that device, so I guess that's correct...

As for conflicts, lsusb shows:

Bus 001 Device 005: ID 0ac8:332d Z-Star Microelectronics Corp. Vega USB 2.0 Camera
Bus 001 Device 004: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0a81:0101 Chesen Electronics Corp. Keyboard
Bus 002 Device 003: ID 0458:002e KYE Systems Corp. (Mouse Systems)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

So, not a lot to worry about there. Obviously the first one is the cam in question.

lspci shows nothing that would conflict.

I've just tried your suggestion about taking a snapshot using xawtv, and it worked perfectly - I can't see any issues with it at all.

So, this is what is really puzzling me - if xawtv works fine, why wouldn't ZM?

In case it's useful, I'm running 64-bit Fedora, so I wonder if it's something crazy like 64-bit xawtv working fine but 32-bit ZM missing some header files or something... No errors on configure or make to suggest that though, so I'm purely grasping at straws...
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

Post by Big Daddy K »

By the way, the "invalid" argument error might just be a red herring - I entered what I thought were the most logical settings into ZM, because I couldn't get zmu -q -v to show me what I really should be entering. So no doubt, the settings I entered into ZM were complete rubbish... :(
hushpuppy
Posts: 147
Joined: Wed Aug 08, 2007 10:28 am

Post by hushpuppy »

Hmm, seems you've got a bit of a puzzle here.

Try removing the driver for the camera, then reloading it (note, dont reboot rmmod then insmod ) and see what happens.

Have you tried zms with xlib_raw ?

> So, this is what is really puzzling me - if xawtv works fine, why wouldn't ZM?

A few things spring to mind,

1) xawtv or something else holding onto the driver somehow.

2) A misconfigured camera, try reducing depth, size, Format etc.

3) An error with an executable, an older version (or damaged) hanging around.

4) A dodgy driver .

5) I'd recommend trying a live cd to see if that works, before going any further, that way you can at least be sure that it's not a problem with your system.

6) try a different webcam.
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

To run zmu you might need to be a privileged user, try it with sudo or run zmu as root. If you have auth enabled, you will have to add the credentials which could also prevent you from getting an output. zmu --help will give you more info or check the wiki under FAQ as I have the syntax there as well.

The snapshot working is a good thing, it will work with ZM you just have to find the proper settings.
Big Daddy K
Posts: 9
Joined: Sun Sep 20, 2009 5:54 pm

Post by Big Daddy K »

Hi guys,

Thanks for the replies.

I did try a whole host of different things to get this working, but to no avail unfortunately. I have another plan now, around using mjpeg streaming instead, and am 99% of the way to a workable solution, so I'll start my whining on that subject on a different thread!

Thanks!
tburt11
Posts: 11
Joined: Sat Jun 16, 2007 4:20 pm

xawtv works OK, but zmu fails with crop error

Post by tburt11 »

I am in the same boat. This USB cam is a good inexpensive option for use with zoneminder. It works OK in xawtv, but fails when quieried with zmu. This does not seem right.

On the note of xawtv, my cam would work once, then fail until a machine power cycle. A review of another message board, suggested that the video card may be the culprit, and suggested using xawtv -nodga. This fixed the problem for xawtv.

I am running Debian Lenny on an AMD Athlon64/Opteron. The vid card is:
ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE] and zoneminder v1.24.2. This is a fresh virgin installation. Lenny has been out for a while, and I believe most of the bugs have been worked out.

I increased shared memory with:
kernel.shmall = 134217728
kernel.shmmax = 134217728

zmu -d /dev/video0 -q
error 22

zmu -d /dev/video0 -q -v
Error, failed to query crop /dev/video0: Invalid argument

zmu -d /dev/video0 -q -V1 -v
Error, failed to get channel 0 attributes: Invalid argument

Based on the good output from v4l-info:
------------------------------
general info
VIDIOC_QUERYCAP
driver : "uvcvideo"
card : "Vega USB 2.0 Camera."
bus_info : "0000:00:03.3"
version : 0.1.0
capabilities : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs
VIDIOC_ENUMINPUT(0)
index : 0
name : "Camera 1"
type : CAMERA
audioset : 0
tuner : 0
std : 0x0 []
status : 0x0 []

video capture
VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
index : 0
type : VIDEO_CAPTURE
flags : 0
description : "YUV 4:2:2 (YUYV)"
pixelformat : 0x56595559 [YUYV]
VIDIOC_G_FMT(VIDEO_CAPTURE)
type : VIDEO_CAPTURE
fmt.pix.width : 352
fmt.pix.height : 288
fmt.pix.pixelformat : 0x56595559 [YUYV]
fmt.pix.field : NONE
fmt.pix.bytesperline : 704
fmt.pix.sizeimage : 202752
fmt.pix.colorspace : unknown
fmt.pix.priv : 0

controls
VIDIOC_QUERYCTRL(BASE+0)
id : 9963776
type : INTEGER
name : "Brightness"
minimum : -16
maximum : 16
step : 1
default_value : 0
flags : 0
VIDIOC_QUERYCTRL(BASE+1)
id : 9963777
type : INTEGER
name : "Contrast"
minimum : 1
maximum : 32
step : 1
default_value : 16
flags : 0
VIDIOC_QUERYCTRL(BASE+2)
id : 9963778
type : INTEGER
name : "Saturation"
minimum : 0
maximum : 19
step : 1
default_value : 5
flags : 0
VIDIOC_QUERYCTRL(BASE+3)
id : 9963779
type : INTEGER
name : "Hue"
minimum : -45
maximum : 45
step : 1
default_value : 0
flags : 0

### video4linux device info [/dev/video0] ###
general info
VIDIOCGCAP
name : "Vega USB 2.0 Camera."
type : 0x1 [CAPTURE]
channels : 1
audios : 0
maxwidth : 1280
maxheight : 1024
minwidth : 48
minheight : 32

channels
ioctl VIDIOCGCHAN: Invalid argument

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
VIDIOCGPICT
brightness : 32768
hue : 32768
colour : 17246
contrast : 31710
whiteness : 36408
depth : 16
palette : YUYV

buffer
ioctl VIDIOCGFBUF: Invalid argument

window
VIDIOCGWIN
x : 0
y : 0
width : 352
height : 288
chromakey : 0
flags : 0

---------------------------------------------------------

I tried setting monitor ID to "1", palette to YUYV, width to 352 and height to 288. ZM gives me no image at all.

If I use w/h 320/280, I get a white box with an icon at least.

I have tried numerous palette and device format and nothing seems to work.

I have turned up debugging, but nothing there gives me a clue. But I have not yet downloaded the source and looked at what it is doing.

-------------------------------------

In summary, close.. very close... but still not working. If anybody can help, please contribute. This is a great little USB CAM.
gazoo
Posts: 45
Joined: Mon Nov 30, 2009 1:04 pm

Post by gazoo »

This might be a shot in the dark, I've already suggested to someone else on here. I would try messing with the permissions like so:

sudo chmod 777 /dev/video0

and see if that helps. If it was a permission problem thought, it would have shown up in a log somewhere (I forget which one..maybe messages?)
tburt11
Posts: 11
Joined: Sat Jun 16, 2007 4:20 pm

chmod 777 /dev/video0

Post by tburt11 »

I did this long ago and added to the zoneminder startup script.

Thanks anyway.
tburt11
Posts: 11
Joined: Sat Jun 16, 2007 4:20 pm

A little more info

Post by tburt11 »

OK, I have done some reading and looked briefly at the source code. Here is what I have learned.

The VEGA USB 2.0 Camera is using the uvcvideo driver. This driver does not support version 1 of the V4L interface. Therefore the command:
zmu -d /dev/video0 -q -V1 -v
makes little sense. Scratch that.

Looking at the error output from the alternate zmu command, we search the source for "failed to query crop" we find it on line 915 of zm_local_camera.cpp. Here the code is testing the success of the drivers effort to ask the hardware for a value VIDIOC_G_CROP. It failed to get a valid response. Earlier in the code, it requested VIDIOC_CROPCAP (the crop capabilities?) and got a valid answer.

So, we ask the hardware/driver for the crop capabilities and we get it, then we ask what is the current crop values (height and width) of the current image? and we get an error.

Could this be a driver issue? uvcvideo is a relatively new driver under development. On a scale of 1 to 10, video drivers are like a 9.5, compared to simple stuff like disk or memory drivers. Does anybody want to debug the uvcvideo code?

Oddly enough, it appears that the v4l_info app is able to query the crop capabilities properly. So maybe this is a zoneminder issue?
Last edited by tburt11 on Thu Dec 10, 2009 7:55 pm, edited 1 time in total.
tburt11
Posts: 11
Joined: Sat Jun 16, 2007 4:20 pm

verbose flag not propogated from zmu to zm_local_camera

Post by tburt11 »

In zmu, when the command line option (-v) is used, a verbose flag is set. When the GetCurrentSettings routine is called from an object in zm_local_camera.cpp, a structure is passed that should include the verbose setting.

However, all of the diagnostics that should print from zm_local_camera never appear. Either the value is not being passed, or the value is not being properly recognized.

It could be really helpful to have these values.

BTW.. I SHOULD MENTION...

I am running the default software from the .deb repositories. I have compiled nothing (yet). I guess that is next...
Locked