Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

PC Based Computer music servers, crossovers, and equalization

Macrosilicon 2109: Cheap USB HDMI A/V capture
Macrosilicon 2109: Cheap USB HDMI A/V capture
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Thread Tools Search this Thread
Old 26th July 2020, 12:39 PM   #1
ariendj is offline ariendj  Germany
diyAudio Member
Join Date: Jan 2004
Default Macrosilicon 2109: Cheap USB HDMI A/V capture

Right now there are cheap USB HDMI capture devices being sold on AliExpress, ebay, amazon and the likes. They cost less than $10/€10. These dongles expose a standard UVC webcam and a USB audio class soundcard to the system. The video is MJPEG encoded and the audio is lossless stereo 16bit 48kHz PCM.

For anyone running a crossover/convolver/other DSP on a Raspberry Pi this provides an easy method to get sound into your DSP computer. As it's just plain HDMI this works to add DSP processing to Chromecast devices, Apple TV, FireTV sticks and the likes and also regular computers independent of operating systems.

To make stereo capture work with Linux you need a very recent kernel that contains an ALSA configuration quirk. Without this the device is detected as a 16 bit 96000 mono capture device. The quirk has been added to the 5.8 kernel and if I understand correctly will also be backported to LTS kernels.

Even with the quirk in place the left and right channels are swapped but this can easily be dealt with in software - either remapping while grabbing with ffmpeg or system wide with pulseaudio remap-sink for example.

With the RC 6 of kernel 5.8 the audio capture device is detected correctly:

arien@NBADJ01:~$ pactl list short sources
0       alsa_input.usb-MACROSILICON_2109-02.analog-stereo       module-alsa-card.c      s16le 2ch 48000Hz       SUSPENDED
The video part works with any recent kernel and shows up like this:

arien@NBADJ01:~$ sudo v4l2-ctl --all
Driver Info:
        Driver name      : uvcvideo
        Card type        : UVC Camera (534d:2109): USB Vid
        Bus info         : usb-0000:00:1a.0-1.1
        Driver version   : 5.8.0
        Capabilities     : 0x84a00001
                Video Capture
                Metadata Capture
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : UVC Camera (534d:2109): USB Vid
        Serial           : 
        Bus info         : usb-0000:00:1a.0-1.1
        Media version    : 5.8.0
        Hardware revision: 0x00002100 (8448)
        Driver version   : 5.8.0
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : UVC Camera (534d:2109): USB Vid
        Function         : V4L2 I/O
        Flags         : default
        Pad 0x01000007   : 0: Sink
          Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable
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: 5.000 (5/1)
        Read buffers     : 0
                     brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180
                            hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0
While capturing is limited to 1080p30 with MJPEG compression (and 5fps lossless), the HDMI input supposedly accepts any signal up to 4k60 12bit. I have not tested this yet.

There is another version that has both an HDMI input and an output so the capture device can be inserted between a playback device and the TV. I ordered one of those to try next as that would allow me to extract audio from the HDMI link for DSP processing while leaving the video signal as it is.

Last edited by ariendj; 26th July 2020 at 01:06 PM. Reason: Forgot to mention just how cheap these things are.
  Reply to this post


Macrosilicon 2109: Cheap USB HDMI A/V captureHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Capture and Layout jfetter Software Tools 68 25th May 2018 12:03 AM
Does there exist a video capture card that can capture rgb 240p non-interlaced video? Fusion916 Everything Else 2 2nd August 2015 07:00 PM
Schematic Capture patlaw PC Based 4 30th March 2015 02:09 PM
Laptop HDMI Output and DAC HDMI I2S Input. Can I get this going? mikone Digital Source 1 7th September 2010 11:36 PM
Capture 3x (6 ch) I2S or S/PDIF macboy Digital Line Level 10 28th April 2010 06:34 PM

New To Site? Need Help?

All times are GMT. The time now is 04:59 AM.

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.79%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio