ffmpeg stream offset-Befehl (-itsoffset) funktioniert nicht
Ich wäre wirklich dankbar, wenn jemand könnte einige Hinweise bezüglich der Verwendung von itsoffset mit ffmpeg. Ich habe gelesen, der Anzahl der Beiträge zu diesem Thema, einige von Ihnen erklären sehr anschaulich, wie zu re-synchronisieren von audio und video mit -itsoffset, aber ich habe nicht in der Lage, damit es funktioniert.
Meine avi-Datei ist codiert mit ffmpeg, in zwei Durchgängen, mit dem folgenden Befehl für den zweiten Durchgang:
ffmpeg -i whole-vts_01.avs -pass 2 -y -vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k output.avi
Aus welchem Grund auch immer, dass ich am Ende mit 1 Sek Verzögerung des Videos (oder der Ton ist 1 Sek zu früh). Es passiert nicht allzu oft, aber ich sehe es von Zeit zu Zeit.
Unter anderen versucht, ich habe versucht, die folgenden:
(1) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.avi -vcodec copy -acodec copy -map 0:0 -map 1:1 output-resynched.avi
(2) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched2.avi
(3) ffmpeg -itsoffset -00:00:01.00 -i output.avi output-resynched8.avi
(4) ffmpeg -i output.avi -itsoffset -1.0 -i output.avi -vcodec copy -acodec copy -map 0:1 -map 1:0 output-resynched13.avi
Hier sind die Ergebnisse:
- Audio verzerrt und nur 5m 35 s lang vs. 1h 41m.
- (Ausgabe.ac3 ist der audio-Komponente der Ausgabe.avi) Video-und audio -
identisch mit dem original offset nicht funktioniert hat - Audio haben sich verschoben, aber die ursprüngliche Codierung Parameter ersetzt mit Standard-Strecken (wie erwartet).
- Audio verzerrt und nur 9m 56s lange vs. 1h 41m.
Ich sehe, dass viele Menschen zu erklären, und anscheinend verwenden die oben beschriebenen Verfahren, aber es scheint nicht zu funktionieren für mich. Übersehe ich hier etwas offensichtliches? Ich würde sehr gerne in der Lage sein zu verwenden -itsoffset, wie es ist sauberer als meine workaround-Lösung.
FWIW, hier ist eine andere, und mehr Weg von der Beschaffung der gewünschten Ergebnis:
Erstellen Sie zuerst einen verschobenen video-Datei nur mit -ss -:
ffmpeg -i output.avi -ss 1.0 -vcodec copy -an oupput_videoshifted.avi
Dann die audio-Extrakt:
ffmpeg -i output.avi -vn -acodec copy outputaudioonly.ac3
Und schließlich remux beide Komponenten:
ffmpeg -i output_videoshifted.avi -i output_audioonly.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched14.avi
Der Prozess funktioniert, ist schnell genug, aber ich würde wirklich lieber mit der one-pass -itsoffset Lösung.
- Es gibt eine Fehler mit der
-itsoffset
flag, das vielleicht etwas zu tun mit den Problemen, die Sie sehen. Auf der anderen Seite, verstümmelt und abgeschnitten-Ton klingt etwas ernster ist übel. Wenn dies immer noch ein problem, was FFmpeg version benutzt du?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist was ich getan habe und es für mich arbeiten
Die erste Eingabe-Einstellung -ich und der zweite Eingang ist, kommt aus der gleichen video-Datei.
Verzögerung 1 Sekunde im ersten video-Eingang und den zweiten Eingang audio einfach eine Kopie
Verzögerung von 1 Sekunde in den zweiten Eingang audio-Eingang und der erste Eingang video nur eine Kopie
Das problem liegt auf
-vcodec copy -acodec copy
da die Verschiebung nur an keyframes. Ich hatte das gleiche problem.Einfach nicht kopieren (audio/)video, versuchen die Sache mit
-itsoffset
, aber verwendenfür re-encoding. Es sollte funktionieren.