Seite 3 von 35 ErsteErste 1234513 ... LetzteLetzte
Ergebnis 21 bis 30 von 350

Thema: OTR-Verwaltung++ - durch Patches erweiterte OTR-Verwaltung - Betatest

  1. #21

    Registriert seit
    Jan 2009
    Beiträge
    1.728

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Ich hab hier unter Mageia 2 Gstreamer 0.10.36-1.mga2 installiert. Und für mich sieht es aus, als ob der von Keyframe zu Keyframe springt, wenn man den Slider bewegt.

    Mit dieser Datei getestet (einkodierte Framenummern zur besseren Unterscheidung):
    http://dl.dropbox.com/u/7287363/Big_..._DE.mpg.HQ.avi
    (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

    Und mit Avidemux2.6 überprüft. Der zeigt die Frames, die cut.py per Slider anspringt, als Keyframes an.

    mfg
    Monarc

  2. #22
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Oh, ich habe mich wohl nicht präzise genug ausgedrückt. Mit dem Slider funktioniert es, weil es ein Flag dafür gibt zum nahesten Keyframe zu springen. Es gibt aber kein Flag dafür, zum folgenden bzw. zum vorherigen Keyframe zu springen. Wenn ich mich also bereits an einem Keyframe befinde und als Seek-Position sagen wir 10 Frames weiter angebe, mit GST_SEEK_FLAG_KEY_UNIT, dann springt er möglicherweise zum selben Keyframe zurück, weil das andere weiter weg ist. Erst mit den Flags GST_SEEK_FLAG_SNAP_BEFORE / _AFTER, die in GStreamer 1.0 eingeführt wurden, ist es möglich, anzugeben in welcher Richtung er nach dem Keyframe suchen soll.

    Man könnte sich natürlich ein Index erstellen lassen, in dem alle Keyframe gelistet sind. Das dauert dann allerdings jeweils eine halbe Minute oder eine ganze und sollte ja eigentlich unnötig sein.

    Gruß
    Jan

  3. #23

    Registriert seit
    Jan 2009
    Beiträge
    1.728

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Hm, verstehe ... für Gstreamer 1.0 ist es noch zu früh, denke ich.

    Der Max-Keyframe Abstand bei den HQ,HD,mp4 ist 250 Frames. Divx.avi müsste ich erst nachsehen.
    Also wenn du 250 Frames in eine Richtung springst und auf Keyframe einstellst, solltest du zumindest bei einem anderen Keyframe landen. (vielleicht reicht auch schon ne kleinere Zahl)
    So wird vielleicht nicht jedes Keyframe angesprungen und ein paar ausgelassen, aber auch nicht tragisch. Man sucht ja nicht Keyframes, sondern nur die Werbung.

    mfg
    monarc

  4. #24
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Okay. Ich habe das mal eingebaut. Eigentlich sollte man meinen, dass bei einem Max-Keyframe Abstand von 250 das schon mit 126er Schritten funktioniert, aber man muss tatsächlich 250er Schritte verwenden, damit man nicht an einem Frame hängen bleibt. So überspringt man natürlich einige Keyframes und erhält unterschiedliche Keyframes, je nachdem ob man vorwärts oder rückwärts durchgeht. Aber du kannst es ja mal testen. Bei mir hat es jetzt mit HQ und Divx funktioniert. Die Tastenbelegung ist so wie du sie gewünscht hast.

    Gruß
    Jan

    Anhang 6914

  5. #25
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    So, hat ein bisschen gedauert, weil das Debuggen so aufwendig war (immer diese Deadlocks). Ich habe ein kleines GStreamer-Element geschrieben, das die Suche nach den Keyframes umsetzt. Die einfache Variante konnte ich leider nicht umsetzen, weil ich dafür das ganze DecodeBin hätte neu schreiben müssen. Also habe ich die Suchvariante benutzt, die du beschrieben hast: Seeks in 25er Frame Abstände mit GST_SEEK_FLAG_KEY_UNIT, bis ein neues Keyframe kommt. Ich habe das für beide Richtungen genommen, da es keine Garantie gibt, dass die Demuxer für MP4 oder MKV ebenso wie Avi Demuxer das letzte Keyframe wählen oder nicht doch das naheste.

    Bei HQ und HD scheint das sehr gut zu funktionieren, da die einen minimalen Abstand von 25 Frames zwischen Keyframes haben. Bei den Standard-Avis wird schon mal das eine oder andere Keyframe übersprungen, wenn mehrere dicht aneinander liegen. Ich habe in einer Datei mit Avidemux zum Beispiel mehrfach zwei Keyframes direkt hintereinander gefunden. Aber mir sind ehrlich gesagt nur die HQ und HD wichtig.

    Weiter habe ich noch zwei kleine Verbesserungen eingebaut: Wenn man die Pfeiltasten benutzt, wechselt nicht mehr der Fokus zwischen den Buttons hin und her. Und die Zeitangabe wird jetzt komplett mit Integer-Methoden berechnet.

    Viele Grüße
    Jan

    Anhang 6929

  6. #26

    Registriert seit
    Jan 2009
    Beiträge
    1.728

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Zitat Zitat von JanS Beitrag anzeigen
    Seeks in 25er Frame Abstände mit GST_SEEK_FLAG_KEY_UNIT, bis ein neues Keyframe kommt. Ich habe das für beide Richtungen genommen, da es keine Garantie gibt, dass die Demuxer für MP4 oder MKV ebenso wie Avi Demuxer das letzte Keyframe wählen oder nicht doch das naheste.

    Bei HQ und HD scheint das sehr gut zu funktionieren, da die einen minimalen Abstand von 25 Frames zwischen Keyframes haben. Bei den Standard-Avis wird schon mal das eine oder andere Keyframe übersprungen, wenn mehrere dicht aneinander liegen. Ich habe in einer Datei mit Avidemux zum Beispiel mehrfach zwei Keyframes direkt hintereinander gefunden. Aber mir sind ehrlich gesagt nur die HQ und HD wichtig.
    Also ich finde es funktioniert super bei avis und mkvs. Nur bei MP4 springt er mir manchmal genau um 25 Frames und ladet nicht bei einen Keyframe. ^^

    Kann man gut an diesen Dateien testen, da sind die Framenummer einkodiert:

    https://dl.dropbox.com/u/7287363/Big..._DE.mpg.HQ.avi
    https://dl.dropbox.com/u/7287363/Big..._DE.mpg.HQ.mkv
    https://dl.dropbox.com/u/7287363/Big..._DE.mpg.HQ.mp4
    (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

    MKVs funktionieren am Besten. Da bleibt er auch framegenau drauf.
    Bei den AVIs liegt er früher oder später ein Frame daneben.
    Bei den MP4 bleibt er schön drauf, nur scheint er manchmal Frames für Keyframes zu halten, die eigentlich keine sind. Zumindest erkennt Avidemux sie nicht als solche an.

    mfg
    monarc

  7. #27
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Hallo monarc99,

    danke für die Dateien. Zum Testen sind die ideal. Dass die MKVs am Besten funktionieren ist kein Wunder. Der Container ist ideal für das Arbeiten mit Timecodes.

    Bei der AVI ist mir aufgefallen, dass Keyframes immer exakt gefunden werden, das erste Frame nach einem Keyframe wiederholt wird. Bis zum nächsten Keyframe ist dann eine Differenz von ein oder zwei Frames zwischen den einkodierten Nummern und der berechneten Framenummer. Vor dem nächsten Keyframe werden dann entsprechend ein oder zwei Frames übersprungen.

    Bei der MP4 ist mir aufgefallen, dass vor dem zweiten Keyframe ebenfalls zwei Frames übersprungen werden (also 248 und 249) und ab dann ein Versatz von zwei Frames das ganze Video über besteht. Vielleicht klappt deswegen auch die Suche nach Keyframes zwischen den ersten beiden nicht. Nach Frame 250 funktioniert die Suche bei mir jedenfalls richtig abgesehen von der Differenz von zwei Frames.

    Woran das liegen könnte, kann ich jetzt so nicht nachvollziehen. Eventuell ist die Berechnung der Timestamps in den Demuxern oder Parsern in GStreamer nicht ganz sauber implementiert? Dann könnte man da nicht viel machen (außer die Plugins zu debuggen, was ich sicherlich nicht machen werde).

    Edit: Ich habe mir die Dateien noch mal mit Avidemux 2.6.1 angeschaut: Das erste Frame der MP4 hat dort einen Timestamp von 80 Millisekunden. Geht man von konstanter Framerate aus, erhält man eine Differenz von zwei Frames für den ganzen Film. Die GStreamer Plugins scheinen davon auszugehen, dass das erste Frame Timecode 0 haben müsste, was zwischen den beiden ersten Keyframes zu Problemen führt.

    Im AVI-File besteht zwischen dem ersten Frame und dem zweiten eine Zeitdifferenz von 120 Millisekunden statt 40, was auf eine ähnliche 2 Frame-Verschiebung für den ganzen Film hinausläuft. Mit dem Unterschied, das der Avi-Demuxer bei jedem Keyframe den gespeicherten Timestamp verwendet, der irgendwie um 80 Millisekunden von den anderen abweicht. Ist das vielleicht eine Differenz zwischen Timecodes im Stream (P/B-Frames) und im Container (Keyframes)?

    Im Matroska-File hat das erste Frame den Timestamp 240 Millisekunden. Das führt aber scheinbar zu keinen Problemen, da GStreamer alle Timecodes vom Container verwenden kann und diese dann konstant um 240 Millisekunden verschiebt.

    Ich habe mir auch mal ein HQ File von OTR angeschaut. Das hat ebenfalls 120-Millisekunden Abstand zwischen den ersten beiden Frames. Das Problem hätten wir also auch mit den OTR-Files.

  8. #28

    Registriert seit
    Jan 2009
    Beiträge
    1.728

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Zitat Zitat von JanS Beitrag anzeigen
    Edit: Ich habe mir die Dateien noch mal mit Avidemux 2.6.1 angeschaut: Das erste Frame der MP4 hat dort einen Timestamp von 80 Millisekunden. Geht man von konstanter Framerate aus, erhält man eine Differenz von zwei Frames für den ganzen Film. Die GStreamer Plugins scheinen davon auszugehen, dass das erste Frame Timecode 0 haben müsste, was zwischen den beiden ersten Keyframes zu Problemen führt.

    Im AVI-File besteht zwischen dem ersten Frame und dem zweiten eine Zeitdifferenz von 120 Millisekunden statt 40, was auf eine ähnliche 2 Frame-Verschiebung für den ganzen Film hinausläuft. Mit dem Unterschied, das der Avi-Demuxer bei jedem Keyframe den gespeicherten Timestamp verwendet, der irgendwie um 80 Millisekunden von den anderen abweicht. Ist das vielleicht eine Differenz zwischen Timecodes im Stream (P/B-Frames) und im Container (Keyframes)?

    Im Matroska-File hat das erste Frame den Timestamp 240 Millisekunden. Das führt aber scheinbar zu keinen Problemen, da GStreamer alle Timecodes vom Container verwenden kann und diese dann konstant um 240 Millisekunden verschiebt.
    Diese Verschiebung am Anfang bei Avidemux 2.6 hat vielleicht interne (Editor-)Gründe und entspricht vielleicht nicht unbedingt den Files. Bei AVIs gibt es keine gespeicherten Timecodes und auch verschiedene Abstände zwischen Frames gibt es nicht, weil das wäre ja dann variable Framerate. Und das geht bei AVIs nicht. Auch bei den MKVs fangen die Timecodes laut mkvinfo bei 0 an (mkvinfo -s file.mkv).

    Ich hab bei meiner OTR-V Version vor einiger Zeit eingebaut, dass man auch per Avidemux 2.6 die Schnittlisten erstellen kann. Und da wandele ich auch vorher jede Datei schnell in MKV um, weil es damit am Besten geht. Auch wäre das Schneiden dieser MKV mit VD kein Problem. Und auch mit das Cutinterface kann am besten mit MKV umgehen.

    mfg

  9. #29
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Nun ja: Im H264-Bytestream, den der Avi-Demuxer von GStreamer ausspuckt, haben die Keyframes Timestamps und alle anderen Frames nicht. Woher der Demuxer die Timestamps holt, weiß ich nicht. Vielleicht berechnet er sie auch nur unter Annahme einer konstanten Framerate. Die Frage ist, woher die anderen Timestamps stammen. Die stimmen nämlich mit den Timestamps in Avidemux 2.6.1 überein. Und auch bei Avidemux 2.5 sind die ersten beiden Frames Humbug und erst danach beginnt der eigentliche Stream wieder mit denselben Timestamps. Deshalb habe ich mich gefragt, ob der H264-Stream selbst irgendwo eigene Timestamps speichert. Vielleicht muss ich einfach mal wieder GStreamer Quellcode wälzen :-(

    Ansonsten ist mir das auch schon häufig aufgefallen, dass man lieber zwei Frames Abstand zur Werbung hält. Deshalb würde mich das nicht sonderlich stören. Gegen MKV hätte ich aber auch nichts. VirtualDub würde das allerdings wieder in ein AVI umwandeln, wenn ich das richtig sehe, oder?

    Gruß
    Jan

  10. #30
    Member
    Registriert seit
    Aug 2008
    Beiträge
    59

    AW: [TEST] MP4/MKV -> AVI framegenauer Schnitt mit OTR Verwaltung mittels Virtualdub

    Sooo,
    ich habe jetzt mal ein bisschen Quellcode und Debugmessages in GStreamer recherchiert und bin jetzt einiges schlauer. In GStreamer 0.10 übernimmt der Decoder einfach die Timestamps die er vorgefertigt kriegt. Die stammen vermutlich vom Parser, der scheinbar die Pakete nach konstanter Framerate durchnummeriert. Dummerweise bleibt dabei der Timestamp des zweiten Frames irgendwo in den Tiefen der ffmpeg-Bibliotheken verschollen, so dass alle weiteren Timestamps um ein Frame daneben liegen.

    In GStreamer 1.0 ist dieser Fehler beseitigt (wie könnte es anders sein). Dort erhalten nur die Keyframes einen gültigen Timestamp. Die anderen Timestamps werden von der Basisklasse für Videodekodierer nach der Dekodierung berechnet, wenn alle Frames in der richtigen Reihenfolge sind. Dann wird einfach jedes Mal die Dauer eines Frames hinzuaddiert.

    Das halte für ein gewichtiges Argument, zu GStreamer 1.0 zu wechseln. Ich habe aber gerade gesehen, dass man dafür doch ein bisschen tüfteln müsste, weil die GNonLin-Plugins noch nicht auf Version 1.0 umgeschrieben worden sind. Aber da hätte ich schon ein, zwei Ideen.

    Gruß
    Jan

Seite 3 von 35 ErsteErste 1234513 ... LetzteLetzte

Ähnliche Themen

  1. virtualdub und otr verwaltung
    Von tcse10 im Forum Virtualdub
    Antworten: 0
    Letzter Beitrag: 08.07.2010, 16:41
  2. TMM - OTR-Verwaltung Win/Linux mit WebUI
    Von comzine im Forum OTR 3rd-Party Software+Plugins
    Antworten: 3
    Letzter Beitrag: 11.04.2010, 15:20
  3. Tool zur Verwaltung von Filmen
    Von koban im Forum Off Topic
    Antworten: 2
    Letzter Beitrag: 06.01.2010, 09:45
  4. Verwaltung
    Von michaelsalzburg im Forum Outtakes
    Antworten: 0
    Letzter Beitrag: 04.04.2008, 12:56
  5. Filmverzeichnis zur Lokalen Verwaltung
    Von MrKlappstuhl im Forum Neue Vorschläge & Ideen
    Antworten: 16
    Letzter Beitrag: 19.03.2008, 18:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •