[Cin] Blu-ray compliant MPEG-2 SD video with LPCM audio

Terje J. Hanssen terjejhanssen at gmail.com
Tue Nov 30 00:34:43 CET 2021


Den 29.11.2021 07:18, skrev Andrew Randrianasulu:
>
>
> On Monday, November 29, 2021, Terje J. Hanssen 
> <terjejhanssen at gmail.com <mailto:terjejhanssen at gmail.com>> wrote:
>
>
>
>     Den 29.11.2021 02:07, skrev Andrew Randrianasulu:
>
>
>
>         On Monday, November 29, 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>>> wrote:
>
>             2) SD ProRes.mov, 422 (HQ) 10-bit video with LPCM stereo
>         audio :)
>
>
>             Den 28.11.2021 22:48, skrev Terje J. Hanssen:
>
>                 The source video files I want to convert to Blu-ray
>         compliant
>                 MPEG-2 SD video with LPCM audio are:
>                 1) DV25.dv, 720 x 576 (PAL), 50i 4:2:0 video with LPCM
>         stereo
>                 audio
>                 and
>                 2) SD ProRes.mov, 422 (HQ) 19-bit video with LPCM
>         stereo audio
>
>                 The purpose is to get better MPEG-2 quality using higher
>                 (highest) possible bitrate than for DVD video.
>                 (Yes, I have tested h.264 via Cin-GG)
>
>
>                 Here a sample ffmpeg command script found for HD video
>         with
>                 PCM (Blu-ray not mentioned):
>         https://gist.github.com/avoidik/153879c06afdcaad8d69b38bcc00abb7
>         <https://gist.github.com/avoidik/153879c06afdcaad8d69b38bcc00abb7>
>                
>         <https://gist.github.com/avoidik/153879c06afdcaad8d69b38bcc00abb7
>         <https://gist.github.com/avoidik/153879c06afdcaad8d69b38bcc00abb7>>
>                 # with PCM 16-bit audio (uncompressed), constant video
>         bitrate
>                 with specific bitrate tolerance
>
>                 ffmpeg -i "input.mp4" \
>                   -c:v mpeg2video -pix_fmt yuv422p -refs 1 -bf 2 -b:v 50M
>                 -maxrate 50M -minrate 50M \
>                   -s 1920x1080 -aspect 16:9 \
>                   -c:a pcm_s16be -f vob \
>                   "output.mpg"
>
>
>
>     Andrew,
>
>     Thank you for your review and suggestions. I'll put the pieces
>     together tomorrow and start testing with em...
>
>
>         for SD files replace '-s 1920x1080' with '-s 720x576' or omit
>         this part {better} .
>
>
>     Not sure how to treate 720x576 (4:3) with regards to displaying on
>     a 16:9 Widescreen (HDTV), possibly crop the frames next to
>     SD Wide (16:9) "These resolutions are stored anamorphically, i.e.
>     they are stretched to the display aspect ratio by the player or
>     display."
>
>
> https://superuser.com/questions/907933/correct-aspect-ratio-without-re-encoding-video-file 
> <https://superuser.com/questions/907933/correct-aspect-ratio-without-re-encoding-video-file>
>
> ===
> for MPEG-2, -aspect is useless; you need to use -bsf:v 
> mpeg2_metadata=display_aspect_ratio=4/3 (the only valid values are 
> 4/3, 16/9, 221/100). Even this might not work {...}
> ====
>
> try to experiment..
>
>
>
>         '-b:v 40M -maxrate 40M -minrate 40M'.  for 40 mbit/s fixed
>         bitrate. for smaller bitrate just replace numbers.
>
>         -f m2ts for mpeg2 transport stream.
>
>         most likely remove -pix_fmt part.
>
>         -i your file (ffmpeg hopefully will detect its type and codecs
>         automatically)
>
>
>
>     So any Mpeg2 Profile at Level is neither required as discussed here:
>     https://forum.videohelp.com/threads/345143-mpeg2-MP-ML-with-ffmpeg#post2153378
>     <https://forum.videohelp.com/threads/345143-mpeg2-MP-ML-with-ffmpeg#post2153378>
>
>
>
>         keep -c:v mpeg2video part
>
>         I do not think you need mp4box for further conversion, as name
>         suggest it mostly deals {at output end} with mp4 format, not
>         mpeg2 transport stream (but you mentioned putting pcm in mp4,
>         so I researched this part too)
>
>
>     PCM and ffmpeg was also discussed here
>     https://forum.doom9.org/showthread.php?p=1811816#post1811816
>     <https://forum.doom9.org/showthread.php?p=1811816#post1811816>
>
>
>         try tsmuxer (gui) next (not sure if Appimage works for you, if
>         not try their linux build from their github - tags - assets
>         (there you need to expand 'assets' arrow/triangle to see
>         various binary and source archives).
>
>
>
>     Yep, tsMuxer still launches fine from my Appimage installation.
>     I'll have a look at it later....
>
=======================================

I've tried four ffmpeg tests, 1) -4) below with .m2ts and .mp4 containers
I used data rate 25M (comparable with the source dv 25 mbps, compression 
5:1)
-f m2ts not accepted as format
would not copy lpcm audio into any new streams
VLC playback the video files OK - without audio

Comments and new suggestions welcome ;)

===================

du -sh dv28*

470M    dv28.dv  (the source input file)
452M    dv28.m2ts
443M    dv28.mkv
443M    dv28.mp4
443M    dv28.mts


ffmpeg -i dv28.dv  2>&1 >/dev/null | egrep "Video|Audio"
   Stream #0:0: Video: dvvideo, yuv420p, 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

1)
ffmpeg -i dv28.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 25M -maxrate 25M 
-minrate 25M -s 720x756 -c:a pcm_s16be -f m2ts dv28.m2ts

[NULL @ 0x557007bcd900]
Requested output format 'm2ts' is not a suitable output format 
dv28.m2ts: Invalid argument

2)
ffmpeg -i dv28.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 25M -maxrate 25M 
-minrate 25M -s 720x756 -c:a pcm_s16be -f m2ts dv28.mp4

[NULL @ 0x55f3112e3900]
Requested output format 'm2ts' is not a suitable output format dv28.mp4: 
Invalid argument

3)
ffmpeg -i dv28.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 25M -maxrate 25M 
-minrate 25M -s 720x756 -c:a pcm_s16be -f mpegts dv28.m2ts

[mpeg2video @ 0x55bc49d1c040]
Automatically choosing VBV buffer size of 372 kbyte
[mpegts @ 0x55bc49d1a900]
Stream 1, codec pcm_s16be, is muxed as a private data stream and may not 
be recognized upon reading.

ffmpeg -i dv28.m2ts  2>&1 >/dev/null | egrep "Video|Audio"
   Stream #0:0[0x1011]: Video: mpeg2video (Main) ([2][0][0][0] / 
0x0002), yuv420p(tv, progressive), 720x756 [SAR 7:5 DAR 4:3], 25000 
kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc

4)
ffmpeg -i dv28.dv -c:v mpeg2video -refs 1 -bf 2 -b:v 25M -maxrate 25M 
-minrate 25M -s 720x756 -c:a pcm_s16be -f mpegts dv28.mp4

mpeg2video @ 0x56173fa7e040]
Automatically choosing VBV buffer size of 372 kbyte
[mpegts @ 0x56173fa7c900]
Stream 1, codec pcm_s16be, is muxed as a private data stream and may not 
be recognized upon reading.

ffmpeg -i dv28.mp4  2>&1 >/dev/null | egrep "Video|Audio"
   Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), 
yuv420p(tv, progressive), 720x756 [SAR 7:5 DAR 4:3], 25000 kb/s, 25 fps, 
25 tbr, 90k tbn, 50 tbc

================

Terje J. H





More information about the Cin mailing list