HDMI to USB Capture Card Roundup
I'm looking for a cheap USB3 HDMI capture card.
These aren't capture "cards" in the traditional sense, but that's the way I still think about them.
My last captures were done using a Brooktree / Conexant PCI bus card on an ancient Linux desktop, so the silicon miniaturization and cost reduction available for the price of a burger at Five Guys is still a bit mind blowing.
But that card at least blasted full uncompressed data into my system, doing a nice job when I wanted to capture as much lossless detail off of an analog medium as I could.
That said, the USB Video Class capture devices are a really mixed bag, and it's really hard to know which ones are worth anything at all, even if they are cheap as chips.
So in the spirit of my last big blog post on dodgy Chinese hardware (see: USB serial adapter shootout), here's a post about the various USB capture cards I could find on eBay.
I'll try to give these devices nicknames, and as I figure out what chips they actually run, I'll post that here too.
To help people cross-reference these devices with eBay, I'll copy in all of the marketing pictures I can find there to this blog post.
It's really not easy to find brand names on these devices, nobody from Shenzhen will stand behind them, and I am too cheap to get a Magewell or Startech device.
Dongle 0: The One I Already Have
This thing is a pile of garbage and has really poor capture quality.
Here's what is captured with ffmpeg:
$ ffmpeg -f v4l2 -input_format mjpeg -video_size 1920x1080 -i /dev/video5 -c:v copy -an -t 8 /tmp/output.mkv
ffmpeg version n8.1 Copyright (c) 2000-2026 the FFmpeg developers
built with gcc 15.2.1 (GCC) 20260209
libavutil 60. 26.100 / 60. 26.100
libavcodec 62. 28.100 / 62. 28.100
libavformat 62. 12.100 / 62. 12.100
libavdevice 62. 3.100 / 62. 3.100
libavfilter 11. 14.100 / 11. 14.100
libswscale 9. 5.100 / 9. 5.100
libswresample 6. 3.100 / 6. 3.100
Input #0, video4linux2,v4l2, from '/dev/video5':
Duration: N/A, start: 63809.788172, bitrate: N/A
Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 30 fps, 30 tbr, 1000k tbn, start 63809.788172
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Output #0, matroska, to '/tmp/output.mkv':
Metadata:
encoder : Lavf62.12.100
Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, q=2-31, 30 fps, 30 tbr, 1k tbn
Press [q] to stop, [?] for help
[out#0/matroska @ 0x55ca84505740] video:26080KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.041526%
frame= 239 fps= 33 q=-1.0 Lsize= 26091KiB time=00:00:08.04 bitrate=26579.0kbits/s speed=1.12x elapsed=0:00:07.15
$ ffprobe /tmp/output.mkv
ffprobe version n8.1 Copyright (c) 2007-2026 the FFmpeg developers
built with gcc 15.2.1 (GCC) 20260209
libavutil 60. 26.100 / 60. 26.100
libavcodec 62. 28.100 / 62. 28.100
libavformat 62. 12.100 / 62. 12.100
libavdevice 62. 3.100 / 62. 3.100
libavfilter 11. 14.100 / 11. 14.100
libswscale 9. 5.100 / 9. 5.100
libswresample 6. 3.100 / 6. 3.100
Input #0, matroska,webm, from '/tmp/output.mkv':
Metadata:
ENCODER : Lavf62.12.100
Duration: 00:00:08.01, start: 0.000000, bitrate: 26687 kb/s
Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 30 fps, 30 tbr, 1k tbn
Metadata:
DURATION : 00:00:08.009000000
Here's the capture, remuxed into a standard .mp4 file with mjpeg inside:
20260422-dongle-1-video-capture.mp4
The beginning of the capture is all black frames, so we skip them.
# First, see where the black frames end
ffmpeg -i /tmp/output.mkv -vf "blackdetect=d=0.01:pix_th=0.10" -an -f null - 2>&1 | grep blackdetect
[Parsed_blackdetect_0 @ 0x7f03cc003d80] black_start:0 black_end:2.276 black_duration:2.276
Then extract the first usable frame.
$ ffmpeg -ss 2.276 -i /tmp/output.mkv -frames:v 1 -c:v png /tmp/frame.png
...
Output #0, image2, to '/tmp/frame.png':
Metadata:
encoder : Lavf62.12.100
Stream #0:0: Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 1920x1080, q=2-31, 200 kb/s, 30 fps, 30 tbn
Metadata:
encoder : Lavc62.28.100 png
DURATION : 00:00:08.009000000
[out#0/image2 @ 0x562fd688a100] video:366KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.515x elapsed=0:00:00.06
The first usable frame of the video looks like this, converted to PNG, so all the JPEG artifacts are visible.
This is not great quality.
Clearly the coding chip in the dongle captures at a lower resolution or a high compression and everything fuzzes out.

I'd like to find a USB capture card that works better than this, ideally 1080p60.
Dongle 0: Technical Readout
Here's what dmesg says about it:
[37833.219860] usb 1-1: new high-speed USB device number 10 using xhci_hcd
[37833.349465] usb 1-1: New USB device found, idVendor=534d, idProduct=2109, bcdDevice=21.00
[37833.349475] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[37833.349479] usb 1-1: Product: USB3.0 HD VIDEO
[37833.349483] usb 1-1: Manufacturer: MACROSILICON
[37833.385869] uvcvideo 1-1:1.0: Found UVC 1.00 device USB3.0 HD VIDEO (534d:2109)
[37833.392342] hid-generic 0003:534D:2109.000B: hiddev96,hidraw1: USB HID v1.10 Device [MACROSILICON USB3.0 HD VIDEO] on usb-0000:64:00.3-1/input4
[37834.127009] usb 1-1: USB disconnect, device number 10
Here's what lsusb says about it, it enumerates as a crappy USB2 device.
$ lsusb
Bus 001 Device 026: ID 534d:2109 MacroSilicon USB3.0 HD VIDEO
$ lsusb -tv
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 001: Dev 015, If 0, Class=Video, Driver=uvcvideo, 480M
ID 534d:2109 MacroSilicon
|__ Port 001: Dev 015, If 1, Class=Video, Driver=uvcvideo, 480M
ID 534d:2109 MacroSilicon
|__ Port 001: Dev 015, If 2, Class=Audio, Driver=snd-usb-audio, 480M
ID 534d:2109 MacroSilicon
|__ Port 001: Dev 015, If 3, Class=Audio, Driver=snd-usb-audio, 480M
ID 534d:2109 MacroSilicon
|__ Port 001: Dev 015, If 4, Class=Human Interface Device, Driver=usbhid, 480M
ID 534d:2109 MacroSilicon
$ sudo lsusb -s 001:026 -v
Bus 001 Device 026: ID 534d:2109 MacroSilicon USB3.0 HD VIDEO
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 [unknown]
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x534d MacroSilicon
idProduct 0x2109 USB3.0 HD VIDEO
bcdDevice 21.00
iManufacturer 1 MACROSILICON
iProduct 2 USB3.0 HD VIDEO
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x04bb
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 2 USB3.0 HD VIDEO
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 2 USB3.0 HD VIDEO
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 0x0033
dwClockFrequency 48.000000MHz
bInCollection 1
baInterfaceNr( 0) 1
VideoControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Camera Sensor
bAssocTerminal 0
iTerminal 0
wObjectiveFocalLengthMin 0
wObjectiveFocalLengthMax 0
wOcularFocalLength 0
bControlSize 3
bmControls 0x00000000
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 2
bSourceID 1
wMaxMultiplier 0
bControlSize 2
bmControls 0x0000000f
Brightness
Contrast
Hue
Saturation
iProcessing 0
bmVideoStandards 0x09
None
SECAM - 625/50
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
VideoStreaming Interface Descriptor:
bLength 15
bDescriptorType 36
bDescriptorSubtype 1 (INPUT_HEADER)
bNumFormats 2
wTotalLength 0x03b1
bEndpointAddress 0x83 EP 3 IN
bmInfo 0
bTerminalLink 3
bStillCaptureMethod 0
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 0
bmaControls( 1) 0
VideoStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 6 (FORMAT_MJPEG)
bFormatIndex 1
bNumFrameDescriptors 11
bFlags 1
Fixed-size samples: Yes
bDefaultFrameIndex 1
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 1 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 1920
wHeight 1080
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 4147200
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 400000
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 2000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 1600
wHeight 1200
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 3840000
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 400000
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 2000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 1360
wHeight 768
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2088960
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 400000
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 2000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 4
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 1024
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2621440
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 400000
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 2000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 5
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 960
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2457600
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 200000
dwFrameInterval( 1) 333333
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 2000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 6
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 720
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 1843200
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 7
bmCapabilities 0x00
Still image unsupported
wWidth 1024
wHeight 768
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 1572864
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 8
bmCapabilities 0x00
Still image unsupported
wWidth 800
wHeight 600
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 960000
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 9
bmCapabilities 0x00
Still image unsupported
wWidth 720
wHeight 576
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 829440
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 10
bmCapabilities 0x00
Still image unsupported
wWidth 720
wHeight 480
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 691200
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 11
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 480
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 333333
bFrameIntervalType 5
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 200000
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 500000
dwFrameInterval( 4) 1000000
VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics 1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))
VideoStreaming Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED)
bFormatIndex 2
bNumFrameDescriptors 11
guidFormat {32595559-0000-0010-8000-00aa00389b71}
bBitsPerPixel 16
bDefaultFrameIndex 6
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 2 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 1920
wHeight 1080
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 4147200
dwDefaultFrameInterval 2000000
bFrameIntervalType 1
dwFrameInterval( 0) 2000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 1600
wHeight 1200
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 3840000
dwDefaultFrameInterval 2000000
bFrameIntervalType 1
dwFrameInterval( 0) 2000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 1360
wHeight 768
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2088960
dwDefaultFrameInterval 1250000
bFrameIntervalType 1
dwFrameInterval( 0) 1250000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 4
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 1024
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2621440
dwDefaultFrameInterval 1250000
bFrameIntervalType 1
dwFrameInterval( 0) 1250000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 5
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 960
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 2457600
dwDefaultFrameInterval 1250000
bFrameIntervalType 1
dwFrameInterval( 0) 1250000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 6
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 720
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 1843200
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 7
bmCapabilities 0x00
Still image unsupported
wWidth 1024
wHeight 768
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 1572864
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 8
bmCapabilities 0x00
Still image unsupported
wWidth 800
wHeight 600
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 960000
dwDefaultFrameInterval 500000
bFrameIntervalType 3
dwFrameInterval( 0) 500000
dwFrameInterval( 1) 1000000
dwFrameInterval( 2) 2000000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 9
bmCapabilities 0x00
Still image unsupported
wWidth 720
wHeight 576
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 829440
dwDefaultFrameInterval 400000
bFrameIntervalType 4
dwFrameInterval( 0) 400000
dwFrameInterval( 1) 500000
dwFrameInterval( 2) 1000000
dwFrameInterval( 3) 2000000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 10
bmCapabilities 0x00
Still image unsupported
wWidth 720
wHeight 480
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 691200
dwDefaultFrameInterval 333333
bFrameIntervalType 4
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 500000
dwFrameInterval( 2) 1000000
dwFrameInterval( 3) 2000000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 11
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 480
dwMinBitRate 768000
dwMaxBitRate 196608000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 333333
bFrameIntervalType 4
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 500000
dwFrameInterval( 2) 1000000
dwFrameInterval( 3) 2000000
VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics 1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0320 1x 800 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0c00 2x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x1400 3x 1024 bytes
bInterval 1
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 2
bInterfaceCount 2
bFunctionClass 1 Audio
bFunctionSubClass 1 Control Device
bFunctionProtocol 0
iFunction 4 USB3.0 AUDIO
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 4 USB3.0 AUDIO
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x0026
bInCollection 1
baInterfaceNr(0) 3
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0602 Digital Audio Interface
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls(0) 0x01
Mute Control
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 4 USB3.0 AUDIO
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 4 USB3.0 AUDIO
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 3
bDelay 0 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 96000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0100 1x 256 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 33 US
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 23
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 16
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 [unknown]
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Funny that the product string is USB3.0 HD VIDEO but it only runs at 480Mbps.
Here's what v4l2-ctl says about the device:
$ v4l2-ctl --list-devices
USB3.0 HD VIDEO: USB3.0 HD VIDE (usb-0000:64:00.3-2):
/dev/video4
/dev/video5
/dev/media2
$ v4l2-ctl -d /dev/video4 --list-formats
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'MJPG' (Motion-JPEG, compressed)
[1]: 'YUYV' (YUYV 4:2:2)
$ v4l2-ctl -d /dev/video5 --list-formats
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
$ v4l2-ctl -d /dev/video4 --all
Driver Info:
Driver name : uvcvideo
Card type : USB3.0 HD VIDEO: USB3.0 HD VIDE
Bus info : usb-0000:64:00.3-2
Driver version : 6.19.12
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : USB3.0 HD VIDEO: USB3.0 HD VIDE
Serial :
Bus info : usb-0000:64:00.3-2
Media version : 6.19.12
Hardware revision: 0x00002100 (8448)
Driver version : 6.19.12
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : USB3.0 HD VIDEO: USB3.0 HD VIDE
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'MJPG' (Motion-JPEG)
Field : None
Bytes per Line : 0
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Rec. 709
YCbCr/HSV Encoding: ITU-R 601
Quantization : Default (maps to Full 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: 30.000 (30/1)
Read buffers : 0
User Controls
brightness 0x00980900 (int) : min=-128 max=127 step=1 default=-11 value=-11 flags=has-min-max
contrast 0x00980901 (int) : min=0 max=255 step=1 default=148 value=148 flags=has-min-max
saturation 0x00980902 (int) : min=0 max=255 step=1 default=180 value=180 flags=has-min-max
hue 0x00980903 (int) : min=-128 max=127 step=1 default=0 value=0 flags=has-min-max
$ v4l2-ctl -d /dev/video5 --all
Driver Info:
Driver name : uvcvideo
Card type : USB3.0 HD VIDEO: USB3.0 HD VIDE
Bus info : usb-0000:64:00.3-2
Driver version : 6.19.12
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04a00000
Metadata Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : USB3.0 HD VIDEO: USB3.0 HD VIDE
Serial :
Bus info : usb-0000:64:00.3-2
Media version : 6.19.12
Hardware revision: 0x00002100 (8448)
Driver version : 6.19.12
Interface Info:
ID : 0x03000005
Type : V4L Video
Entity Info:
ID : 0x00000004 (4)
Name : USB3.0 HD VIDEO: USB3.0 HD VIDE
Function : V4L2 I/O
Priority: 2
Format Metadata Capture:
Sample Format : 'UVCH' (UVC Payload Header Metadata)
Buffer Size : 10240
Dongle 0: 2026 Edition
This might be the updated version of the dongle I have, with USB3 and 1080p60, but I'm not spending money to find out.

















Dongle 1: Rounded Metal, No Tail, USB A Plug
"4K Video Capture Card HDMI USB 1080P Live Video Streaming Game Recorder USB-C"
Dongle 0, the one I have similar to this, is also a USB 2.0 device, with 1080p30 resolution in MJPEG mode, and it looks really bad.
It's not even worth the 10 EUR they want for it.
Features:
* Unterstützte Eingangsauflösung: max.3840×2160@30Hz;
* Unterstützte Aufnahmeauflösung: max.1920×1080@30Hz im MJPEG-Format;
* Unterstützt 8/10/12 Bit tiefe Farbe;
* Unterstütztes Audioformat: L-PCM
* Unterstützt AWG26 HDMI-kompatibles Standardkabel: Eingang bis zu 15 Meter (1080P und weniger Auflösung);
* Unterstützt die meisten Erfassungssoftware wie VLC,OBS,Vmix, Potplay, Amcap usw.;
* Unterstützt Windows und MacOS;
* Entspricht dem USB-Video- und UVC-Standard;
* Entspricht dem USB-Audio-UAC-Standard;
* Ohne externe Stromversorgung, kompakt und tragbar.
* Abmessungen (L x B x H): ca.64x28x13 (mm)
Hinweis:
Anforderungen an die Konfiguration von Computerhardware
CPU: PC i5-3400 oder höher; NB i7-3537U 2,0 GHz oder höher
Grafikkarte: PC NVIDIA GT630 oder höher; NC NVIDIA GT735M oder höher
Speicher ausführen: 4G RAM








Somehow I don't think this will ever be qualified for telemedicine. Maybe in China?
In another listing, the pictures are similar but a little different.
For example, the screws are different.
And they've added a little USB-C to USB-A adapter cable, and rotated some of the images.



I must be tired of life, so I order one.

I don't know who's doing their media packs, but they're doing a great job! 😀
I like that it's sitting on a faux mirrored surface, but the top and bottom images are not inverted?


- ← Previous
Decluttering CachyOS