On Tuesday, November 30, 2021, Terje J. Hanssen <terjejhanssen@gmail.com> wrote:

Den 29.11.2021 07:18, skrev Andrew Randrianasulu:


On Monday, November 29, 2021, Terje J. Hanssen <terjejhanssen@gmail.com <mailto:terjejhanssen@gmail.com>> wrote:



    Den 29.11.2021 02:07, skrev Andrew Randrianasulu:



        On Monday, November 29, 2021, Terje J. Hanssen via Cin
        <cin@lists.cinelerra-gg.org
        <mailto:cin@lists.cinelerra-gg.org>
        <mailto:cin@lists.cinelerra-gg.org
        <mailto:cin@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@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 ;)


so yeah, it seems '-f mpegts' is way to go. does sound appear if you replace
 -c:a pcm_s16be with pcm_s16le? 
 

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

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