[Cin] ms2130 HDMI-USB3 UHD capture card - not quite as expected?

Andrew Randrianasulu randrianasulu at gmail.com
Thu Mar 9 09:13:05 CET 2023


чт, 9 мар. 2023 г., 11:07 Terje J. Hanssen <terjejhanssen at gmail.com>:

>
>
> Den 25.02.2023 21:30, skrev Andrew Randrianasulu:
>
>
>
> сб, 25 февр. 2023 г., 23:25 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>>
>>
>> Den 25.02.2023 19:27, skrev Andrew Randrianasulu:
>>
>>
>>
>> сб, 25 февр. 2023 г., 21:19 Terje J. Hanssen via Cin <
>> cin at lists.cinelerra-gg.org>:
>>
>>> So I have received the ms2130 HDMI-USB3 capture card.
>>> The A/D AV converter & SV-HDMI/adapter is not received so far, and I
>>> have not avialable my HDV camcorder (on service) to output HDMI video
>>> stream with.
>>>
>>> Yet, I have initially run some verification tests on the ms2130
>>> HDMI-USB3 UHD capture card alone, for what they are worth.
>>>
>>> As "UHD" (and/or USB3) is mostly generic used to identify this card
>>> (while ms2130 almost not), the some output is piped and stripped with grep
>>> "UHD".
>>>
>>> ----------------
>>>
>>> dmesg | grep UHD
>>> [    2.798210] usb 2-5: Product: USB3.0 UHD
>>> [    2.827772] hid-generic 0003:345F:2130.0005: hiddev97,hidraw4: USB
>>> HID v1.10 Device [MACROSILICON USB3.0 UHD] on usb-0000:00:14.0-5/input4
>>> [    4.805554] usb 2-5: Found UVC 1.00 device USB3.0 UHD (345f:2130)
>>>
>>>
>>> udevadm info  /dev/video* | egrep 'DEVNAME|ID_V4L_PRODUCT'
>>> E: DEVNAME=/dev/video0
>>> E: ID_V4L_PRODUCT=USB 2.0 Camera: HD 720P Webcam
>>> E: DEVNAME=/dev/video1
>>> E: ID_V4L_PRODUCT=USB 2.0 Camera: HD 720P Webcam
>>> E: DEVNAME=/dev/video2
>>> E: ID_V4L_PRODUCT=USB3.0 UHD: USB3.0 UHD
>>> E: DEVNAME=/dev/video3
>>> E: ID_V4L_PRODUCT=USB3.0 UHD: USB3.0 UHD
>>>
>>>
>>> udevadm info  /dev/video* | egrep UHD
>>> S: v4l/by-id/usb-MACROSILICON_USB3.0_UHD_20210623-video-index0
>>> E: ID_V4L_PRODUCT=USB3.0 UHD: USB3.0 UHD
>>> E: ID_MODEL=USB3.0_UHD
>>> E: ID_MODEL_ENC=USB3.0\x20UHD
>>> E: ID_SERIAL=MACROSILICON_USB3.0_UHD_20210623
>>> E:
>>> DEVLINKS=/dev/v4l/by-id/usb-MACROSILICON_USB3.0_UHD_20210623-video-index0
>>> /dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.0-video-index0
>>> S: v4l/by-id/usb-MACROSILICON_USB3.0_UHD_20210623-video-index1
>>> E: ID_V4L_PRODUCT=USB3.0 UHD: USB3.0 UHD
>>> E: ID_MODEL=USB3.0_UHD
>>> E: ID_MODEL_ENC=USB3.0\x20UHD
>>> E: ID_SERIAL=MACROSILICON_USB3.0_UHD_20210623
>>> E: DEVLINKS=/dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.0-video-index1
>>> /dev/v4l/by-id/usb-MACROSILICON_USB3.0_UHD_20210623-video-index1
>>>
>>>
>>> lsusb | grep UHD
>>> Bus 002 Device 004: ID 345f:2130 MACROSILICON USB3.0 UHD
>>>
>>> cat /proc/asound/cards | grep UHD
>>>  2 [UHD            ]: USB-Audio - USB3.0 UHD
>>>                       MACROSILICON USB3.0 UHD at usb-0000:00:14.0-5,
>>> super speed
>>>
>>> ll /dev/video*
>>> crw-rw----+ 1 root video 81, 0 feb.  25 14:15 /dev/video0
>>> crw-rw----+ 1 root video 81, 1 feb.  25 14:15 /dev/video1
>>> crw-rw----+ 1 root video 81, 2 feb.  25 14:15 /dev/video2
>>> crw-rw----+ 1 root video 81, 3 feb.  25 14:15 /dev/video3
>>>
>>> ---------------------
>>>
>>> v4l2-ctl --list-devices
>>> USB 2.0 Camera: HD 720P Webcam (usb-0000:00:14.0-11):
>>>         /dev/video0
>>>         /dev/video1
>>>
>>> USB3.0 UHD: USB3.0 UHD (usb-0000:00:14.0-5):
>>>         /dev/video2
>>>         /dev/video3
>>>
>>> -----------
>>>
>>> v4l2-ctl --list-formats-ext
>>> ioctl: VIDIOC_ENUM_FMT
>>>         Index       : 0
>>>         Type        : Video Capture
>>>         Pixel Format: 'YUYV'
>>>         Name        : YUYV 4:2:2
>>>                 Size: Discrete 640x480
>>>                         Interval: Discrete 0.030s (33.000 fps)
>>>                         Interval: Discrete 0.067s (15.000 fps)
>>>                 Size: Discrete 1280x720
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>                 Size: Discrete 640x360
>>>                         Interval: Discrete 0.030s (33.000 fps)
>>>                         Interval: Discrete 0.067s (15.000 fps)
>>>             ................
>>>  Index       : 1
>>>         Type        : Video Capture
>>>         Pixel Format: 'MJPG' (compressed)
>>>         Name        : Motion-JPEG
>>>                 Size: Discrete 640x480
>>>                         Interval: Discrete 0.030s (33.000 fps)
>>>                         Interval: Discrete 0.067s (15.000 fps)
>>>                 Size: Discrete 1280x720
>>>                         Interval: Discrete 0.030s (33.000 fps)
>>>                         Interval: Discrete 0.067s (15.000 fps)
>>>                 Size: Discrete 640x360
>>>                         Interval: Discrete 0.030s (33.000 fps)
>>>                         Interval: Discrete 0.067s (15.000 fps)
>>>                        ......................
>>>
>>>
>>>
>>> As the above doesn't list any 1920x1080 resolution, I wonder if it list
>>> just format for the usb2 webcam and not for ms2130 capture card?
>>>
>>
>>
>> Yeah, looking at how webcam listed first it makes sense. Try to instruct
>> v4l2-ctl to use another device? (my guess it will be "-d" switch but I can
>> be wrong! Manyal or "--help" output is better guide ..)
>>
>>
>> Be aware that "v4l2-ctl --list-formats-ext" was the same (I think) as
>> used for the previous ms2109 Hama card, and I thought formats for all
>> connected devices were listed then.
>> Obviously there is a default (or first device) used, when no device is
>> specified, so thank you for the tip.
>>
>> By help of google and "superuser" I found out that actually both "-D -d
>> /dev/video2" are needed to get both frame sizes and fps listed:
>>
>> v4l2-ctl -D -d /dev/video2 --list-formats-ext
>> Driver Info (not using libv4l2):
>>         Driver name   : uvcvideo
>>         Card type     : USB3.0 UHD: USB3.0 UHD
>>         Bus info      : usb-0000:00:14.0-5
>>         Driver version: 5.14.21
>>         Capabilities  : 0x84A00001
>>                 Video Capture
>>                 Metadata Capture
>>                 Streaming
>>                 Extended Pix Format
>>                 Device Capabilities
>>         Device Caps   : 0x04200001
>>                 Video Capture
>>                 Streaming
>>                 Extended Pix Format
>> ioctl: VIDIOC_ENUM_FMT
>>         Index       : 0
>>         Type        : Video Capture
>>         Pixel Format: 'YUYV'
>>         Name        : YUYV 4:2:2
>>                 Size: Discrete 1920x1080
>>                         Interval: Discrete 0.017s (60.000 fps)
>>                         Interval: Discrete 0.020s (50.000 fps)
>>                         Interval: Discrete 0.033s (30.000 fps)
>>                         Interval: Discrete 0.050s (20.000 fps)
>>                         Interval: Discrete 0.100s (10.000 fps)
>>                 ............
>>
>>                 Size: Discrete 1280x720
>>                         Interval: Discrete 0.017s (60.000 fps)
>>                         Interval: Discrete 0.020s (50.000 fps)
>>                         Interval: Discrete 0.033s (30.000 fps)
>>                         Interval: Discrete 0.050s (20.000 fps)
>>                         Interval: Discrete 0.100s (10.000 fps)
>>                 ...............
>>
>>                 Size: Discrete 720x576
>>                         Interval: Discrete 0.017s (60.000 fps)
>>                         Interval: Discrete 0.020s (50.000 fps)
>>                         Interval: Discrete 0.033s (30.000 fps)
>>                         Interval: Discrete 0.050s (20.000 fps)
>>                         Interval: Discrete 0.100s (10.000 fps)
>>                ................
>>
>>
>>
>>
>> -------------------------------------
>>>
>>> Try also ffplay to list supported formats for a video4linux2 device:
>>>
>>> ffplay -hide_banner -f v4l2 -list_formats all /dev/video2
>>> [video4linux2,v4l2 @ 0x7f8280000cc0] Raw       :     yuyv422 :
>>> YUYV 4:2:2 : 1920x1080 1600x1200 1360x768 1280x1024 1280x960 1280x720
>>> 1024x768 800x600 720x576 720x480 640x480
>>> /dev/video2: Immediate exit requested
>>> nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0
>>>
>>>
>>
>> this one at least list all formats but not their framerates ...
>>
>>>
>>>
>>>
>>> ffplay -hide_banner -f v4l2 -list_formats all /dev/video3
>>> [video4linux2,v4l2 @ 0x7f3bd0000cc0] ioctl(VIDIOC_G_INPUT):
>>> Inappropriate ioctl for device
>>> /dev/video3: Inappropriate ioctl for device
>>>
>>>
>>> -------------
>>>
>>> I am not sure about what the following command really does, but it was
>>> described to
>>>
>>> "Grab and record the input of a video4linux2 device, leave the frame
>>> rate and size as previously set:"
>>>
>>> ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -i /dev/video2
>>> out_test.mpeg
>>>
>>> [video4linux2,v4l2 @ 0x55c22212cfc0] Dequeued v4l2 buffer contains
>>> corrupted data (0 bytes).
>>> Input #0, video4linux2,v4l2, from '/dev/video2':
>>>   Duration: N/A, start: 0.000000, bitrate: 1990656 kb/s
>>>   Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080,
>>> 1990656 kb/s, 60 fps, 60 tbr, 1000k tbn
>>> Stream mapping:
>>>   Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))
>>> Press [q] to stop, [?] for help
>>> [video4linux2,v4l2 @ 0x55c22212cfc0] Dequeued v4l2 buffer contains
>>> corrupted data (0 bytes).
>>>     Last message repeated 30 times
>>> [mpeg @ 0x55c22214f800] VBV buffer size not set, using default size of
>>> 230KB
>>> If you want the mpeg file to be compliant to some specification
>>> Like DVD, VCD or others, make sure you set the correct buffer size
>>> Output #0, mpeg, to 'out_test.mpeg':
>>>   Metadata:
>>>     encoder         : Lavf59.27.100
>>>   Stream #0:0: Video: mpeg1video, yuv420p(tv, progressive), 1920x1080,
>>> q=2-31, 200 kb/s, 60 fps, 90k tbn
>>>     Metadata:
>>>       encoder         : Lavc59.37.100 mpeg1video
>>>     Side data:
>>>       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
>>> frame= 1628 fps= 60 q=2.0 Lsize=    4702kB time=03:13:19.68 bitrate=
>>> 3.3kbits/s speed= 427x
>>> video:4675kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
>>> muxing overhead: 0.572162%
>>> Exiting normally, received signal 2.
>>>
>>>
>>
>> try 30 fps instead of 60?
>>
>>
>> Like this?
>> But shouldn't a 422 and not a 420 output format be created?
>>
>
> it seems in some cases ffmpeg not geared towards preserving most
> information, just picks up most commonly defined/first pixel format. Try
> mpeg2video as output codec, and/or specify pixel format (pix_fmt)
> more explicitly before output's filename? Also you can try 'copy' video
> codec and meet absolutely enormous test file.
>
>
>>
>> ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 1920x1080
>> -framerate 30 -t 10 -i /dev/video2 out_1920x1024.mpeg
>> [video4linux2,v4l2 @ 0x564d7d7c3040] Dequeued v4l2 buffer contains
>> corrupted data (0 bytes).
>> Input #0, video4linux2,v4l2, from '/dev/video2':
>>   Duration: N/A, start: 0.000000, bitrate: 995328 kb/s
>>   Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080,
>> 995328 kb/s, 30 fps, 30 tbr, 1000k tbn
>> Stream mapping:
>>   Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))
>> Press [q] to stop, [?] for help
>> [video4linux2,v4l2 @ 0x564d7d7c3040] Dequeued v4l2 buffer contains
>> corrupted data (0 bytes).
>>     Last message repeated 30 times
>> [mpeg @ 0x564d7d7e5a80] VBV buffer size not set, using default size of
>> 230KB
>> If you want the mpeg file to be compliant to some specification
>> Like DVD, VCD or others, make sure you set the correct buffer size
>> Output #0, mpeg, to 'out_1920x1024.mpeg':
>>   Metadata:
>>     encoder         : Lavf59.27.100
>>   Stream #0:0: Video: mpeg1video, yuv420p(tv, progressive), 1920x1080,
>> q=2-31, 200 kb/s, 30 fps, 90k tbn
>>     Metadata:
>>       encoder         : Lavc59.37.100 mpeg1video
>>     Side data:
>>       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
>> frame=  301 fps= 30 q=1.6 Lsize=     896kB time=06:56:05.30 bitrate=
>> 0.3kbits/s speed=2.47e+03x
>> video:890kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
>> muxing overhead: 0.710403%
>>
>> -----------
>> ffprobe -hide_banner out_1920x1024.mpeg
>> Input #0, mpeg, from 'out_1920x1024.mpeg':
>>   Duration: 00:00:10.03, start: 24955.333333, bitrate: 731 kb/s
>>   Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 1920x1080 [SAR 1:1
>> DAR 16:9], 104857 kb/s, 30 fps, 30 tbr, 90k tbn
>>
>> ------------
>> mediainfo out_1920x1024.mpeg
>> General
>> Complete name                            : out_1920x1024.mpeg
>> Format                                   : MPEG-PS
>> File size                                : 896 KiB
>> Duration                                 : 10 s 33 ms
>> Overall bit rate mode                    : Variable
>> Overall bit rate                         : 732 kb/s
>>
>> Video
>> ID                                       : 224 (0xE0)
>> Format                                   : MPEG Video
>> Format version                           : Version 1
>> Format settings, BVOP                    : No
>> Format settings, Matrix                  : Default
>> Format settings, GOP                     : N=12
>> Duration                                 : 10 s 33 ms
>> Bit rate mode                            : Variable
>> Bit rate                                 : 717 kb/s
>> Width                                    : 1 920 pixels
>> Height                                   : 1 080 pixels
>> Display aspect ratio                     : 16:9
>> Frame rate                               : 30.000 FPS
>> Color space                              : YUV
>> Chroma subsampling                       : 4:2:0
>> Bit depth                                : 8 bits
>> Scan type                                : Progressive
>> Compression mode                         : Lossy
>> Bits/(Pixel*Frame)                       : 0.012
>> Time code of first frame                 : 00:00:00:00
>> Time code source                         : Group of pictures header
>> GOP, Open/Closed                         : Open
>> GOP, Open/Closed of first frame          : Closed
>> Stream size                              : 878 KiB (98%)
>>
>>
> Alsa identifier for ms2130?
>
> I'm ready to test with the analog camcorder connectedto A/D-adapter +
> ms210 capture, but first a question about the Alsa hw: identifier for the
> latter.
>
> For the Hama ms2109 I used
>     ffmpeg -f alsa -ac 2 -i hw:CARD=MS2109,DEV=0
>
> For ms2130 UHD card
>
> arecord -l
>
> **** List of CAPTURE Hardware Devices ****
> ......
> card 3: UHD [USB3.0 UHD], device 0: USB Audio [USB Audio]
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
>
> arecord -L
>
> .....
> sysdefault:CARD=UHD
>     USB3.0 UHD, USB Audio
>     Default Audio Device
> front:CARD=UHD,DEV=0
>     USB3.0 UHD, USB Audio
>     Front output / input
>
> Suggestion to
>
>     ffmpeg -f alsa -ac 2 -i hw:?
> ===
>

just omit hw alsa part (but not -f alsa) so it defaults to sysdefault ? :)

also, try 3:0 (card 3, subdevice 0)

also, may be try /dev/snd/pcm*c devices

>
>
>
>
>>
>>>
>>>
>>>
>>> --
>>> Cin mailing list
>>> Cin at lists.cinelerra-gg.org
>>> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20230309/4ba0ede3/attachment-0001.htm>


More information about the Cin mailing list