FFmpeg: Profile@Level in MPEG2 setzen

  • Hallo,

    mit ffmpeg versuche ich gerade nach Mpeg-2, I-frame only, 50MBit/s zu transkodieren. FFmpeg soll dabei 4:2:2P@ML für Mediainfo korrekt auslesbar in die Datei schreiben. Leider finde ich keine brauchbaren Angaben, welche Werte hierzu unter level bzw. profile (ich denke mal, das sind die entsprechenden Parameter?) angeben werden sollten. Gibt es irgendwo hierzu eine Übersicht?

    Gruß aus Marburg

  • In der FFmpeg documentation ist darüber zumindest nichts zu finden. "profile" taucht dort nicht auf.

    Laut Dark_Shikari im IRC-Channel #ffmpeg (FreeNode) sollte FFmpeg beim Encodieren das am besten passende Paar von Profile@Level automatisch in die Ausgabe schreiben.

    Wenn das nicht klappen sollte, wäre wohl binäres Patchen angesagt:

    ISO/IEC 13818 Part 1 - Table 2-40: Video stream descriptor
    ISO/IEC 13818 Part 2 - 6.2.2.3: Sequence extension
    ISO/IEC 13818 Part 2 - Table 8-1: Meaning of bits in profile_and_level_indication

  • Erstmal Danke für die Antwort.
    Was die Dokumentation betrifft würde ich sagen: in Teilen brauchbar, vieles fehlt halt.
    Der Parameter -h fördert da schon etwas mehr zu Tage, für den Rest an Weisheit muss dann hier zunächst mal Google reichen, gibt aber fast auch nichts her.
    Mit -level 8 und -profile x zeigt Mediainfo hier für:
    x=0 nichts an
    x=1 High@Main
    x=2 Spatial@Main
    x=3 SNR@Main
    x=4 Main@Main
    x=5 Simple@Main
    x=6 @Main
    und mehr finde ich im Moment mit der Probiermethode leider nicht....

    Gruß aus Marburg

  • Ich würde vermuten, dass x=6 vielleicht das richtige ist... Weit verbreitet ist leider nur die Draft- (Entwurfs-) Version von der Spezifikation ISO/IEC 13818 (ITU-T H.262). Vielleicht ist das "4:2:2 Profile" später dazugekommen und hat eine der zunächst reservierten Profile belegt, da wäre das Bitmuster 6 wahrscheinlicher als 0 oder 7.

  • Keine Ahnung von ffmpeg aber für die Profile und Level Identifikation in MPEG-2 sind 8 Bits in der Sequence Extension vorgesehen.
    z.b.

    Code
    [B][COLOR=SeaGreen]00 00 01 B5[/COLOR][/B] [B][COLOR=Red]18 5C [/COLOR][/B](grün = Extension start Code)
    18 5C = 0001 1000 0101 1100
    [B][COLOR=MediumTurquoise]0001[/COLOR][/B] [B][COLOR=Orange]1000 0101[/COLOR][/B] [B]1[COLOR=DarkOrchid]10[/COLOR][/B]0 
    [COLOR=MediumTurquoise][B]0001[/B][/COLOR] Sequence_extension ID
        [B][COLOR=DarkOrange] 1000 0101[/COLOR][/B] Profile_and_level_indication
                   [B]1[/B] Progressiv_sequence 
                    [B][COLOR=DarkOrchid]10[/COLOR][/B] Chroma_format (00-reserved, 01-4:2:0, 10-4:2:2, 11-4:4:4)
    ...

    Die "Escape profile_and_level_indication identification" (erstes Bit gesetzt) ist im ursprünglichen Draft von ISO/IEC 13818 Part 2 noch "reserved".
    Diese wurden erst mit Amendment 2 und 5 hinzugefügt.
    [Blockierte Grafik: http://members.aon.at/video.digital/Esc_pro.png]

    Aber Mediainfo kann diese imho aber nicht auslesen...

  • Wenn dem so ist, müsste das Vorhandensein einer solchen Sequenz also per Hex-Editor überprüfbar sein.
    Ok, werde mir das mal näher anschauen und dann berichten; das wird allerdings etwas dauern, da es jetzt erstmal in Urlaub geht...

    Gruß aus Marburg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!