Discussion:
[linux-uvc-devel] Corrupted video from Arkmicro UVC USB device
Stuart Langridge
2016-06-20 11:25:23 UTC
Permalink
Hey, UVC people!

I have an Arkmicro UVC device, naming itself "USB Audio Video VHS to DVD
Capture Card Adapter Converter", which is basically an adaptor with a USB
plug on one end and three composite video cables (red, white, yellow) on
the other, which I want to use to capture video from an old camcorder. When
I plug in the device, it's recognised and shows up as a V4L device, and I
can capture video from it, but that video is corrupted; drops frames, loses
colour, no sound, and the like. An example of the corrupted video is at
https://kryogenix.org/random/2016-06-18-165500.webm.

The camcorder and leads are not the problem; I have used them to play the
video on an actual television and it is not corrupted.

I have tried using both Cheese (which saved the captured video as the above
webm) and mplayer (with "mplayer tv:// -tv device=/dev/video1") and see the
same corruption.

The device lists itself in lsusb as:
Bus 003 Device 053: ID 18ec:5850 Arkmicro Technologies Inc.
$ lsusb -d 18ec:5850 -v | grep "14 Video"
Couldn't open device, some information will be missing
bFunctionClass 14 Video
bInterfaceClass 14 Video
(repeat this bInterfaceClass line 13 more times)

When using mplayer to capture/stream from the camcorder, it does output a
few things:
Playing tv://.
Detected file format: TV
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <***@zpr.uni-koeln.de>
comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM
was used instead.
Selected device: USB2.0 PC CAMERA
Capabilities: video capture streaming
supported norms:
inputs: 0 = Camera 1;
Current input: 0
Current format: MJPEG
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Inappropriate ioctl for device
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object
file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
[ass] auto-open
Selected video codec: MJPEG (Motion JPEG) [libavcodec]
Audio: no sound
Starting playback...
VIDEO: 640x480 30.000 fps 0.0 kbps ( 0.0 kB/s)
VO: [xv] 640x480 => 640x480 Planar YV12
V: 0.0 114/114 ??% ??% ??,?% 0 0
v4l2: ioctl set mute failed: Invalid argument
v4l2: 115 frames successfully processed, -985 frames dropped.

dmesg does list some messages when plugging the device in:
[351398.659062] usb 3-12: new high-speed USB device number 53 using xhci_hcd
[351398.853862] usb 3-12: New USB device found, idVendor=18ec,
idProduct=5850
[351398.853869] usb 3-12: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[351398.853872] usb 3-12: Product: USB2.0 PC CAMERA
[351398.853874] usb 3-12: Manufacturer: ARKMICRO
[351398.854628] uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (18ec:5850)
[351398.862840] uvcvideo: UVC non compliance - GET_DEF(PROBE) not
supported. Enabling workaround.
[351398.863294] input: USB2.0 PC CAMERA as
/devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12:1.0/input/input26
[351398.864986] 53:3:1: cannot get freq at ep 0x82
[351398.869336] usb_audio: Warning! Unlikely big volume range (=11903),
cval->res is probably wrong.
[351398.869342] usb_audio: [2] FU [Mic Capture Volume] ch = 2, val =
384/12287/1<4>[351401.952954] 53:3:1: cannot get freq at ep 0x82
[351401.953117] 53:3:1: cannot get freq at ep 0x82
[351404.967248] 53:3:1: cannot get freq at ep 0x82
[351404.967396] 53:3:1: cannot get freq at ep 0x82

I'm using Ubuntu 14.04:
$ uname -a
Linux dawn 3.13.0-88-generic #135-Ubuntu SMP Wed Jun 8 21:10:42 UTC 2016
x86_64 x86_64 x86_64 GNU/Linux

Is there something I can do to attempt to resolve this? Or is the problem
that the hardware itself is likely broken?

sil
--
New Year's Day --
everything is in blossom!
I feel about average.
-- Kobayashi Issa
Loading...