hardware:usb3-capture-devices

USB 3 UVC capture devices


(by https://twitter.com/GregDavill)

Input: HDMI (unencrypted)
Output: USB3 UVC profile
Note: For some reasons at least on linux with chrome / firefox a wrong color profile is selected if used in WebRTC chats. Possible workaround is video4linux loopback device

Supported Resolutions:

  • 480p (720 by 480 resolution, up to 60 fps) NTSC
  • 576p (720 by 576 resolution, up to 50 fps) PAL
  • 720p (1280 by 720 resolution, up to 60 fps)
  • 1080i (1920 by 1080 resolution, interlaced, up to 60 fps)
  • 1080p (1920 by 1080 resolution, up to 60 fps)
  • 2160p (3840 by 2160 resolution, up to 30 fps)
[49988.036656] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[49988.062295] usb 4-1: LPM exit latency is zeroed, disabling LPM.
[49988.064518] usb 4-1: New USB device found, idVendor=0fd9, idProduct=0066, bcdDevice= 0.00
[49988.064523] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=4
[49988.064526] usb 4-1: Product: Cam Link 4K
[49988.064528] usb 4-1: Manufacturer: Elgato
[49988.064531] usb 4-1: SerialNumber: 00025XXXXXXX
[49988.128832] mc: Linux media interface: v0.10
[49988.149883] videodev: Linux video capture interface: v2.00
[49988.153738] hidraw: raw HID events driver (C) Jiri Kosina
[49988.167268] usbcore: registered new interface driver usbhid
[49988.167270] usbhid: USB HID core driver
[49988.379429] usbcore: registered new interface driver snd-usb-audio
[49988.383797] uvcvideo: Found UVC 1.10 device Cam Link 4K (0fd9:0066)
[49988.394238] uvcvideo 4-1:1.0: Entity type for entity Processing 2 was not initialized!
[49988.394241] uvcvideo 4-1:1.0: Entity type for entity Input 1 was not initialized!
[49988.394602] input: Cam Link 4K: Cam Link 4K as /devices/pci0000:00/0000:00:1c.5/0000:06:00.0/usb4/4-1/4-1:1.0/input/input16
[49988.395544] usbcore: registered new interface driver uvcvideo
[49988.395545] USB Video Class driver (1.1.1)
[49988.432759] hid-generic 0003:0FD9:0066.0001: hiddev0,hidraw0: USB HID v1.01 Device [Elgato Cam Link 4K] on usb-0000:06:00.0-1/input2

ffprobe /dev/video0

Duration: N/A, start: 0.000000, bitrate: 2985984 kb/s
  Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 3840x2160, 2985984 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
  • Relatively cheap ~85€
  • MJPEG Output over USB2.0 (tested with 1920×1080 at 60fps)
  • rawvideo/yuyv422 over USB3.0 (also tested with 1920×1080 at 60fps)
  • Linux Supported
  • Audio / Video separate USB functions, sync could be problematic

On recent Kernel versions there seems to be an issue

[ 2673.261012] uvcvideo: Found UVC 1.00 device HDMI to U3 capture (1e4e:701f)
[ 2673.273403] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 2673.273850] uvcvideo 2-4.3:1.0: Entity type for entity Extension 4 was not initialized!
[ 2673.273856] uvcvideo 2-4.3:1.0: Entity type for entity Processing 3 was not initialized!
[ 2673.273862] uvcvideo 2-4.3:1.0: Entity type for entity Camera 1 was not initialized!
[ 2950.990076] usbcore: deregistering interface driver uvcvideo

a work arround for this is to load the kernel module with a special option

rmmod uvcvideo
modprobe uvcvideo quirks=0x100 trace=1

resulting in:

[ 2962.608502] uvcvideo: Probing generic UVC device 4.3
[ 2962.608732] uvcvideo: Found UVC 1.00 device HDMI to U3 capture (1e4e:701f)
[ 2962.608734] uvcvideo: Forcing device quirks to 0x100 by module parameter for testing purpose.
[ 2962.608735] uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.
[ 2962.608742] uvcvideo: Scanning UVC chain: OT 2 <- XU 4 <- PU 3 <- IT 1
[ 2962.608750] uvcvideo: Found a valid video chain (1 -> 2).
[ 2962.694501] uvcvideo 2-4.3:1.0: Entity type for entity Extension 4 was not initialized!
[ 2962.694509] uvcvideo 2-4.3:1.0: Entity type for entity Processing 3 was not initialized!
[ 2962.694513] uvcvideo 2-4.3:1.0: Entity type for entity Camera 1 was not initialized!
[ 2962.694621] uvcvideo: UVC device initialized.
[131873.503147] usb 2-1: new SuperSpeed USB device number 10 using xhci_hcd
[131873.522458] usb 2-1: New USB device found, idVendor=1e4e, idProduct=701f
[131873.522469] usb 2-1: New USB device strings: Mfr=6, Product=7, SerialNumber=3
[131873.522477] usb 2-1: Product: HDMI to U3 capture
[131873.522484] usb 2-1: Manufacturer: Video Grabber
[131873.522492] usb 2-1: SerialNumber: 20000130041415
[131873.527655] uvcvideo: Found UVC 1.00 device HDMI to U3 capture (1e4e:701f)
[131873.613870] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[131873.614480] uvcvideo 2-1:1.0: Entity type for entity Extension 4 was not initialized!
[131873.614492] uvcvideo 2-1:1.0: Entity type for entity Processing 3 was not initialized!
[131873.614501] uvcvideo 2-1:1.0: Entity type for entity Camera 1 was not initialized!
[131873.614514] media: could not get a free minor
Bus 002 Device 011: ID 1e4e:701f Cubeternet 
Listing available devices:
  video0   HDMI to U3 capture: USB Video D
    Media controller device: /dev/media0
    Entity 1: HDMI to U3 capture: USB Video D. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
      Device node
      Entity: 1, Pad 0, Flags: 1

Left: Capture over USB2.0, Middle: Capture over USB3.0, Right: Screenshot of source material

  • Relatively cheap ~65€
  • HDMI pass through
  • MJPEG Output over USB2.0 (tested with 1920×1080 at 60fps)
  • rawvideo/yuyv422 over USB3.0 (also tested with 1920×1080 at 60fps)
  • Linux Supported
  • Audio / Video separate USB functions, sync could be problematic

(no HDMI input connected)

[129685.403946] usb 4-2.1: new SuperSpeed Gen 1 USB device number 15 using xhci_hcd
[129685.432736] usb 4-2.1: New USB device found, idVendor=1e4e, idProduct=7016, bcdDevice= 1.00
[129685.432744] usb 4-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=3
[129685.432749] usb 4-2.1: SerialNumber: 20000130041415
[129685.433705] uvcvideo: Found UVC 1.00 device <unnamed> (1e4e:7016)
[129685.514256] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[129685.515346] uvcvideo 4-2.1:1.0: Entity type for entity Extension 4 was not initialized!
[129685.515351] uvcvideo 4-2.1:1.0: Entity type for entity Processing 3 was not initialized!
[129685.515354] uvcvideo 4-2.1:1.0: Entity type for entity Camera 1 was not initialized!
[129687.484255] usb 4-2.1: USB disconnect, device number 15
[129687.484936] usb 4-2.1: cannot submit urb (err = -19)
[129688.143966] usb 4-2.1: new SuperSpeed Gen 1 USB device number 16 using xhci_hcd
[129688.172442] usb 4-2.1: New USB device found, idVendor=1e4e, idProduct=7016, bcdDevice= 1.00
[129688.172450] usb 4-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=3
[129688.172455] usb 4-2.1: SerialNumber: 20000130041415
[129688.173255] uvcvideo: Found UVC 1.00 device <unnamed> (1e4e:7016)
[129688.188017] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[129688.189063] uvcvideo 4-2.1:1.0: Entity type for entity Extension 4 was not initialized!
[129688.189067] uvcvideo 4-2.1:1.0: Entity type for entity Processing 3 was not initialized!
[129688.189071] uvcvideo 4-2.1:1.0: Entity type for entity Camera 1 was not initialized!

lsusb

Bus 004 Device 017: ID 1e4e:7016 Cubeternet 

[ 9996.758480] usb 2-4.3: new SuperSpeed Gen 1 USB device number 10 using xhci_hcd
[ 9996.784467] usb 2-4.3: New USB device found, idVendor=1bcf, idProduct=2c99, bcdDevice= 2.00
[ 9996.784473] usb 2-4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 9996.784476] usb 2-4.3: Product: FHD Capture
[ 9996.784479] usb 2-4.3: Manufacturer: VXIS Inc
[ 9996.793423] uvcvideo: Found UVC 1.00 device FHD Capture (1bcf:2c99)
[ 9996.796572] usb 2-4.3: Disable of device-initiated U1 failed.
[ 9996.797122] usb 2-4.3: Disable of device-initiated U2 failed.
[ 9996.806761] uvcvideo 2-4.3:1.0: Entity type for entity Extension 4 was not initialized!
[ 9996.806766] uvcvideo 2-4.3:1.0: Entity type for entity Extension 3 was not initialized!
[ 9996.806769] uvcvideo 2-4.3:1.0: Entity type for entity Processing 2 was not initialized!
[ 9996.806772] uvcvideo 2-4.3:1.0: Entity type for entity Camera 1 was not initialized!
[ 9996.807094] input: FHD Capture: FHD Capture as /devices/pci0000:00/0000:00:14.0/usb2/2-4/2-4.3/2-4.3:1.0/input/input31
[ 9996.809587] usb 2-4.3: Disable of device-initiated U1 failed.
[ 9996.809914] usb 2-4.3: Disable of device-initiated U2 failed.
[ 9996.813223] usb 2-4.3: 3:1: cannot get freq at ep 0x86
[ 9996.813481] usb 2-4.3: Disable of device-initiated U1 failed.

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Driver Info:
	Driver name      : uvcvideo
	Card type        : FHD Capture: FHD Capture
	Bus info         : usb-0000:00:14.0-4.3
	Driver version   : 5.4.30
	Capabilities     : 0x84a00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 1920/1080
	Pixel Format      : 'YUYV' (YUYV 4:2:2)
	Field             : None
	Bytes per Line    : 3840
	Size Image        : 4147200
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Limited Range)
	Flags             : 
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 1920, Height 1080
	Default     : Left 0, Top 0, Width 1920, Height 1080
	Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 60.000 (60/1)
	Read buffers     : 0
                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=137
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=128
                            hue 0x00980903 (int)    : min=-32 max=31 step=1 default=0 value=0
  • hardware/usb3-capture-devices.txt
  • Last modified: 2020/07/22 15:25
  • by derpeter