<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
<br>
<div class="moz-cite-prefix">Den 04.05.2025 05:49, skrev Andrew
Randrianasulu:<br>
</div>
<blockquote type="cite"
cite="mid:CA+rFky7jYdA-VAGmT6aT3_kwK-OWr5Hx8hA2QxaVzirUx_5mtA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div><br>
<br>
<div class="gmail_quote gmail_quote_container">
<div dir="ltr" class="gmail_attr">вс, 4 мая 2025 г., 01:37
Terje J. Hanssen <<a
href="mailto:terjejhanssen@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">terjejhanssen@gmail.com</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> <br>
<div>Den 03.05.2025 13:00, skrev Terje J. Hanssen:<br>
</div>
<blockquote type="cite"> <br>
<div>Den 02.05.2025 21:42, skrev Andrew Randrianasulu:<br>
</div>
<blockquote type="cite">
<div dir="auto">
<div><br>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">пт, 2 мая
2025 г., 22:37 Terje J. Hanssen <<a
href="mailto:terjejhanssen@gmail.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">terjejhanssen@gmail.com</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> <a
href="https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg05748.html"
rel="noreferrer noreferrer"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg05748.html</a><br>
<br>
I contine this new thread with an short
extract from the long growing<br>
[Cin] ms2130 HDMI-USB3 UHD capture card -
not quite as expected?<br>
<br>
But shouldn't a 422 and not a 420 output
format be created?<br>
<br>
<blockquote>>> it seems in some
cases ffmpeg not geared towards
preserving most information, just picks
up most commonly defined/first pixel
format. <br>
>> Try mpeg2video as output codec,
and/or specify pixel format (pix_fmt)
more explicitly before output's
filename?<br>
<br>
>>> Could you possibly
examplify the latter?<br>
<br>
>>>> 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!<br>
</blockquote>
-------------------------------<br>
<br>
Instead of 50i (pal interlaced fields), I
try 50 fps (progressive) that at least is
a pal frequence.<br>
<br>
And yes, it seems from the output that
ffmpeg uses mpeg1video as default output
codec.<br>
<br>
Furter I try to combine the current line<br>
<blockquote>ffmpeg -hide_banner -f v4l2
-input_format yuyv422 -video_size
720x576 -framerate 25 -t 20 -i
/dev/video2 out-720x576_ms2130.mpeg<br>
</blockquote>
<br>
with and utilize the syntax developed 2021
for "Blu-ray compliant MPEG-2 SD video
with LPCM audio"<br>
<blockquote>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 <br>
</blockquote>
and for the current ongoing "DVD compliant
MPEG-2 Video and PCM Audio"<br>
<blockquote>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<br>
</blockquote>
to first<br>
<blockquote>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 <br>
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.<br>
Error parsing options for input file
/dev/video2.<br>
Error opening input files: Invalid
argument<br>
</blockquote>
<br>
and next revised with no output. That is I
need help to debug the syntax error: <br>
<blockquote>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<br>
[video4linux2,v4l2 @ 0x55db770ef9c0]
Dequeued v4l2 buffer contains corrupted
data (0 bytes).<br>
Input #0, video4linux2,v4l2, from
'/dev/video2':<br>
Duration: N/A, start: 0.000000,
bitrate: 331776 kb/s<br>
Stream #0:0: Video: rawvideo (YUY2 /
0x32595559), yuyv422, 720x576, 331776
kb/s, 50 fps, 50 tbr, 1000k tbn<br>
Stream mapping:<br>
Stream #0:0 -> #0:0 (rawvideo
(native) -> mpeg2video (native))<br>
Press [q] to stop, [?] for help<br>
[video4linux2,v4l2 @ 0x55db770ef9c0]
Dequeued v4l2 buffer contains corrupted
data (0 bytes).<br>
Last message repeated 30 times<br>
[mpeg2video @ 0x55db77114f00] Warning
vbv_delay will be set to 0xFFFF (=VBR)
as the specified vbv buffer is too large
for the given bitrate!<br>
Output #0, vob, to
'720x576_50p_ms2130.mpg':<br>
Metadata:<br>
encoder : Lavf59.27.100<br>
Stream #0:0: Video: mpeg2video
(4:2:2), yuv422p(tv, progressive),
720x576, q=2-31, 8000 kb/s, 50 fps, 90k
tbn<br>
Metadata:<br>
encoder : Lavc59.37.100
mpeg2video<br>
Side data:<br>
cpb: bitrate max/min/avg:
8000000/8000000/8000000 buffer size:
20000000 vbv_delay: N/A<br>
frame= 0 fps=0.0 q=0.0 Lsize=
0kB time=00:00:00.00 bitrate=N/A
speed= 0x <br>
video:0kB audio:0kB subtitle:0kB other
streams:0kB global headers:0kB muxing
overhead: unknown<br>
Output file is empty, nothing was
encoded (check -ss / -t / -frames
parameters if used)<br>
</blockquote>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">well, I think framerate still 25
for 50i stream ....</div>
<div dir="auto"><br>
</div>
<div dir="auto">can you re-check last line with
framerate parameter removed or changed back to
25?</div>
<div dir="auto"><br>
</div>
</div>
</blockquote>
<br>
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 <br>
</blockquote>
<br>
Finally ready, I had to recall a lot since 2023.<br>
<br>
ls /dev/video*<br>
/dev/video0 /dev/video1 /dev/video2 /dev/video3<br>
<br>
<br>
for i in /dev/video*; do echo "$i"; udevadm info
--query=all --attribute-walk --name=$i | grep -E "name";
done<br>
/dev/video0<br>
ATTR{name}=="USB3.0 UHD: USB3.0 UHD"<br>
/dev/video1<br>
ATTR{name}=="USB3.0 UHD: USB3.0 UHD"<br>
/dev/video2<br>
ATTR{name}=="USB 2.0 Camera: HD 720P Webcam"<br>
/dev/video3<br>
ATTR{name}=="USB 2.0 Camera: HD 720P Webcam"<br>
<br>
<br>
v4l2-ctl --list-devices<br>
USB 2.0 Camera: HD 720P Webcam (usb-0000:00:14.0-11.2):<br>
/dev/video2<br>
/dev/video3<br>
/dev/media1<br>
<br>
USB3.0 UHD: USB3.0 UHD (usb-0000:00:14.0-3):<br>
/dev/video0<br>
/dev/video1<br>
/dev/media0<br>
<br>
As seen the HDMI-USB3 capture card + the S-Video/HDMI
converter (with the analog S-video camcorder) is now on
/dev/video0<br>
while the USB2 webcam is on /dev/video2<br>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">but what is on video1 ?</div>
</div>
</blockquote>
<br>
Nothing as far as I can see(?). It seems both camera devices
allocate or are associated with three devices each.<br>
<br>
<blockquote type="cite"
cite="mid:CA+rFky7jYdA-VAGmT6aT3_kwK-OWr5Hx8hA2QxaVzirUx_5mtA@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto">it seems that whole thing fail at</div>
<div dir="auto"><br>
</div>
<div dir="auto">Dequeued v4l2 buffer contains corrupted data (0
bytes).</div>
</div>
</blockquote>
<br>
I seems to happend when and after using unsupported fps <br>
<br>
<blockquote type="cite"
cite="mid:CA+rFky7jYdA-VAGmT6aT3_kwK-OWr5Hx8hA2QxaVzirUx_5mtA@mail.gmail.com">
<div dir="auto">
<div dir="auto">Does anything else (guvcview, vlc ..) process
video stream this usb3 UHD device?</div>
<div dir="auto"><br>
</div>
<div dir="auto">mplayer tv:// -demuxer tv ?</div>
</div>
</blockquote>
<br>
Not that I use, but have not haven't found a way to verify it.<br>
<br>
However, I have recalled and found out more with progress. <br>
<br>
The most important it seems required to reboot the machine with the
camcorder ON (video signal) on beforehand, before ffmpeg get the
video input.<br>
<br>
Reboot also seems required to clean up v4L2 buffer after using
unsupported fps ffplay or ffmpeg cause the<br>
"Dequeued v4l2 buffer contains corrupted data (0 bytes)." <br>
Hopefully there are a v4L command to easier cleanup the latter?<br>
<br>
Beside the already listed Video4Linux devices, there are also<br>
<br>
cat /proc/asound/cards<br>
<blockquote> 0 [PCH_1 ]: HDA-Intel - HDA Intel PCH<br>
HDA Intel PCH at 0x4200910000 irq 168<br>
1 [PCH ]: HDA-Intel - HDA Intel PCH<br>
HDA Intel PCH at 0x41300000 irq 169<br>
2 [UHD ]: USB-Audio - USB3.0 UHD<br>
MACROSILICON USB3.0 UHD at
usb-0000:00:14.0-3, super speed<br>
3 [Camera ]: USB-Audio - USB 2.0 Camera<br>
Sonix Technology Co., Ltd. USB 2.0 Camera at
usb-0000:00:14.0-11.2, high speed<br>
</blockquote>
<br>
However, so far ffmpeg has yet to find any audio streams via v4l2 as
seen below.<br>
S-vido as well as audio L/R cables are connected between the
camcorder out and A/D converter IN.<br>
Maybe additional configuration is required (I didn't think the
separate sound card (Behringer U-Phono should be necessary) <br>
----------<br>
<br>
To list the v4l2 device capabilities;<br>
<br>
v4l2-ctl -d /dev/video0 --list-formats-ext<br>
<blockquote>ioctl: VIDIOC_ENUM_FMT<br>
Type: Video Capture<br>
<br>
[0]: 'YUYV' (YUYV 4:2:2)<br>
Size: Discrete 1920x1080<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1600x1200<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1360x768<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1280x1024<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1280x960<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1280x720<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 1024x768<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 800x600<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 720x576<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 720x480<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
Size: Discrete 640x480<br>
Interval: Discrete 0.017s (60.000 fps)<br>
Interval: Discrete 0.020s (50.000 fps)<br>
Interval: Discrete 0.033s (30.000 fps)<br>
Interval: Discrete 0.050s (20.000 fps)<br>
Interval: Discrete 0.100s (10.000 fps)<br>
</blockquote>
<br>
That is supported 10-20-30-50-60 fps for all sizes, not 25 fps!<br>
-------------<br>
<br>
Try the same test for /dev/video1<br>
<br>
v4l2-ctl -d /dev/video1 --list-formats-ext<br>
<blockquote>ioctl: VIDIOC_ENUM_FMT<br>
</blockquote>
===========<br>
<br>
ffmpeg listed available formats (supported pixel formats, video
formats, and frame sizes) for a particular input device: <br>
<br>
ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video0<br>
<br>
[video4linux2,v4l2 @ 0x55a384b214c0] Raw : yuyv422
: YUYV 4:2:2 : 1920x1080 1600x1200 1360x768 1280x1024
1280x960 1280x720 1024x768 800x600 720x576 720x480 640x480<br>
[in#0 @ 0x55a384b21200] Error opening input: Immediate exit
requested<br>
Error opening input file /dev/video0.<br>
<br>
And similar test for /dev/video1<br>
<br>
ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video1<br>
<br>
[video4linux2,v4l2 @ 0x557e1a5164c0] ioctl(VIDIOC_G_INPUT):
Inappropriate ioctl for device<br>
[in#0 @ 0x557e1a516200] Error opening input: Inappropriate ioctl for
device<br>
Error opening input file /dev/video1.<br>
Error opening input files: Inappropriate ioctl for device<br>
<br>
===============<br>
<br>
With supported 50 fps specified, ffplay playback looks ok visually:<br>
<br>
ffplay -hide_banner -f v4l2 -input_format yuyv422 -video_size
720x576 -framerate 50 /dev/video0<br>
<blockquote>Input #0, video4linux2,v4l2, from '/dev/video0':B sq=
0B <br>
Duration: N/A, start: 311.577886, bitrate: 331776 kb/s<br>
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422,
720x576, 331776 kb/s, 50 fps, 50 tbr, 1000k tbn<br>
^Cterje@localhost:/Videoklipp/HDMI-USB3_Capture> sq= 0B <br>
</blockquote>
===============<br>
<br>
Capture DVD compatible MPG video (no audio found) with supported 50
fps progressive video.<br>
No Audio stream!?<br>
<br>
ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size
720x576 -framerate 50 -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_50fps_ms2130.mpg<br>
<blockquote>Input #0, video4linux2,v4l2, from '/dev/video0':<br>
Duration: N/A, start: 323.195348, bitrate: 331776 kb/s<br>
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422,
720x576, 331776 kb/s, 50 fps, 50 tbr, 1000k tbn<br>
Stream mapping:<br>
Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video
(native))<br>
Press [q] to stop, [?] for help<br>
[mpeg2video @ 0x55e390580200] Warning vbv_delay will be set to
0xFFFF (=VBR) as the specified vbv buffer is too large for the
given bitrate!<br>
Output #0, vob, to '720x576_50fps_ms2130.mpg':<br>
Metadata:<br>
encoder : Lavf61.7.100<br>
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv,
progressive), 720x576, q=2-31, 8000 kb/s, 50 fps, 90k tbn<br>
Metadata:<br>
encoder : Lavc61.19.101 mpeg2video<br>
Side data:<br>
cpb: bitrate max/min/avg: 8000000/8000000/8000000 buffer
size: 20000000 vbv_delay: N/A<br>
[out#0/vob @ 0x55e390581e00] video:18921KiB audio:0KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing
overhead: 1.242550%<br>
frame= 1000 fps= 50 q=2.5 Lsize= 19156KiB time=00:00:19.98
bitrate=7854.2kbits/s speed=0.998x <br>
</blockquote>
<br>
Stopped automatic ! Why?<br>
<br>
----------------<br>
<br>
du -sh *<br>
<blockquote>19M 720x576_50fps_ms2130.mpg<br>
</blockquote>
<br>
ffprobe -hide_banner 720x576_50fps_ms2130.mpg<br>
<blockquote>Input #0, mpeg, from '720x576_50fps_ms2130.mpg':<br>
Duration: 00:00:20.00, start: 0.520000, bitrate: 7846 kb/s<br>
Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p(tv,
progressive), 720x576 [SAR 1:1 DAR 5:4], 50 fps, 50 tbr, 90k tbn<br>
Side data:<br>
cpb: bitrate max/min/avg: 8000000/0/0 buffer size:
20004864 vbv_delay: N/A<br>
</blockquote>
<br>
The video file playback looks ok with correct SD aspect ratio using
ffplay and VLC, though "1080P" is printer near the top-right corner.<br>
<br>
============================<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>