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

Andrew Randrianasulu randrianasulu at gmail.com
Sat Dec 18 04:35:20 CET 2021


On Saturday, December 18, 2021, Terje J. Hanssen <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>> 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>>> 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
>
> ffmpeg -i <input_file> -vcodec mpeg2video -pix_fmt yuv422p -qscale 1 -qmin
> 1 -intra -an output.m2v



you missed

-intra?

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





> 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
>
> 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/20211218/6cdec8e3/attachment.htm>


More information about the Cin mailing list