Den 03.05.2025 13:00, skrev Terje J. Hanssen:
Den 02.05.2025 21:42, skrev Andrew Randrianasulu:
пт, 2 мая 2025 г., 22:37 Terje J. Hanssen <[email protected]>:
https://www.mail-archive.com/[email protected]/msg05748.html
I contine this new thread with an short extract from the long growing [Cin] ms2130 HDMI-USB3 UHD capture card - not quite as expected?
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!
-------------------------------
Instead of 50i (pal interlaced fields), I try 50 fps (progressive) that at least is a pal frequence.
And yes, it seems from the output that ffmpeg uses mpeg1video as default output codec.
Furter I try to combine the current line
ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -framerate 25 -t 20 -i /dev/video2 out-720x576_ms2130.mpeg
with and utilize the syntax developed 2021 for "Blu-ray compliant MPEG-2 SD video with LPCM audio"
ffmpeg -i dv28.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 25M -maxrate 25M -minrate 25M -bufsize 45M -muxrate 45M -dc 10 -c:a pcm_s16be -f vob dv28.mpg
and for the current ongoing "DVD compliant MPEG-2 Video and PCM Audio"
ffmpeg -hide_banner -i dv01.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -flags +ilme+ildct dv01.mpg
to first
ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -framerate 50 -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -t 20 -i /dev/video2 720x576_50p_ms2130.mpg Option b:v (video bitrate (please use -b:v)) cannot be applied to input url /dev/video2 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to. Error parsing options for input file /dev/video2. Error opening input files: Invalid argument
and next revised with no output. That is I need help to debug the syntax error:
ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -framerate 50 -i /dev/video2 -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -t 20 720x576_50p_ms2130.mpg [video4linux2,v4l2 @ 0x55db770ef9c0] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video2': Duration: N/A, start: 0.000000, bitrate: 331776 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 331776 kb/s, 50 fps, 50 tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Press [q] to stop, [?] for help [video4linux2,v4l2 @ 0x55db770ef9c0] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times [mpeg2video @ 0x55db77114f00] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate! Output #0, vob, to '720x576_50p_ms2130.mpg': Metadata: encoder : Lavf59.27.100 Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 720x576, q=2-31, 8000 kb/s, 50 fps, 90k tbn Metadata: encoder : Lavc59.37.100 mpeg2video Side data: cpb: bitrate max/min/avg: 8000000/8000000/8000000 buffer size: 20000000 vbv_delay: N/A frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
well, I think framerate still 25 for 50i stream ....
can you re-check last line with framerate parameter removed or changed back to 25?
Ok, as this old post by my mistake already has been forwarded to the list and replied, I will follow it up later today, but need to rig rig up my camcorder and devices
Finally ready, I had to recall a lot since 2023. ls /dev/video* /dev/video0 /dev/video1 /dev/video2 /dev/video3 for i in /dev/video*; do echo "$i"; udevadm info --query=all --attribute-walk --name=$i | grep -E "name"; done /dev/video0 ATTR{name}=="USB3.0 UHD: USB3.0 UHD" /dev/video1 ATTR{name}=="USB3.0 UHD: USB3.0 UHD" /dev/video2 ATTR{name}=="USB 2.0 Camera: HD 720P Webcam" /dev/video3 ATTR{name}=="USB 2.0 Camera: HD 720P Webcam" v4l2-ctl --list-devices USB 2.0 Camera: HD 720P Webcam (usb-0000:00:14.0-11.2): /dev/video2 /dev/video3 /dev/media1 USB3.0 UHD: USB3.0 UHD (usb-0000:00:14.0-3): /dev/video0 /dev/video1 /dev/media0 As seen the HDMI-USB3 capture card + the S-Video/HDMI converter (with the analog S-video camcorder) is now on /dev/video0 while the USB2 webcam is on /dev/video2 ffplay can playback the S-video camcorder's imaging stream Default without framerate specified: ffplay -hide_banner -f video4linux2 /dev/video0 [video4linux2,v4l2 @ 0x7fe3c0000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 0.000000, bitrate: 398131 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 398131 kb/s, 60 fps, 60 tbr, 1000k tbn [video4linux2,v4l2 @ 0x7fe3c0000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times ^Cterje@localhost:~> d= 2 aq= 0KB vq= 0KB sq= 0B With 25 fps specified: ffplay -hide_banner -f video4linux2 -framerate 25 /dev/video0 [video4linux2,v4l2 @ 0x7f7fa8000c80] The driver changed the time per frame from 1/25 to 1/30 [video4linux2,v4l2 @ 0x7f7fa8000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 0.000000, bitrate: 199065 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 199065 kb/s, 30 fps, 30 tbr, 1000k tbn [video4linux2,v4l2 @ 0x7f7fa8000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times ^Cterje@localhost:~> d= 0 aq= 0KB vq= 0KB sq= 0B With 30 fps specified: ffplay -hide_banner -f video4linux2 -framerate 30 /dev/video0 [video4linux2,v4l2 @ 0x7f3878000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 0.000000, bitrate: 199065 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 199065 kb/s, 30 fps, 30 tbr, 1000k tbn [video4linux2,v4l2 @ 0x7f3878000c80] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times ----------------- But empty output file with ffmpeg: With 25 fps specified ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -framerate 25 -i /dev/video0 -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -t 20 720x576_25fps_ms2130.mpg [video4linux2,v4l2 @ 0x560fe5926740] The driver changed the time per frame from 1/25 to 1/30 [video4linux2,v4l2 @ 0x560fe5926740] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 0.000000, bitrate: 199065 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 199065 kb/s, 30 fps, 30 tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Press [q] to stop, [?] for help [video4linux2,v4l2 @ 0x560fe5926740] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times [mpeg2video @ 0x560fe5927140] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate! Output #0, vob, to '720x576_25fps_ms2130.mpg': Metadata: encoder : Lavf61.7.100 Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 720x576, q=2-31, 8000 kb/s, 30 fps, 90k tbn Metadata: encoder : Lavc61.19.101 mpeg2video Side data: cpb: bitrate max/min/avg: 8000000/8000000/8000000 buffer size: 20000000 vbv_delay: N/A [out#0/vob @ 0x560fe5928d00] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown [out#0/vob @ 0x560fe5928d00] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A Without framerate specified: ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -i /dev/video0 -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -t 20 720x576_ms2130.mpg [video4linux2,v4l2 @ 0x55e707fd8740] Dequeued v4l2 buffer contains corrupted data (0 bytes). Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 0.000000, bitrate: 398131 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 398131 kb/s, 60 fps, 60 tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Press [q] to stop, [?] for help [video4linux2,v4l2 @ 0x55e707fd8740] Dequeued v4l2 buffer contains corrupted data (0 bytes). Last message repeated 30 times [mpeg2video @ 0x55e707fd9140] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate! Output #0, vob, to '720x576_ms2130.mpg': Metadata: encoder : Lavf61.7.100 Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 720x576, q=2-31, 8000 kb/s, 60 fps, 90k tbn Metadata: encoder : Lavc61.19.101 mpeg2video Side data: cpb: bitrate max/min/avg: 8000000/8000000/8000000 buffer size: 20000000 vbv_delay: N/A [out#0/vob @ 0x55e707fdacc0] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown [out#0/vob @ 0x55e707fdacc0] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A -------------- On the other hand, capturing with the USB webcam creates output file Here with 50 fps specified ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576 -framerate 50 -i /dev/video2 -c:v mpeg2video -refs 1 -bf 2 -b:v 8M -maxrate 8M -minrate 8M -bufsize 20M -muxrate 11M -dc 10 -c:a pcm_dvd -f vob -t 20 720x576_50p_ms2130.mpg [video4linux2,v4l2 @ 0x56418fd52740] The V4L2 driver changed the video from 720x576 to 800x600 [video4linux2,v4l2 @ 0x56418fd52740] The driver changed the time per frame from 1/50 to 1/20 Input #0, video4linux2,v4l2, from '/dev/video2': Duration: N/A, start: 1969.283514, bitrate: 153600 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 800x600, 153600 kb/s, 20 fps, 20 tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Press [q] to stop, [?] for help [mpeg2video @ 0x56418fd53200] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate! Output #0, vob, to '720x576_50p_ms2130.mpg': Metadata: encoder : Lavf61.7.100 Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 800x600, q=2-31, 8000 kb/s, 20 fps, 90k tbn Metadata: encoder : Lavc61.19.101 mpeg2video Side data: cpb: bitrate max/min/avg: 8000000/8000000/8000000 buffer size: 20000000 vbv_delay: N/A [out#0/vob @ 0x56418fd54e00] video:13281KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 1.230734% frame= 284 fps= 22 q=2.0 Lsize= 13444KiB time=00:00:14.15 bitrate=7783.3kbits/s dup=97 drop=0 speed=1.08x Exiting normally, received signal 2. ffprobe -hide_banner 720x576_50p_ms2130.mpg Input #0, mpeg, from '720x576_50p_ms2130.mpg': Duration: 00:00:14.20, start: 0.550000, bitrate: 7755 kb/s Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 800x600 [SAR 1:1 DAR 4:3], 20 fps, 20 tbr, 90k tbn Side data: cpb: bitrate max/min/avg: 8000000/0/0 buffer size: 20004864 vbv_delay: N/A