Ich würde es sehr schätzen, wenn jemand einige Hinweise bezüglich der Verwendung seines Offsets mit ffmpeg geben könnte. Ich habe eine Reihe von Beiträgen zu diesem Thema gelesen, einige von ihnen erklären sehr deutlich, wie Audio und Video mit -itsoffset synchronisiert werden, aber ich konnte es nicht zum Laufen bringen. Meine AVI-Datei wird mit ffmpeg in zwei Durchgängen mit dem folgenden Befehl für den zweiten Durchlauf codiert:
%Vor%Aus irgendeinem Grund habe ich eine Verzögerung von 1 Sekunde im Video (oder der Ton ist 1 Sekunde früher). Es passiert nicht allzu oft, aber ich sehe es von Zeit zu Zeit. Unter anderen Versuchen habe ich Folgendes versucht:
%Vor%Hier sind die Ergebnisse:
Ich sehe, dass viele Leute den oben beschriebenen Prozess erklären und anscheinend verwenden, aber es scheint nicht für mich zu funktionieren. Fehle ich etwas Offensichtliches? Ich würde sehr gerne in der Lage sein, -itsoffset zu verwenden, da es sauberer ist als meine Problemumgehung.
FWIW, hier ist ein anderer und längerer Weg zum gewünschten Ergebnis:
Erstellen Sie zuerst eine verschobene Nur-Video-Datei mit -ss:
%Vor%Extrahiere dann das Audio:
%Vor%Und schließlich remux beide Komponenten:
%Vor%Der Prozess funktioniert, ist schnell genug, aber ich würde wirklich lieber die One-Pass -itsoffset-Lösung verwenden.
Hier ist was ich getan habe und es funktioniert für mich
Die erste Eingabeeinstellung -i und der zweite Eingang stammen von derselben Videodatei.
Verzögere 1 Sekunde im ersten Eingangsvideo und dem zweiten Eingangsaudio einfach eine Kopie
%Vor%Verzögere 1 Sekunde im zweiten Audio-Eingang und das erste Video-Eingangssignal mache einfach eine Kopie
%Vor% Das Problem liegt in -vcodec copy -acodec copy
, da die Verschiebung nur bei Keyframes funktioniert. Ich hatte das gleiche Problem.
Kopiere einfach kein (Audio /) Video, probiere die Sache mit -itsoffset
, aber benutze
zum erneuten Kodieren. Es sollte funktionieren.