ffmpeg kompiliert Video und Sprache

416
makgun

Ich verwende Ubuntu lebendig auf meinem Laptop und möchte Audio und Sprache mit verzögertem Audio neu kompilieren. Der Film war spät im Vergleich zu Audio. Ich habe voice.aac und video.h264 aus dem Originalvideo entfernt. Ich weiß, dass es möglich ist, aac zu bearbeiten, aber diese Datei benötigt keinen Mod für aac. Ich möchte nur das Audio verzögern.

0

1 Antwort auf die Frage

1
bertieb

Die -itsoffsetOption sollte das tun, was Sie möchten:

-soffset Offset (Eingabe)

Stellen Sie den Offset für die Eingangszeit ein.

Versatz muss eine Zeitdauerangabe sein, siehe (ffmpeg-utils) im Abschnitt Zeitdauer im Handbuch von ffmpeg-utils (1) .

Der Versatz wird zu den Zeitstempeln der Eingabedateien addiert. Die Angabe eines positiven Versatzes bedeutet, dass die entsprechenden Ströme um die im Versatz angegebene Zeitdauer verzögert werden.

So

$ ffmpeg -i video.h264 -itsoffset 1.0 -i voice.aac -map 0:a -map 1:v -c copy remuxed.mp4 

sollte eine Audio-Verzögerung von 1 Sekunde ergeben. Hier können jedoch Probleme mit dem Container auftreten, da ffmpegalles von Grund auf neu berechnet werden muss.

Besser ist es, wenn Sie die Originaldatei verwenden :

 $ ffmpeg -i orig.mkv -itsoffset 1.0 -i orig.mkv -map 0:a -map 1:v -c copy remuxed.mkv 

Dies gilt für eine Verzögerung von 1 Sekunde ( pro Option bis-itsoffset ) input 0und keine Verzögerung für input 1. Die -mapOptionen legen fest, dass das (verzögerte) Audio von input 0und das (nicht verzögerte) Video abgerufen wird input 1.

Hoffe das ist klarer!


(Wenn Sie das Video stattdessen verzögern möchten, ändern Sie die -mapOptionen:

 $ ffmpeg -i orig.mkv -itsoffset 1.0 -i orig.mkv -map 0:v -map 1:a -c copy remuxed.mkv 

die spezifiziert, um das verzögerte Video und das nicht verzögerte Audio aufzunehmen)

Mann das ist was ich brauche. Ich werde es versuchen, wenn ich nach Hause gehe makgun vor 9 Jahren 0
Ich hoffe es funktioniert - ich habe es nicht getestet. Möglicherweise müssen Sie statt Mux umcodieren, aber hoffentlich nicht! bertieb vor 9 Jahren 0
@makgun Ich habe die Antwort mit einer besseren und getesteten Option aktualisiert, vorausgesetzt, Sie haben immer noch die Originaldatei :) bertieb vor 9 Jahren 0
Danke Mann, das ist nützlicher als ich brauche (zumindest denke ich so). Und Karte 0: a bedeutet, dass 0 Sekunden Audio verzögert ist? Und Karte 2: v bedeutet, dass das Video um 2 Sekunden verzögert ist? makgun vor 9 Jahren 0
@makgun Die Verzögerung wird als Option für * -itsoffset *, 1,0 für 1 Sekunde, 0,125 für und eine Achtelsekunde usw. angegeben. Ich habe die Antwort aktualisiert, um dies zu verdeutlichen. bertieb vor 9 Jahren 1
@bertleb thaks für nützliche Antwort Ich habe es auch gelernt. Jetzt kann ich es ohne speziellen Video-Player anschauen. makgun vor 9 Jahren 1
@bertleb Weißt du, wie man ein Video um x Grad drehen kann (im Uhrzeigersinn)? Ich habe versucht, ffmpeg -i in.mp4 -vf "transpose = 1" out.mp4 zu verwenden. Aber diese Option ist so langsam und dann habe ich -c kopiert wie ffmpeg -i in.mp4 -cc kopiert -vf "transpose = 1" out.mp4. Aber es ist wieder so langsam. Ich denke, es kodiert es neu. Gibt es eine Möglichkeit, dies schnell zu machen? makgun vor 9 Jahren 0
Ich bin froh, dass Sie die Antwort erhalten haben :) Denken Sie daran, dass Sie eine Antwort als akzeptiert markieren können, indem Sie auf das graue Häkchen klicken - kein Druck! Beim Drehen ist es besser, dies als separate Frage zu stellen, um eine ausführliche Diskussion in Kommentaren zu vermeiden :) bertieb vor 9 Jahren 1