чт, 9 мар. 2023 г., 20:36 Terje J. Hanssen <[email protected]>:
> > > 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? > I think I just theorized ffmpeg may try to get some info from alsa device file directly, as it tries with /dev/video. But I never tried this way, so I can be totally wrong! > 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? > Oh, I just hope it will change when you actually connect analog source to it .... but no idea how it will work :/ Sorry. > 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

