Friday Fun: How to Tweak a £10 HDMI to USB Capture Device

You want to capture HDMI on your computer? Got £10 spare?



Can you spot the difference between these two sticks?

Update December 15 2020

One of my friends has advised me that these USB devices can get overly warm, to the point that you could injure yourself. They have an internal heatsink, but also use the case to draw heat from the chip. Be careful!

Original Article

So the other day I saw tweets flying around about a £/$10 USB 2 capture stick for HDMI. Then Jo aka concreted0g bought one and people started talking about it and I thought



"Yeah I'm gonna buy one for testing."

So I bought two from eBay, and they arrived. Like a kid on Christmas morning I tore into the packaging and plugged in the sticks. I connected them up to my X390 Thinkpad as a video source and my Dell 7010 was used to see the video via OBS. But what I saw was this...



Pi 4 video source 1080P test with OBS 5fps



Lenovo X390 as video source, 1080P test with OBS 5ps

Digging a little further



I wanted to learn more about these sticks, which are identical apart from the case on one has been assembled in reverse...you spotted that right?



Inside the case is a simple PCB with a chip hidden under a heatsink...



A Macro Silicon MS2109 is the chip which powers this device. I visited the Macro Silicon website and found...nothing for this chip. The latest version they have listed is the MS2106, used for analog video capture to USB.



This is the flow diagram for the 2106, I hazard a guess that the encoding section is similar as the MS2109 also outputs video as MJPEG.

What does Linux see?

Why was everyone else getting a nice 30 fps video stream?

I had a chat with Jo and he mentioned that he was using guvcview to capture the video on his Ubuntu machine. I already had that installed so I fired it up and wow, the frame rate was so much quicker. Still a little fuzzy but better.

Hi reader!

I never put my blog posts behind paywall or pop ups because quite frankly that is annoying and prevents anyone from accessing the content. I will always keep my blog content free of charge. But I do ask that if you are able and willing, that you buy me a "coffee" as it helps me to pay for hosting this blog, and to buy stuff to hack from Poundshops / Dollar Stores / Aliexpress which are used in free projects and reviews on this blog. It is You dear reader who make this possible, and I am immensely grateful for your support.

Thanks!

Quick Comparison Video

I recorded four videos all using a Raspberry Pi 4 as the video source.

  • USB 2 to HDMI 1080P via Open Broadcaster Software - 5 frames per second, fuzzy image.
  • USB 2 to HDMI 1080P via guvcview - 30 fps, fuzzy image.
  • Mirabox (USB 3) via Open Broadcaster Software - 30 frames per second.
  • Mirabox (USB 3) via guvcview - 30 frames per second.



The two capture devices were the £10 USB 2 to HDMI stick, and my £70 - 80 Mirabox, which I use to capture video for work.

So how can I get a better quality with OBS?

This is subjective, but for me tweaking these settings gave me 30fps at 1080p in OBS.

Set the device config



In Sources double left click on the source which is your capture device.

Set the Video Format to BGR3 (Emulated)

Change the Resolution if needed.

Set the Frame Rate to 30.00

Set Color Range to Full

Click Ok

Make the image a little sharper



I wasn't too happy with the soft image, so I delved further into the settings for the source.



Tweak these settings and see what works for you and the video source you are trying to record.



Click on Settings and then Video

Change the Downscale Filter to Lanczos (Sharpened scaling, 36 samples)

Common FPS Values set to 30

click Apply and then Ok

Now the video should be sharper and with a higher frame rate.

Final Thoughts?

For £10 this is a good USB to HDMI capture device despite the fuzzy / soft image. I wouldn't use it for work, but for casual use this will do the job.