CLI-Tool für Audiobearbeitung

  • Hallo,

    ich habe folgendes Problem:

    Ich habe eine Reihe von Videodateien (MPEG2 Video), zu denen ich separate Audiodateien (AC3) vorliegen habe. Diese Files sollen in ein "schlichtes" MPEG2 gemuxt werden. Das wiederum ist dankt mplex kein Problem. Das eigentliche Problem ist, dass die Audiofiles nicht synchron zum vorliegenden Video sind. Hier muss die Geschwindigkeit des Audio angepasst werden.
    Glücklicherweise habe ich dann nicht noch mit einem Offset o.ä. zu rechnen, daher kann ich die Geschwindigkeit der Audiodateien proportional verändern um sie mit der Gesamtlänge des Videos glattzuziehen.
    Dafür habe ich bisher Audacity genutzt. Die Fülle der Dateien "zwingt" mich aber dazu, den bequemeren Weg über Batchscripte zu gehen. Hierzu suche ich ein Tool, welches mir die "Tempoangleichung" von AC3s über ein CLI ermöglicht.

    Kennt ihr ein solches Tool? Vielen Dank schon einmal im Voraus.

  • Wie kommt jemand an "eine Fülle von" Filmen, zu denen die Tonspuren erst nach einer Normwandlung passen?!

    Normwandlungen sind immer schlecht, weil sie mindestens das Video oder das Audio qualitativ ruinieren.

    Technisch ist die Batchwandlung möglich, z.B. mit BeSweet (aber der AC3Enc für die AC3-Recodierung ist fehlerhaft oder zumindest qualitativ schlecht) oder BeHappy via Aften (etwas besser, aber auch hier geht die ganze Dynamik verloren).

  • sox in Kombination mit aften sollte gehen.
    Mit sox (inkl. ffmpeg library) sollte das ac3 Decodieren können (alternative könnte man auch mit ffmpeg dekodieren und zu sox pipen), dann kann man mit sox die Geschwindigkeitsanpassung machen den Output von sox piped man dann zu aften und damit wird dann encoded.

    Hybrid ist zwar keine CLI-Tool kann das aber wie beschrieben machen.
    1. Hybrid starten
    2. Main->Input File (hier alle ac3 files auswählen)
    3. Main->Audio handling->Custom
    4. Audio->Reencode audio stream aktivieren
    5. Audio Encoding->Audio format ac3
    6. Audio->Audio Encoding->Bitrate 448
    7. Audio->Audio Encoding->Filtering
    8. Audio->Audio Encoding->Speed change aktivieren und from&to fps Werte angeben
    9. Main->Audio handling->auto add (all)
    10. Config->Path settings->Output Path festlegen
    11. Main->Generate aktivieren
    12. Add to Queue
    13. Jobs -> Start

    Wenn man unter Jobs -> Minimize job command lines deaktiviert sieht man die kompletten Command Lines die Hybrid aufrufen würde, was selbst wenn Du Hybrid nicht nutzt sicher ganz hilfreich sein kann.

    Cu Selur

  • Was die Ursache für diese Diskrepanz ist, kann ich leider nicht sagen. Tatsache ist, dass sämtliche Audiodateien minimal (>0,1 %) laufen. Werden die Audiodateien gestretcht, laufen sie genau synchron. Leider gibt es keine Alternative.
    Audacity bietet die Möglichkeit, dies OHNE Anhebung des Tons zu realisieren. Und genau diese Funktion benötige ich als CLI-Option, damit solche Prozesse automatisiert werden können.
    Das Ganze sollte unter Linux laufen.

  • In der Signatur von Selur. ==> Hybrid(Windows/Linux): Input -> x264/Xvid/VP8
    __

    BeSweet hat die SoundTouch-Engine, die das per Granularsynthese resampelt. Ob SoX was ähnliches hat, ist mir nicht bekannt...

    Aber bei ~0,1% sollte kaum ein Unterschied hörbar sein; und das ist dann auch nicht gerade "Normwandlung", da gibt es andere Ursachen.

  • Also, ich lasse jetzt gerade einen Test durchlaufen, uns zwar nach folgendem Workflow:

    1. AC3 zu WAV via FFMPEG
    2. Sox mit der Option Speed
    3. WAV zu AC3 via FFMPEG (optional)

    Ratet ihr generell an, FFMPEG für Schritt 3 zu nehmen?

  • Eine Frage zum Syntax beim SOX habe ich noch:

    Wenn ich mehr als einen Parameter übergebe, bekomme ich Fehlermeldungen. Ich gehe mal davon aus, dass ich einen falschen Sysntax nutze. hier ein Bsp:

    sox Test2.wav Test_neu.wav speed 0.99996
    -> funktioniert

    setze ich einen weiteren Parameter hinzu (bsp 'norm') bekomme ich entweder die Meldung speed... wäre kein Filename oder die Usage des Parameters speed ist falsch. Ich gehe mal davon aus, dass die Parameter abgegrenzt werden müssen.

  • Ratet ihr generell an, FFMPEG für Schritt 3 zu nehmen?



    Das könnte ich nur, wenn ich sicher wüsste, dass der AC3-Encoder in ffmpeg mindestens so gut wie Aften wäre.

    Aften ist derzeit vermutlich immer noch der vielleicht beste Freeware-AC3-Encoder (was mangels ähnlich gutem psychoakustischem Modell wie bei LAME jedoch nicht viel heißen soll). Sollte sich das geändert haben, lasse ich mich dahingehend gern verbessern.
    __

    Die Syntax ist weiblich.
    __

    "--norm" ist auch eine globale Option, es könnte also "sox --norm Test2.wav Test_neu.wav speed 0.99996" klappen?!

  • Habe es gerade mal probiert, leider gibt's folgende Fehlermeldung:

    sox FAIL sox: --encoding: `ed' is not one of: signed-integer, unsigned-integer, floating-point, ms-adpcm, ima-adpcm, oki-adpcm, gsm-full-rate, u-law, mu-law, a-law.

Jetzt mitmachen!

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