Cheap USB 3.0 Capture HDMI Linux/Windows Review

31 Dec 2017


We've been looking for an HDMI capture card that

  • works on Linux;
  • has low latency;
  • and has an USB interface so it can be used with our laptops on stage.

Our main use for this would be to capture what's happening live onstage and display it on a projector.

A cheap option

Magewell have a USB 3.0 capture card, USB Capture HDMI, that is available at the time of writing for around £300. However, being the enterprising sort, we found very similar looking unbranded cards for around £100 from various Chinese suppliers.

So for £112.54 + postage + import tax, we ordered one.

The device

N.B. we purchased from TomTop and it was sold as the HDV-UH60 USB 3.0 Capture H to USB3.0 Video Capture Dongle HD.

Does it work?

Yes. On Arch Linux and Windows 7. Note: on Arch Linux one of us had problems with the video freezing, although we couldn't reproduce it on the other one's laptop.

But - it is cheap for a reason. The audio quality seemed to be fine, but the video was not true HD and suffered from latency.

High latency and low quality video

Linux latency

image of phone stop watch app and the captured feed. Showing Linux latency is around 200ms There's about 200ms of latency to the input on linux, which is too high to feel realtime. Using qv4l2 to open the device.

Windows Latency

image of phone stop watch app and the captured feed. Showing Windows 7 latency is around 200ms Again the same, around 200ms of latency. This was captured using PotPlayer.

Video quality

The video quality isn't true HD. This is some weird hack to fill the screen with pixels.

Here's a screen shot of a frame coming from qv4l2, (I had exactly the same results on Windows 7, so it does not seem to be an OS/driver issue).

1080p capture of Lloyd with jagged lines due to artefacts in the capture
device full rez image

Something's not quite right - let's zoom in on some of the straight lines, e.g., Lloyd's glasses.

Zoomed in image

Not good - we can see some strange jagged, zig-zag artefacts on the glasses frame.

Is it interlaced? Let's use GIMP's deinterlace filter.

Deinterlaced image

That didn't fix it, just made it a different kind of blocky.

Let's zoom in further and look at these artefacts in the original image.

Close up of ABAB pattern

Now we can see that a pattern in these artefacts, it seems that there are two rows of pixels alternating in an ABAB pattern.

Close up of ABAB pattern with labels

Let's try shifting it to be an AABB pattern using a bit of python.

import numpy as np
import matplotlib.pyplot as plt
from scipy import misc

image = misc.imread('uvc-snapshot.png')

image_shifted = np.array(image, copy=True)

for i, row in enumerate(image):
    sub_index = i % 4
    if sub_index == 0 or sub_index == 3:
        next_index = i
    elif sub_index == 1:
        next_index = i + 1
    elif sub_index == 2:
        next_index = i - 1

    next_index = min(next_index, image_shifted.shape[0] - 1)
    image_shifted[next_index] = row

misc.imsave('figure.png', image_shifted)

plt.imshow(image_shifted)
plt.show()

Which outputs something like this...

Python processing result full rez image

Which has better looking zig-zags, but still doesn't look right. It would also need to be implemented as a filter in native to be feasible to run in realtime.

A close up of the new AABB pattern

Close up of AABB pattern after python processing

Overall it seems that they are cheating by only using half the horizontal resolution (so at 1080p, they would have 540 rows instead of 1080, half the processing), and then reusing rows. Maybe this allows them to use a cheaper FPGA chip, thus reducing the price.

The board

It would be interesting to see how different the board layout is to a Magewell card. If anyone has one, and is willing to take off their case, feel free to send a photo.

Circuit board of the hdmi to USB 3.0 capture card

We can see it has some sort of FPGA board under the heatsink (we didn't take the heatsink off, so we don't know what chip it is). There is an unpopulated JTAG header for programming for using the FPGA.

The other chips are - in U10 a CYUSB3014-BZXC USB 3.0 Controller - in U5 a ADV7611 HDMI Receiver - in U2 it looks like D9RZH is some DRAM, can't find an exact product page.

Summary

Good points -

  • Cheap(er)
  • Audio works
  • Driverless, works on Linux and Windows 7

Bad points -

  • Not really HD
  • Weird, ugly scaling artifacts
  • High latency, not useful for realtime application
  • Freezing issues on some Linux machines