Den 09.03.2023 09:13, skrev Andrew Randrianasulu:


чт, 9 мар. 2023 г., 11:07 Terje J. Hanssen <[email protected]>:



    Den 25.02.2023 21:30, skrev Andrew Randrianasulu:


    сб, 25 февр. 2023 г., 23:25 Terje J. Hanssen
    <[email protected]>:



        Den 25.02.2023 19:27, skrev Andrew Randrianasulu:


        сб, 25 февр. 2023 г., 21:19 Terje J. Hanssen via Cin
        <[email protected]>:

            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?


Could you possibly examplify the latter?

If things work as hoped in another thread, I want to test if analog Hi8/S-video directly to digital DVD-Video.mpg and SD-BD-Video.mpg is possible.
That is bypass the extra step to DV format conversion and compression.

    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


1) Test to generate a fake alsa audio file with ms2130

   ffmpeg -hide_banner -f alsa -t 30 out.wav
   Output #0, alsa, to 'out.wav':
   Output file #0 does not contain any stream

That is, it doesn't work without identifying ms2130 card#3, because there ar sysdefaults for each card I expect

   ffmpeg -hide_banner -f alsa -i hw:3 -t 30 out.wav
   Guessed Channel Layout for Input Stream #0.0 : stereo
   Input #0, alsa, from 'hw:3':
      Duration: N/A, start: 1678372304.209057, bitrate: 1536 kb/s
      Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
   Stream mapping:
      Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
   Press [q] to stop, [?] for help
   Output #0, wav, to 'out.wav':
      Metadata:
        ISFT            : Lavf59.27.100
      Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
   stereo, s16, 1536 kb/s
        Metadata:
          encoder         : Lavc59.37.100 pcm_s16le
   size=    5625kB time=00:00:30.00 bitrate=1536.1kbits/s speed= 1x
   video:0kB audio:5625kB subtitle:0kB other streams:0kB global
   headers:0kB muxing overhead: 0.001354%


   ffprobe -hide_banner out.wav
   Input #0, wav, from 'out.wav':
      Metadata:
        encoder         : Lavf59.27.100
      Duration: 00:00:30.00, bitrate: 1536 kb/s
      Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
   2 channels, s16, 1536 kb/s

------------

2) Tests to generate fake Video with actual frame sizes and alsa audio  packaged as ff1.mkv 25 fps (pal) is automatically changed to supported 30 fps - I just wonder if that will matter drawback for future playback, editing etc?

   ffmpeg -hide_banner -f alsa -ac 2 -i hw:3 -f v4l2 -framerate 25
   -video_size 720x576 -i /dev/video2 -codec:v ffv1 -level 3 -codec:a
   pcm_s16le -f matroska 720x576_ms2130_ffv1.mkv

   ffprobe -hide_banner 720x576_ms2130_ffv1.mkv
   Input #0, matroska,webm, from '720x576_ms2130_ffv1.mkv':
      Metadata:
        ENCODER         : Lavf59.27.100
      Duration: 00:00:13.07, start: 0.000000, bitrate: 1028 kb/s
      Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv,
   progressive), 720x576, 30 fps, 30 tbr, 1k tbn
        Metadata:
          ENCODER         : Lavc59.37.100 ffv1
          DURATION        : 00:00:13.066000000
      Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
        Metadata:
          ENCODER         : Lavc59.37.100 pcm_s16le
          DURATION        : 00:00:13.036000000

---------------

   ffmpeg -hide_banner -f alsa -ac 2 -i hw:3 -f v4l2 -framerate 25
   -video_size 1280x720 -i /dev/video2 -codec:v ffv1 -level 3 -codec:a
   pcm_s16le -f matroska 1280x720_ms2130_ffv1.mkv

   ffprobe -hide_banner 1280x720_ms2130_ffv1.mkv
   Input #0, matroska,webm, from '1280x720_ms2130_ffv1.mkv':
      Metadata:
        ENCODER         : Lavf59.27.100
      Duration: 08:51:10.37, start: 0.000000, bitrate: 0 kb/s
      Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv,
   progressive), 1280x720, 30 fps, 30 tbr, 1k tbn
        Metadata:
          ENCODER         : Lavc59.37.100 ffv1
          DURATION        : 08:51:10.366000000
      Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
        Metadata:
          ENCODER         : Lavc59.37.100 pcm_s16le
          DURATION        : 00:00:11.924000000

-------------

   ffmpeg -hide_banner -f alsa -ac 2 -i hw:3 -f v4l2 -framerate 25
   -video_size 1920x1080 -i /dev/video2 -codec:v ffv1 -level 3 -codec:a
   pcm_s16le -f matroska 1920x1080_ms2130_ffv1.mkv

   ffprobe -hide_banner 1920x1080_ms2130_ffv1.mkv
   [matroska,webm @ 0x56077d8b8f00] Could not find codec parameters for
   stream 0 (Video: ffv1 (FFV1 / 0x31564646), none(tv, progressive),
   1920x1080): unspecified pixel format
   Consider increasing the value for the 'analyzeduration' (0) and
   'probesize' (5000000) options
   Input #0, matroska,webm, from '1920x1080_ms2130_ffv1.mkv':
      Metadata:
        ENCODER         : Lavf59.27.100
      Duration: 09:01:55.87, start: 0.000000, bitrate: 0 kb/s
      Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), none(tv,
   progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn
        Metadata:
          ENCODER         : Lavc59.37.100 ffv1
          DURATION        : 09:01:55.866000000
      Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
        Metadata:
          ENCODER         : Lavc59.37.100 pcm_s16le
          DURATION        : 00:00:10.232000000

----------------

-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to