avs2pipemod - falsche Audiodauer

  • Hallo liebes Gleitz-Forum,

    im Moment arbeite ich an einem kleinen Konsolenprogramm in C#, das u.a. PCM Wave Audio aus AVI-Dateien mit 1-2 Audiostreams extrahieren und als .wav auf der Festplatte speichern soll. Hierfür habe ich zuerst in Avisynth mit FFAudioSource (um den Track auswählen zu können, WavSource nimmt immer den ersten Stream) einen Audiostream geladen und diese .avs dann an avs2pipemod geschickt, das die .wav speichern soll. Nun funktioniert das auch wunderbar, allerdings ist die .wav beispielsweise nur 8810ms lang, während der Audiostream in der AVI-Datei 8833ms lang ist. Und bei diesem Konsolenprogramm ist es immens wichtig, dass die Audiostreams ms-genau extrahiert werden.


    Hier das Avisynth Script:

    Code
    LoadPlugin("D:\MeGUI\tools\ffms\ffms2.dll")FFAudioSource("D:\Dokumente\Programmierung\AudioExtractor\TestFile.avi", track=1)

    Hier ist die CMD-Eingabe:

    Code
    avs2pipemod -wav=16bit Extract.avs) > Audio.wav


    Nun habe ich schon überlegt, ob ich anstatt avs2pipemod (und Avisynth) vDub verwenden sollte, jedoch kenne ich dort die CMD-Eingabe zum Extrahieren des Audiostreams x nicht. Daher hoffe ich, dass mir hier jemand bei meinem Problem helfen kann.


    MFG Zantos

  • a. bei 23ms würde ich empfehlen auch mal mit 'mediainfo --full "pfad zum Input" gucken, ob die paar ms nicht eventuell der Delay zwischen Audio&Video sind und der Audiostream selber eventuell gar nicht länger ist
    b. würde anstatt avisynth + avs2pipe oder Virtual Dub eher ffmpeg oder mencoder verwenden

  • Ja, das Problem lag tatsächlich beim Interleave *kopfschüttel* .
    Danke jedenfalls, nun habe ich schnell eine Funktion eingebaut, die die Länge der Audiostreams (falls nötig) durch Abschneiden oder Anhängen von Stille an die Videolänge anpasst.

Jetzt mitmachen!

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