[Cin] Is SD and HD 422 Video Capture obtainable with V4L(2)?

Terje J. Hanssen terjejhanssen at gmail.com
Sun Dec 19 02:21:28 CET 2021



Den 19.12.2021 01:00, skrev Andrew Randrianasulu:
>
>
> On Sunday, December 19, 2021, Terje J. Hanssen 
> <terjejhanssen at gmail.com <mailto:terjejhanssen at gmail.com>> wrote:
>
>
>
>     Den 18.12.2021 04:35, skrev Andrew Randrianasulu:
>
>
>
>         On Saturday, December 18, 2021, Terje J. Hanssen
>         <terjejhanssen at gmail.com <mailto:terjejhanssen at gmail.com>
>         <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>>> wrote:
>
>
>
>             Den 17.12.2021 22:49, skrev Andrew Randrianasulu:
>
>
>
>                 On Saturday, December 18, 2021, Terje J. Hanssen via Cin
>                 <cin at lists.cinelerra-gg.org
>         <mailto:cin at lists.cinelerra-gg.org>
>                 <mailto:cin at lists.cinelerra-gg.org
>         <mailto:cin at lists.cinelerra-gg.org>>
>                 <mailto:cin at lists.cinelerra-gg.org
>         <mailto:cin at lists.cinelerra-gg.org>
>                 <mailto:cin at lists.cinelerra-gg.org
>         <mailto:cin at lists.cinelerra-gg.org>>>> wrote:
>
>
>
>                     Den 17.12.2021 15:00, skrev Terje J. Hanssen:
>
>
>                         Den 17.12.2021 04:58, skrev Andrew Randrianasulu:
>
>
>
>                             On Friday, December 17, 2021, Terje J. Hanssen
>                             <terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>
>                 <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>>
>                 <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>
>         <mailto:terjejhanssen at gmail.com <mailto:terjejhanssen at gmail.com>>>
>                             <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>
>                 <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>>
>                             <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>
>                 <mailto:terjejhanssen at gmail.com
>         <mailto:terjejhanssen at gmail.com>>>>> wrote:
>
>                         [......]
>
>                                 ===============
>
>                                 I-frame-only 50 Megabit MPEG-2 or
>         comparable
>                 DV50 in
>                             4:2:2 as
>                                 high-end, "visually lossless" intermediate
>                 format for
>                             archival and
>                                 suited for editing?
>
>                                 -----------------
>
>                                 Regarding DV50, FFMpeg has a friendly
>         "target
>                 dv50"
>                             support
>                                 (similar as "target DVD"). So to get a
>         first
>                 look on a
>                             DV50 test
>                                 file, I simply transcoded 422/10bit
>         Video and PCM
>                             audio from a MOV
>                                 file (ProRes 422HQ) to a raw DV50
>         (422/8bit) file:
>
>                                     ffmpeg -i SD-MOV.mov -target pal-dv50
>                 SD-DV50.dv
>
>                                 [......]
>
>
>                                 205M SD-DV50.dv (ffmpeg
>         re-encoded/remuxed)
>                 AV-info:
>
>                                 avprobe SD-DV50.dv
>                                 avprobe version 12.3, Copyright (c)
>         2007-2018 the
>                             Libav developers
>                                   built on Mar 26 2018 12:39 with gcc
>         11 (SUSE
>                 Linux)
>                                 [dv @ 0x55cdddb96440] Estimating
>         duration from
>                             bitrate, this may
>                                 be inaccurate
>                                 Input #0, dv, from 'SD-DV50.dv':
>                                   Metadata:
>                                     timecode        : 00:00:00:00
>                                   Duration: 00:00:29.80, start:
>         0.000000, bitrate:
>                             57600 kb/s
>                                   Stream #0:0: Video: dvvideo, yuv422p,
>                 720x576 [SAR
>                             16:15 DAR
>                                 4:3], 25000 kb/s, 25 fps, 25 tbr, 25
>         tbn, 25 tbc
>                                   Stream #0:1: Audio: pcm_s16le, 48000
>         Hz, stereo,
>                             s16, 1536 kb/s
>                                   Stream #0:2: Audio: pcm_s16le, 48000
>         Hz, stereo,
>                             s16, 1536 kb/s
>                                 # avprobe output
>
>                                 ===================
>
>                                 As seen above, it looks like ffmpeg
>         produced wrong
>                             meta data for
>                                 the DV50 video bitrate (25 Mb/s=DV25),
>         while
>                 the total
>                             bitrate
>                                 57.6 Mb/s is correct. (Also similar
>         was seen with
>                             ffprobe and
>                                 Mediainfo).
>
>                                 My VLC player or Gnome movieplayer did not
>                 playback
>                             the DV50 file,
>                                 while ffplay did (as usual without
>         audio?).
>
>                                 Cin-GG miss a DV50 preset among format
>         setting.
>                             However DV50 else
>                                 loades preliminary OK in Cin-GG (via
>         ffmpeg).
>
>
>                             I'll look at dv50 output preset..
>
>                         Fine
>
>                     ===============
>
>                     I tried also to transcode and remux 422 Video and PCM
>                 Audio to a
>                     50 Mbps MPEG-2 I-frame only program stream.
>
>                     1) MPG From MOV (ProRes 422HQ)
>                     ------------------------------
>
>                     ffmpeg -i SD-MOV.mov -c:v mpeg2video -bf 2 -b:v 50M
>                 -maxrate 50M
>                     -minrate 50M -c:a pcm_s16be -f vob SD-MP2I-50.mpg
>                     [....]
>                     Stream mapping:
>                       Stream #0:0 -> #0:0 (prores (native) ->
>         mpeg2video (native))
>                       Stream #0:1 -> #0:1 (pcm_s24le (native) -> pcm_s16be
>                 (native))
>                     Press [q] to stop, [?] for help
>                     [mpeg2video @ 0x560ffd164ec0] Automatically
>         choosing VBV
>                 buffer
>                     size of 746 kbyte
>                     [vob @ 0x560ffd14d180] At most 8 channels allowed
>         for LPCM
>                 streams.
>                     Could not write header for output file #0
>         (incorrect codec
>                     parameters ?): Invalid argument
>                     Error initializing output stream 0:1 --
>
>                     ***This failed because PreRes Audio uses 16
>         channels:***
>
>
>                 yeah... interesting limitation.. and interesting number of
>                 channels..
>
>
>                     ffprobe SD-MOV.mov 2>&1 >/dev/null | grep
>         Stream.*Audio
>                       Stream #0:1(eng): Audio: pcm_s24le (lpcm /
>         0x6D63706C),
>                 48000
>                     Hz, 16 channels, s32 (24 bit), 18432 kb/s (default)
>
>
>                     2) MPG from DV50
>                     ----------------
>                     ffmpeg -i SD-DV50.dv -c:v mpeg2video -bf 2 -b:v 50M
>                 -maxrate 50M
>                     -minrate 50M -c:a pcm_s16be -f vob SD-MP2I-50.mpg
>
>                     du -sh *
>                     205M    SD-DV50.dv
>                     284M    SD-MOV.mov
>                     186M    SD-MP2I-50.mpg
>
>                     avprobe SD-MP2I-50.mpg
>                     Input #0, mpeg, from 'SD-MP2I-50.mpg':
>                       Duration: 00:00:29.77, start: 0.540000, bitrate:
>         52167 kb/s
>                         Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2),
>         yuv422p(tv,
>                     progressive), 720x576 [SAR 16:15 DAR 4:3], 50000
>         kb/s, 25
>                 fps, 25
>                     tbr, 90k tbn, 50 tbc
>                         Stream #0:1[0xa0]: Audio: pcm_dvd, 48000 Hz, 2
>                 channels, s16,
>                     1536 kb/s
>
>                     ***** The SD-MP2I-50.mpg file size is here 90% of DV50
>                 ********
>
>                     The SD-MP2I-50.mpg playback ok with VLC, Gnome
>         movieplayer,
>                     ffplay, and loads and playback in Cin-GG
>                     The audio volume seems low (weak), but can probably be
>                 adjusted
>                     higher with ffmpeg
>
>
>                 well, but I missed keyframe parameter? bitrate is big
>         but I
>                 think without special param ffmpeg still will not make
>         all-I
>                 mpeg2 stream..?
>
>
>
>             The first Video part of my ffmpeg script was based on this
>             standard FFmpeg Howto for
>             "MPEG-2 I-frame only Highest Quality Encoding", which didn't
>             include a keyframe parameter !?
>         https://brunosan.eu/images/ffmpeg_howto.html#Encoding_MPEG-2_I-frame_only_in_Highest_Quality
>         <https://brunosan.eu/images/ffmpeg_howto.html#Encoding_MPEG-2_I-frame_only_in_Highest_Quality>
>            
>         <https://brunosan.eu/images/ffmpeg_howto.html#Encoding_MPEG-2_I-frame_only_in_Highest_Quality
>         <https://brunosan.eu/images/ffmpeg_howto.html#Encoding_MPEG-2_I-frame_only_in_Highest_Quality>>
>
>             ffmpeg -i <input_file> -vcodec mpeg2video -pix_fmt yuv422p
>         -qscale
>             1 -qmin 1 -intra -an output.m2v
>
>
>         you missed
>
>         -intra?
>
>
>     Thanks for reviewing. "-intra" should definitely be there, and I
>     know I used it before editing and troubleshooting the audiopart,
>     removing -an. Cleaned up and added also some other parameters
>     -q:v 1 -qmin 1 -intra
>
>
>     3) MP2I50 from DV50:
>     ---------------------
>     ffmpeg -i SD-DV50.dv -c:v mpeg2video -q:v 1 -qmin 1 -intra -bf 2
>     -b:v 50M -maxrate 50M -minrate 50M -c:a pcm_s16be -f vob SD-MP2I50.mpg
>     [...]
>     Input #0, dv, from 'SD-DV50.dv':
>       Metadata:
>         timecode        : 00:00:00:00
>       Duration: 00:00:29.80, start: 0.000000, bitrate: 57600 kb/s
>       Stream #0:0: Video: dvvideo, yuv422p, 720x576 [SAR 16:15 DAR
>     4:3], 25000 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
>       Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
>       Stream #0:2: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
>     [... a lot of vob buffer messages scrolling ....]
>     [vob @ 0x564dbf6a0680] packet too large, ignoring buffer limits to
>     mux it
>     [vob @ 0x564dbf6a0680] buffer underflow st=1 bufi=7204 size=7680
>     frame=  745 fps=460 q=1.0 Lsize=  189584kB time=00:00:29.76
>     bitrate=52186.6kbits/s speed=18.4x
>     video:181698kB audio:5588kB subtitle:0kB other streams:0kB global
>     headers:0kB muxing overhead: 1.227127%
>
>     avprobe SD-MP2I50.mpg
>     avprobe version 12.3, Copyright (c) 2007-2018 the Libav developers
>       built on Mar 26 2018 12:39 with gcc 7 (SUSE Linux)
>     Input #0, mpeg, from 'SD-MP2I50.mpg':
>       Duration: 00:00:29.80, start: 0.540000, bitrate: 52116 kb/s
>         Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p(tv,
>     progressive), 720x576 [SAR 16:15 DAR 4:3], 50000 kb/s, 25 fps, 25
>     tbr, 90k tbn, 50 tbc
>         Stream #0:1[0xa0]: Audio: pcm_dvd, 48000 Hz, 2 channels, s16,
>     1536 kb/s
>
>     ================
>
>     (Re)tested also with
>
>     4) No intra (-intra)
>     ffmpeg -i SD-DV50.dv -c:v mpeg2video -bf 2 -b:v 50M -maxrate 50M
>     -minrate 50M -c:a pcm_s16be -f vob SD-MP2-50.mpg
>
>     5) Without specified Video bitrate (-b:v)
>     ffmpeg -i SD-DV50.dv -c:v mpeg2video -q:v 1 -qmin 1 -intra -bf 2
>     -c:a pcm_s16be -f vob SD-MP2I-.mpg
>
>     6) Video only - no Audio (-an):
>     ffmpeg -i SD-DV50.dv -vcodec mpeg2video -q:v 1 -qmin 1 -intra -an
>     SD-MP2I50-an.m2v
>
>     -----------------
>
>     du -sh *
>     284M    SD-MOV.mov
>     205M    SD-DV50.dv
>     186M    SD-MP2I50.mpg    (3)
>     186M    SD-MP2-50.mpg    (4)
>     153M    SD-MP2I-.mpg     (5)
>     146M    SD-MP2I50-an.m2v (6)
>
>     As seen, no size difference between -intra (3) and without intra
>     flag specified (4) above:
>     186/205 = 90% size of the input SD-DV50.dv
>
>     I would expect this due to high bitrate and some more effectiv
>     video compression for MPEG-2 over DV50.
>     While the consumer DV25/4:2:0 pal uses 5:1 intra compression, the
>     pro(sumer) DV50/4:2:2 uses lower 3.3:1.
>
>     -------------
>
>     7) Another, equivalent SD MPEG-2/ 422P at ML option to setup for
>     Cin-GG/ FFMpeg preset could be:
>
>     D10 aka Sony IMX50 Encoding - a standard definition professional
>     video recording format. Uses intraframe
>     compression, 4:2:2 color subsampling and user-selectable constant
>     video data rate of 30, 40 or 50 Mbit/s.
>
>     422P at ML  720 × 576 25 FPS 4:2:2 Sampling 50 Mbits/s
>     Sony IMX50 (I only), Broadcast Contribution (I&P only)
>
>     The Howto contains both a short and a long script version.
>
>     ----------------
>
>
>         ffmpeg changes cmd line and API quickly.. (
>
>         try "-g 1" and check keyframes with some linevlike those?
>
>         https://snippets.bentasker.co.uk/page-1707191206-Get-Video-Keyframe-Interval-(ffprobe)-BASH.html
>         <https://snippets.bentasker.co.uk/page-1707191206-Get-Video-Keyframe-Interval-(ffprobe)-BASH.html>
>         <https://snippets.bentasker.co.uk/page-1707191206-Get-Video-Keyframe-Interval-(ffprobe)-BASH.html
>         <https://snippets.bentasker.co.uk/page-1707191206-Get-Video-Keyframe-Interval-(ffprobe)-BASH.html>>
>
>
>     I tried to copy and paste some line from the manual url, but
>     If you possibly can setup an exact FF syntax to run here, I can do
>     it ;)
>
>
> attached copy of script Phyllis send to me back in 2019
>

Sorry I'm not skilled with sed scripts. "Somewhere" I would expect my 
encoded file name "SD-MP2I50.mpg" should be put in to be read and 
analyzed with ffprobe? And what about the first mentioned "-g 1" ?

What are we really searching for or verify in this I-frame only encoded 
MPEG-2 video file ?

And isn't keyframes another (previous?) name for Intra-frames?




>
>
>
>
>
>
>
>
>             I dropped -pix_fmt yuv422p when I saw it was detected and
>             automatic from the input file.
>
>
>             So I added the second PCM Audio part (similar I did for SD-DV)
>             according to 1. Answer at
>         https://stackoverflow.com/questions/48265448/mpeg-2-program-stream-w-pcm-audio
>         <https://stackoverflow.com/questions/48265448/mpeg-2-program-stream-w-pcm-audio>
>            
>         <https://stackoverflow.com/questions/48265448/mpeg-2-program-stream-w-pcm-audio
>         <https://stackoverflow.com/questions/48265448/mpeg-2-program-stream-w-pcm-audio>>
>
>             FFmpeg only supports muxing 16 bit PCM in a MPEG2 PS. Use
>
>             ffmpeg -i "input.mov" \
>               -c:v mpeg2video -pix_fmt yuv422p -bf 2 -b:v 50M -maxrate 50M
>             -minrate 50M \
>               -s 1920x1080 -aspect 16:9 \
>               -c:a pcm_s16be -f vob "output.mpg"
>
>             The -f vob is needed to force a MPEG-2 PS, else ffmpeg
>         will select
>             MPEG-1 Systems muxer.
>
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20211219/3d4ca458/attachment-0001.htm>


More information about the Cin mailing list