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















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

Reply via email to