x264 Frameanalyse (B-Frame-Häufigkeit)

  • Bezüglich des SAR's hat allerdings haalis raw recht.

    mkvmerge entfernt die AR-Informationen beim muxen. mkvextract fügt keine hinzu. Haalis Muxer fügt beim Muxen die AR-Informationen hinzu, wenn sie nicht existieren. Ich kann mir vorstellen, dass Haalis m2r die AR-Informationen beim Extrahieren ebenfalls hinzufügt, wenn sie nicht existieren.

  • mkvmerge entfernt die AR-Informationen beim muxen. mkvextract fügt keine hinzu. Haalis Muxer fügt beim Muxen die AR-Informationen hinzu, wenn sie nicht existieren. Ich kann mir vorstellen, dass Haalis m2r die AR-Informationen beim Extrahieren ebenfalls hinzufügt, wenn sie nicht existieren.

    Das war's schon wieder. Im Stream waren gar keine AR-Info's drin, sondern nur im mkv-Container. mkvextract hat richtigerweise deshalb keine AR-Info verwendet, während Haalis m2r die AR-Info aus dem Container dem Stream zugeordnet hat.

    Vielen Dank für die Info's.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Hallo,

    es gibt eine neue Version von h264ex:

    • Der RAW-Stream wird nun von h264ex mittels mkvextract selbst erzeugt. Der umständliche Weg über graphedit entfällt.
    • Es gibt noch mehr Info's.
    • Es gibt eine Beschreibung.


    Nützlich für alle, die die Wirkung von x264-Parametern testen wollen, die die Häufigkeit von Frames beeinflussen.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

    Einmal editiert, zuletzt von akapuma (24. Januar 2010 um 16:03) aus folgendem Grund: Anhang entfernt, neue Version hinten

  • mkvmerge entfernt die AR-Informationen beim muxen. mkvextract fügt keine hinzu.

    Hallo,
    getrieben von der Frage ob --sar das AR-Flag wirklich im Bit-Stream verankert oder vielleicht doch nur direkt bei Streamausgabe als DAR in den Container schreibt, verwirrt mich dabei obige Aussage.

    Ein mit mkvextrakt erstellter Elementary-Stream hat bei mir immer noch das korrekte AR-Flag gespeichert, wie
    a) erneutes muxxen mittels mkvmerge zeigt

    Zitat


    mkvmerge v2.0.0 ('After The Rain Has Fallen') built on Jan 13 2007 19:58:31
    'D:\AR-Flag-Test\1_Track1.h264': Using the AVC/h.264 ES demultiplexer.
    Track 0 of 'D:\AR-Flag-Test\1_Track1.h264': Extracted the aspect ratio information from the MPEG-4 layer 10 (AVC) video data and set the display dimensions to 1489/576.

    b) die Mplayer-Ausgabe ebenfalls korrekt erkennt (gleicher RAW-Stream)

    Zitat


    Starting playback...
    VDec: vo config request - 1024 x 576 (preferred colorspace: Planar YV12)
    VDec: using Planar YV12 as output csp (no 0)
    Movie-Aspect is 2.59:1 - prescaling to correct movie aspect.

    SwScaler: BICUBIC scaler, from Planar YV12 to BGR 24-bit using MMX2
    VO: [directx] 1024x576 => 1490x576 Planar YV12

    (Das Seitenverhältnis ist richtig, habe willkürlich --sar 16:11 auf eine 1024er Quelle angewandt).

    Um das selber nochmals zu überprüfen drängt sich auch die Frage auf wie ich aus einem RAW-Stream nun das Flag auch wieder auslesen kann.

    mkv-Info kanns nicht und h264_parse aus den mpeg4iptools aus dem Beitrag vorher listet es nicht.
    Wer gibt nen Tipp?

    (Sorry falls zu sehr offtopic.)
    greets
    LTJ

  • Hallo,
    getrieben von der Frage ob --sar das AR-Flag wirklich im Bit-Stream verankert oder vielleicht doch nur direkt bei Streamausgabe als DAR in den Container schreibt, verwirrt mich dabei obige Aussage.

    Aaaaalso. Wenn mkvmerge AVC/h.264 aus einem h.264 ES oder einem MP4 liest (bin mir gerade nicht sicher, ob das auch für "Quelle ist Matroska" gilt), dann entfernt mkvmerge die AR-Informationen aus dem h.264 bitstream, sprich aus dem SPS (sequence parameter set).

    mkvextract verändert das SPS beim Schreiben einer h.264 ES nicht.

    Zitat

    Ein mit mkvextrakt erstellter Elementary-Stream hat bei mir immer noch das korrekte AR-Flag gespeichert, wie
    a) erneutes muxxen mittels mkvmerge zeigt

    Hmm, wurde die Datei vorher mit mkvmerge erstellt? mkvmerge kennt übrigens einen Parameter "--engage keep_bitstream_ar_info", bei dem die AR-Informationen nicht entfernt werden.

    Zitat

    mkv-Info kanns nicht und h264_parse aus den mpeg4iptools aus dem Beitrag vorher listet es nicht.

    mkvinfo liest wirklich nur Matroska-Dateien.

  • ...(bin mir gerade nicht sicher, ob das auch für "Quelle ist Matroska" gilt)...

    gilt da auch, gerade eben nochmal probiert

    Zitat


    Hmm, wurde die Datei vorher mit mkvmerge erstellt?


    x264.exe kann den Video-Stream eigenständig in MKV ausgeben. Dies war auch die Quelle für mkvextract um den RAW-Stream zu erstellen und zugleich mein Denkfehler.
    Als MeGUI-Benutzer bin ich bisher davon ausgegeangen, dass x264.exe grundsätzlich immer erst einen RAW-Stream erstellt und am Ende mkvmerge dazu benutzt um die Video-MKV zu erstellen, wenn für das Outputformat MKV gewählt ist.

    Ich hab das von x264 geschriebene MKV also fälschlicherweise schon als "produced by mkvmerge" angesehen, wodurch meine Testergebnisse dann mit deiner, von mir zitierten, Aussage kollidiert ist.

    Nun, die Welt ist wieder rund und alles ist gut, vielen Dank. :)
    greets
    LTJ

  • Hallo,

    siehe auch hier.

    1: mit x264 ein mkv mit der Option --sar 1:5 erstellt
    2: ffshow zeigt beim Abspielen "SAR: 1/5 DAR: 1/4" an.
    3: Stream aus 1 mit ogg und mkvmerke und der Option --aspect-ratio 1:11 gemuxt
    4: Beim Abspielen zeigt ffdshow "SAR: 44/5 DAR 11/1" an.
    5: Gemuxte Datei durch mkvinfo laufen lassen:
    + Video track
    | + Pixel width: 320
    | + Pixel height: 256
    | + Interlaced: 0
    | + Display width: 2816
    | + Display height: 256
    2816/256 => 11
    6: h264_parse auf mit mkvextract extrahierte raw angewendet: "aspect_ratio_info_present_flag: 0"

    Habe ich in Post #6 in obigem Link Blödsinn geschrieben? Bin etwas verwirrt.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • 1: mit x264 ein mkv mit der Option --sar 1:5 erstellt

    AR-Information im Bitstream vorhanden.

    Zitat

    3: Stream aus 1 mit ogg und mkvmerke und der Option --aspect-ratio 1:11 gemuxt

    mkvmerge entfernt beim Muxen die Bistream-AR-Informationen und traegt "11:1" bei "display width/display height" ein.

    Zitat

    4: Beim Abspielen zeigt ffdshow "SAR: 44/5 DAR 11/1" an.

    ffdshow wertet dabei hoechstwahrscheinlich die AR-Informationen des Containers aus -- sprich "display width/height" der Matroska-Datei.

    Zitat

    6: h264_parse auf mit mkvextract extrahierte raw angewendet: "aspect_ratio_info_present_flag: 0"

    Das ist richtig so. In Schritt 3 ist die Bitstream-AR-Information entfernt worden & mkvextract schreibt sie nicht wieder rein.

    Alle Klarheiten beseitigt? ;)

  • mkvmerge entfernt beim Muxen die Bistream-AR-Informationen


    Warum entfernt mkvmerge eigentlich das AR-Flag? Mir will nämlich so recht kein Grund einfallen, warum man das Flag unbedingt ausschließlich im Container haben möchte. Bitte nicht als Kritik auffassen, schließlich gibt's ja einen Umschalter für das Verhalten. Mich interessiert nur der Grund.

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Warum entfernt mkvmerge eigentlich das AR-Flag? Mir will nämlich so recht kein Grund einfallen, warum man das Flag unbedingt ausschließlich im Container haben möchte. Bitte nicht als Kritik auffassen, schließlich gibt's ja einen Umschalter für das Verhalten. Mich interessiert nur der Grund.

    Weil verschiedene Demuxer/Decoder sehr unterschiedlich auf AR-Informationen im Bitstream reagieren. Ich erzwinge damit das für Matroska richtige Verhalten. Bei Matroska gilt (und das sollte meiner Meinung nach IMMER gelten), dass die Container-Informationen die maßgeblichen Informationen sind. Damit das Playbacksystem gar nicht erst auf die Idee kommen kann, die AR-Informationen des Containers zu übersehen, entferne ich die des Bitstreams.

    BTW: Container sind dafür da, um unabhängig vom verwendeten Inhalt generische Informationen zur Verfügung zu stellen: Timing, Videoauflösung, und auch die AR-Informationen. Es muss mit einem generischen Tool, das zwar mit dem Containerformat umgehen kann, aber nicht zwangsläufig das Bitstreamformat des Inhalts versteht, möglich sein, diese Informationen zu ändern. Deshalb: Container-Informationen wichtiger als Bitstream-Informationen.

  • Hallo,

    h264ex wird zur Zeit umfangreich überarbeitet. Ich habe festgestellt, daß sich mit x264 selbstgemachte Filme im Aufbau erheblich von elephants dream (Quicktime H.264) unterscheiden. Daher suche ich noch ein paar H.264 Testclips, erstellt mit unterschiedlichen Encodern. Kann mir jemand Quellen nennen? Es müßte doch auch Nero-H.264-Files geben? Was gibt es noch?

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Bei testclips empfielt es sich immer einen Blick auf den Samples Ordner von MPlayer zu werfen. Unter http://www.mplayerhq.hu/MPlayer/samples/ gibt es sowohl einen MPEG-4 als auch V-Codec Ordner. Was da nun genau für Codecs unter MPEG-4 zu finden ist kann ich nicht sagen. Unter V-Codec sind nochmal unterordner mit den entsprehenden FourCC als Ordnername.

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Hallo,

    erstmal Danke für die Antworten. Ein Nero-Stück habe ich jetzt bereits zum Testen. Die geparste Datei sieht wieder anders aus. h264ex scheint noch reichlich Arbeit zu machen.

    Selur:
    An einem Quicktime-Pro encodierten Stück wäre ich interessiert. Es sollte so lang sein, daß es aus mehreren GOP's besteht.
    Zu Deinem Link: In der Liste stand auch AVIVO drin, das kann ich selber machen. Siehe Abspielprobleme.

    ac-chan:
    Danke, werd mal reingucken.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • akapuma: Encode dir heute abend ein paar Minuten.

    mp4box sagt zu deinem File: [iso file] Box "avcC" size 48 invalid (read 49)

    mkvtoolnix hat sogar dafür mal nen Fix eingebaut "MP4/QuickTime files which contain another atom before the 'avcC' atom in the video track headers weren't correctly remuxed."

  • h264ex benutzt mkvinfo. Ursprünglich war die Ausgabe von mkvinfo in englisch, nun ist sie in deutsch. Daher hat h264 z.B. nach "track number" anstatt nach "Tracknummer" gesucht.

    Alle mkvtoolnix-Tools unterstützen die explizite Auswahl der Programmsprache mit dem Parameter "--ui-language". Um auch in deutschen Betriebssystemen zu haben, reicht es also, das Programm mit "--ui-language en" aufzurufen, z.B. "mkvinfo --ui-language en --redirect-output output.txt yourfile.mkv"

Jetzt mitmachen!

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