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