Streamrip: FLV mit AVC und AAC asynchron, wie fixen (ohne reencoding) ?

  • Ich sitze nun schon seit Stunden an dem Versuch, dieses Video zu reparieren.

    Es handelt sich um ein FLV mit AVC (H.264) und AAC Spuren.
    mit FLVExtract kam ich an die Roh-Spuren.

    Avidemux schaltet extra in einen nicht-framegnauen mode, um H.264 zu unterstützen - und der Output wirkt wie wenn nur jeder 4. oder 5. frame gespielt würde
    VirtualDubMod kann weder mit dem FLV noch dem Roh-Streams etwas anfangen
    Video to Video bietet beim Muxen ein "A/V-Sync" - keine Ahnung, was das heißen soll, ist nur yes/no, keine Zeitangabe. Ausserdem schlägt das muxen fehl. Die Herstellerseite empfielt einen Blick in den log, schreibt aber leider nicht, wo dieser zu finden ist.

    Ist es so schwer den Ton in einer FLV-Datei zu shiften?!

    Habe den log von Video to Video gefunden - In der Menüleiste:

    Zitat

    #5784.3: [flv @ 14766B00]Malformed AAC bitstream detected: use audio bistream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)
    #5784.2: av_interleaved_write_frame(): Invalid data found when processing input. Please check error log message(reported by FFLogger) to find out more detail information.
    #5784.0: av_interleaved_write_frame(): Invalid data found when processing input. Please check error log message(reported by FFLogger) to find out more detail information.
    ERROR: av_interleaved_write_frame(): Invalid data found when processing input. Please check error log message(reported by FFLogger) to find out more detail information.....

    Einmal editiert, zuletzt von Suzanne (27. April 2013 um 12:03)

  • VirtualDubMod kann weder mit dem FLV noch dem Roh-Streams etwas anfangen

    VirtualDubMod ist eigentlich auch nur für AVIs gedacht. Es kann noch MPEG importieren, und unterstützt lediglich ansatzweise OGM- und VfW-kompatible MKV-Dateien. FLV war nie unter den offiziell unterstützten Kontainern. Die Entwicklung blieb auch schon vor Version 1.5 stehen.

    Das ursprüngliche VirtualDub wurde noch etwas dahingehend weiterentwickelt, dass es mit Plugins noch mehr Kontainer lesen kann. Da gibt es von fccHandler auch ein FLV-Plugin für VirtualDub 1.9+. Aber VirtualDub kann kein neues FLV erzeugen.

    "Video to Video" kenne ich gar nicht. Anscheinend verwendet es aber auch nur ffmpeg. Und das ist ein Kommandozeilenprogramm, dessen mögliche Kommandozeilenparameter beinahe ein Informatikstudium erfordern... :rolleyes: Hab noch etwas Geduld, vielleicht findet sich jemand, der zufällig den Parameter kennt, der da beim Remultiplexen mit ffmpeg von FLV zu FLV den richtigen Parameter für ein "stream delay" kennt. (zu Selur schiel...)

  • Zitat

    es handelt sich um ein FLV mit AVC (H.264) und AAC Spuren.
    mit FLVExtract kam ich an die Roh-Spuren.


    Beim Extrahieren mit FLVExtract nicht vergessen die Timecodes zu extrahieren

    Zitat

    Ist es so schwer den Ton in einer FLV-Datei zu shiften?!


    man könnte die entsprechenden TimeCodes anpassen und wieder neu Multiplexen, wobei ich gestehen muss, dass ich keine Ahnung habe was für flv Multiplexer es so gibt die entsprechend auch die Timecodes entgegen nehmen.

    Zitat

    VirtualDubMod kann weder mit dem FLV noch dem Roh-Streams etwas anfangen


    VirtualDubMod ist alt und buggy
    Ich weiß nicht sicher ob Avidemux mit flv umgehen kann, wenn solltest Du aber das flv und nicht nur die Audio&Video streams an AviDemux füttern, da sonst eventuelle Synchronisation über die Timecodes verloren gehen.

    Falls das Endziel gar nicht wieder flv sein muss würde ich das flv file mit mmg (Teil von mkvtoolnix) zu einem mkv Multiplexen und anschließen, das neue mkv anpassen. (timecodes bzw. delay anpassen)

    Cu Selur

    Ps.: (LigH war flotter: Ja, ich weiß wie man bei ffmpeg einen Delay angibt, da flv aber meist eher vfr ist und nur seltenst einen Delay am Anfang hat, poste ich dazu erst mal nix. ;))

  • Was ist vfr?

    Ich muss sagen, von Avidemux bin ich so gar nicht überzeugt. Ich hatte schon mehrfach Probleme, dass Videos nach simplen Schnitten nicht mehr sync waren (meistens mkv, für avi nehme ich das bewährte VDubMod). Da hilf die nette GUI auch nichts.
    In diesem Fall wurde das Video ja scheinbar auch irgendwie verstümmelt von Avidemux.

  • Zitat

    Was ist vfr?


    vfr = variable frame rate

    Zitat

    für avi nehme ich das bewährte VDubMod


    Für .avi würde ich Virtual Dub und nicht VirtualDubMod verwenden, hauptsächlich weil einige Dinge rund um Audioverarbeitung seit der letzten VirtualDubMod Version gefixed wurden.

    Zitat

    In diesem Fall wurde das Video ja scheinbar auch irgendwie verstümmelt von Avidemux.


    Glaube ehrlich gesagt nicht, dass Avidemux da was kaputt macht, sondern eher, dass es mti dem Input nicht richtig umgeht bzw. nicht damit umgehen kann.

    Was mir immer noch unklar ist, ist was Du eigentlich machen willst/musst:
    a. ein flv ist asynchron und du musst daraus ein synchrones flv machen
    b. ein flv ist asynchron und du musst daraus ein synchrones file machen (z.B. mkv oder mp4)
    c. ein flv was synchron ist wird durch die Verarbeitung die Du vornimmst asynchron.
    d. irgend etwas anderes

    Zitat

    Ich muss sagen, von Avidemux bin ich so gar nicht überzeugt.


    Kann ich so nichts zu sagen, da ich Avidemux einfach so gut wie nie nutze.

    Cu Selur

  • Zitat

    Was ist vfr?


    variable frame rate

    müsste selber aber ein kleines Testfile haben ums nachstellen zu können.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • variable frame rate? so etwas kurioses gibt es?!

    Danke für den Tip mit den Audio in VDubMod. Sind die gefixten Probleme formatspezifisch? Eigentlich mag ich VDubMod von der Bedienung her lieber. Auch weil der das Padding (ich nehme an, das es Padding ist) aus dem Quellfile übernimmt und nicht neu generiert (zumindest in der angepassten Version)

    Selur
    Am besten wäre a, weil ich weiß, dass mein TV FLV kann. bei mp4 und mkv bin ich mir nicht sicher. Wäre aber eine "Zwischenlösung", die ich mal ausprobieren würde

  • Zitat

    Am besten wäre a,


    Okay, davon ausgegangen das Material ist nicht vfr könnte man:
    1. mit FLVExtract oder FLVExtractCL (oder ffmpeg) die streams extrahieren.
    2. die Streams neu mit einem Delay multiplexen.
    Sagen wir mal wir haben test.264 und test.aac als raw Video- und Audiostreams vorliegen und will den Audiostream um 80ms verschieben, so wäre der ffmpeg-Aufruf (in der Konsole/Terminal)

    Code
    ffmpeg -i "Pfad zur test.264" -vbsf h264_mp4toannexb -itsoffset 0.8 - -i "Pfad zur test.aac" -absf aac_adtstoasc -vcodec copy -acodec copy "Pfad zur Ziel.flv"


    Hier eine kurze Erläuterung:
    "-vbsf h264_mp4toannexb" sagt ffmpeg, dass es sich um raw H.264 Material handelt
    "-absf aac_adtstoasc" sagt ffmpeg, dass es sich um raw AAC Material handelt
    "-itsoffset X" setzt für den folgenden stream den offset in Sekunden, genauer:

    Zitat

    ‘-itsoffset offset (input)’
    Set the input time offset in seconds. [-]hh:mm:ss[.xxx] syntax is also supported. The offset is added to the timestamps of the input files. Specifying a positive offset means that the corresponding streams are delayed by offset seconds.

    Quelle: http://ffmpeg.org/ffmpeg.html

    Wenn man die Reihenfolge der Streams im Input kennt, kann müsste man sich den ersten Schritt auch sparen können und davon ausgegangen, dass erst der Video- dann der Audiostream in der Quelle auftreten, mit:

    Code
    ffmpeg -i "Pfad zum Input flv" -itsoffset 0.08 -i "Pfad zum Input flv" -map 0:0 -map 1:1 -vcodec copy -acodec copy "Pfad zur Ziel.flv"


    das Ganze machen können.

    Cu Selur

    Ps.: das Ganze hilft natürlich nur wenn a. wie gesagt es sich nicht um vfr Material handelt und b. es sich nur um einen Delay am Anfang des Clips handelt.

Jetzt mitmachen!

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