Quicktime/iTunes und ffdshow h264

  • Habe versucht, so viel wie möglich bei ffdshow anzupassen. Leider habe ich da nicht ganz so viele Möglichkeiten, wie es per Parameter möglich wäre... Gebe jetzt auf, keine Ahnung, woran das liegt! :(
    Danke jedenfalls, für eure Mithilfe!

  • @ Goldwingfahrer:

    Auf DVD waren maximal 2 direkt aufeinander folgende B-Frames üblich. Das nächste P-Frame kam also spätestens nach 1 I/P-Frame + 2 B-Frames = nach 3 Frames, also M=3.

    Auf BD sind heute maximal 3 direkt aufeinander folgende B-Frames üblich. Das nächste P-Frame kommt also spätestens nach 1 I/P-Frame + 3 B-Frames = nach 4 Frames, also M=4.

    Es sei denn, der H.264 Encoder soll/will nur maximal je 2 aufeinander folgende B-Frames verwenden, wodurch dann auch keine B-Frame-Pyramide notwendig und sinnvoll wäre. Dann bleibt M=3.
    __

    @ Lupurus:

    Was machst du eigentlich mit ffdshow? Willst du den VfW-Codec als H.264-Encoder benutzen?!

    Du meine Güte, wie sie alle immer noch dieses tote Pferd "H.264 in AVI" reiten... :nein:

    Und gerade in ffdshow wird der x264-Encoder nun wirklich nicht mehr gepflegt. Wenn es unbedingt nötig wäre, dann gäbe es mindestens zwei aktuellere x264vfw-Varianten ... ist es aber nicht. AVC gehört in MP4, zur Not in MKV. Und damit sollte mittlerweile eigentlich (trotz des völlig veralteten Namens) Avidemux umgehen können.

  • Was machst du eigentlich mit ffdshow? Willst du den VfW-Codec als H.264-Encoder benutzen?!

    Du meine Güte, wie sie alle immer noch dieses tote Pferd "H.264 in AVI" reiten... :nein:

    Und gerade in ffdshow wird der x264-Encoder nun wirklich nicht mehr gepflegt. Wenn es unbedingt nötig wäre, dann gäbe es mindestens zwei aktuellere x264vfw-Varianten ... ist es aber nicht. AVC gehört in MP4, zur Not in MKV. Und damit sollte mittlerweile eigentlich (trotz des völlig veralteten Namens) Avidemux umgehen können.

    War nie meine Idee ;) Leider macht das Onlinetvrecorder.com aber weiterhin noch so.
    Und die ffdshow-Codecs brauche ich, damit ich mit VirtualDub framegenau schneiden kann. Avidemux kann meines Erachtens zumindest in der aktuellen Version immer noch nicht vernünftig mit h264 umgehen.

  • Zitat

    Auf DVD waren maximal 2 direkt aufeinander folgende B-Frames üblich. Das nächste P-Frame kam also spätestens nach 1 I/P-Frame + 2 B-Frames = nach 3 Frames, also M=3.

    Habe ich doch geschrieben.
    GOP M=3

    Andrerseits habe ich auch schon 3 "B" hintereinander gesehen.

    [Blockierte Grafik: http://img23.imageshack.us/img23/156/gopmpeg2.png]

    Musste nur noch suchen wo ich das damals gelesen hatte.
    ...ah..hier
    http://www.radonmaster.de/robernd/tMPEG.html


    Zitat

    Avidemux kann meines Erachtens zumindest in der aktuellen Version immer noch nicht vernünftig mit h264 umgehen.


    Lupurus
    Darum bat ich Dich doch ein File im Netz hochzuladen.
    Ich fange dann schon beim günstigsten Hilfstool an zu probieren.........

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Hallo,

    tut mir leid, dass ich diesen alten Artikel hier nochmals auskrame. Ich habe allerdings nun inzwischen doch noch einmal das Bedürfnis erhalten, meine Avi-Dateien umzuwandeln.

    Vielleicht nochmals zur Wiederholung: Ich habe Avi-Dateien, bei denen ich mit VirtualDub die Werbung herausgeschnitten habe. Aus diesen extrahiere ich dann Video- und Audiospur, wandle die Audiospur in AAC um und füge sodann beide Spuren zu einer .m4v-Datei zusammen. Leider klappt das nur mit Dateien, die ich vorher nicht mit VirtualDub geschnitten habe. Sind sie hingegen geschnitten, erhalte ich ein Video, bei dem in Quicktime nach kurzer Zeit das Video nicht mehr abgespielt wird.

    Was ich nun herausgefunden habe: Die Einstellungen, die ich für das Smart Rendering in VirtualDub verwende, sind nicht gleich mit den Einstellungen der Ausgangsdatei. Jetzt habe ich ein Video, bei dem die erste GOP anders codiert ist als der Rest. Mit der ersten GOP scheint Quicktime Probleme zu haben. Schneide ich diese heraus und wandle dann die Avi-Datei in eine .m4v-Datei, erhalte ich ein unter Quicktime abspielbares Video.

    Ich habe die letzten zwei Stunden damit verbracht, die erste GOP neu zu codieren. Leider gelingt es mir nicht, die nötigen Einstellungen aus der Ausgangsdatei zu übernehmen. Gibt es (vllt. auch bei Mediainfo) eine Möglichkeit, aus einem vorhandenen Video die x264-Einstellungen als command line Argumente herauszufiltern?

    Goldwingfahrer: Ich kann leider kein Sample hochladen, da dies sonst gegen das Urheberrecht verstößt. Ich kann es dir allenfalls per Mail schicken (dann zählt es als Privatkopie :))

  • MediaInfo schreibt automatisch die x264-Optionen bei der Analyse in den Report (zumindest im vollständigen Modus), wenn diese im Kopf der Videospur als Text hinterlegt sind.

    Wenn der Kopf weggeschnitten wurde, wird MediaInfo im Rest des Videos wohl diesen Text nicht mehr finden.

    Ausschnitte von wenigen Sekunden können als Zitat gelten. Und einen Link zu einem Filehoster kann man auch per privater Nachricht zustellen, dann wird er nicht "öffentlich".

  • Hallo
    Hab das File geladen und nur mal kurz reingeschaut.
    Mein Videobearb.Programm spielts ohne Probleme ab und meckert erstaunlicherweise nicht mal.

    VDub akzeptiert das File nicht da ich da nicht vorgesehen habe damit AVC und MP3 zu bearbeiten [es fehlt der vfw für x264]
    http://frupic.frubar.net/fullsize/28535
    Auch auf den Lav Splitter greife ich nur auf Bedarf zurück.

    Ich werd schauen ob ich den gleichen Film hier mit meinem Digicorder ISIO-C empfangen kann.
    Werde aber H.264 und wenns denn schon mp3 ist das Ganze sicher nicht in einen AVI-Kontainer schmeissen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Hey,
    danke für's reinschauen.
    VirtualDub aktzeptiert die Dateien nur, wenn man ffdshow installiert hat.

    Hast du schon eine Idee, wie ich die erste GOP mit dem Rest in Ausgleich bringen kann?

    -----

    Eine allgemeine Frage zum Verständnis noch: Funktioniert es bei h264 überhaupt, dass ich eine GOP herausschneide und dann wieder einfüge? Oder gibt es nicht auch Frames, die nach hinten verweisen? Könnte vielleicht da mein Problem liegen?

  • Nur ist bei H.264 die "GOP-Grenze" ein IDR-Frame. Es kann auch weitere I-Frames geben, über die hinweg referenziert werden kann. Also nicht jedes I-Frame ist bei H.264 eine GOP-Grenze; und nicht jedes Schnittprogramm versteht den Unterschied zwischen I und IDR korrekt.

  • Ja, genau. Je nach dem, wie man nun "GOP" definieren möchte, ist Selurs Antwort falsch oder richtig. Keine Ahnung, ob es in den H.264-Spezifikationen eine offizielle Definition gibt. Auch kann ein I-Frame natürlich selbst auch von vorhergehenden (Display Order) bzw. nachfolgenden (Coding Order) B-Frames referenziert werden.

    Mkvmerge ist übrigens ein Beispiel für ein Programm, welches nicht IDR- von Nicht-IDR-I-Frames unterscheiden kann.

  • Ja, da geht es weiter. Diese ganzen Begrifflichkeiten, die sich immer noch aus alten MPEG-Versionen mitgezogen werden und die überall anders definiert werden. Letztendlich ist die Sache mit I-, P- und B-Frames selbst auch schon eine starke Vereinfachung - H.264 ist noch wesentlich komplizierter. Siehe z.B. periodic intra refresh.

    Habe gerade die Spec durchsucht und weder "GOP" noch "Group of Pictures" tauchen dort ein einziges mal auf.

  • Nein, beides ebenfalls nicht vorhanden. Am nächsten scheint noch "coded video sequence" zu kommen. Deckt sich dann mehr mit LigHs vom erstem IDR-Frame bis zum letztem Frame vor dem nächsten IDR-Frame.

  • Richtig. Die "eingestreuten" I-Frames sind dann nur für Fälle, in denen der Encoder nur drum herum, aber nicht für dieses eine Frame, ausreichenden Bezug zu anderen Frames finden kann, und die Codierung als P- oder B-Frame unvorteilhaft wäre (z.B. ein Frame, in dem das Bild komplett durch einen Blitz aufgehellt wurde).

  • Weiß denn jemand, wie das Smart Rendering bei VirtualDub funktioniert? Bearbeitet er nur von Keyframe zu Keyframe neu?

    Was ist denn der Unterschied zwischen einem "Keyframe" und I-/IDR-Frame?

  • Ein I-Frame ist ein Frame, der ohne Informationen aus anderen Frames decodiert werden kann. Also praktisch wie ein jpeg-Bild.
    Ein IDR-Frame ist eine spezielle Art von I-Frame, über den keinerlei Referenzen führen. D.h. kein Frame nach dem IDR-Frame darf Frames vor dem IDR-Frame referenzieren und umgekehrt. (Frames vor dem IDR-Frame dürfen auch den IDR-Frame selbst nicht referenzieren.)
    "Keyframe" ist nicht soo eindeutig definiert:
    1.) alle I-Frames
    2.) alle I-Frames, deren nachfolgende Frames (Display Order) nichts aus der Vergangenheit vor dem I-Frame referenzieren ("Recovery Points")
    3.) nur IDR-Frames
    Wenn's um Smart Renderung geht ist meistens 3.) gemeint.

    Da VirtualDub noch aus der Zeit vor H.264 stammt, bin ich mir nicht mal sicher, ob man damit überhaupt jemals vernünftiges H.264-Smart Rendering hinbekommen wird. Würde mich evtl. nach anderen Produkten, wie z.B. SolveigMM Video Splitter umschauen.

  • Dieses SolveigMM Video Splitter habe ich mir mal in der Trial-Version angeschaut. Die GUI ist ziemlich nervig. Allerdings habe ich mir mal die Mühe gemacht, eine OTVR-Datei damit zu schneiden, nachdem ich sie zuvor in eine mp4-Datei umgewandelt habe. Als Resultat erhielt ich eine Datei, die in Quicktime funktionierte. Das bringt mir allerdings leider nichts für die bereits vorhandenen und geschnittenen Avi-Dateien.

    VirtualDub wird doch stets weiterentwickelt, wieso sollte da kein Smart-Rendering gehen? Mit ffdshow ist das doch unproblematisch möglich.

Jetzt mitmachen!

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