..png)
Hier ist eine ähnliche Frage für Windows:
Tool zum Reparieren von Videos, die nicht mit dem Ton synchron sind?
Ich hoffe, dieses Problem auf einem Mac lösen zu können.
Ich habe Handbrake und Avidemux ausprobiert (letzteres scheint eine Option – „Shift“ – zum Beheben des Problems zu haben, aber es spielt den Ton überhaupt nicht ab, also kann ich nicht sagen, ob es etwas bewirkt!).
Antwort1
Holen Sie sich eine Kopie von FFmpeg. Wie das geht, erfahren Sie weiter unten in diesem Beitrag.
Ob das Video hinter dem Audio zurückbleibt oder umgekehrt, spielt keine große Rolle. Der grundlegende Befehl lautet wie folgt. Wir geben den Input zweimal weiter, wie an zwei -i
Optionen zu sehen ist, verzögern dann einen Input und führen sie wieder zusammen.
ffmpeg -i in.flv -itsoffset offset -i in.flv -map 1:0 -map 0:1 -c copy out.flv
Hier,offset
ist die Verzögerung in Sekunden, z. B. 1.5
oder 0.35
. Dieser Wert muss positiv sein. Wenn also Ihr Audio hinter dem Video zurückbleibt, müssen wir das Video versetzen. Dies wird im obigen Beispiel gezeigt. Wenn das Video hinter dem Audio zurückbleibt, müssen wir das Audio ebenfalls versetzen.
Wie entscheiden Sie also, ob Sie Audio oder Video verzögern möchten? Nun, da wir das Ganze verzögert haben in.flv
, wählen wir einfach die Audio- oder Videostreams aus und führen sie mit den ursprünglichen Audio- oder Videostreams zusammen. Dies erfolgt in den -map
Optionen.
Hat grundsätzlich map
zwei Zahlen. Die vor dem Doppelpunkt gibt die Eingabedateinummer an (beginnend bei 0), und die zweite Zahl gibt den Eingabedateistream an (beginnt ebenfalls bei 0).
Um den Ton zu verzögern, verwenden Sie die folgenden beiden Optionen:
-map 1:0
bedeutet: Nimm den ersten Stream aus der zweiten Eingabedatei (Video aus der Originaldatei)-map 0:1
bedeutet: Nimm den zweiten Stream aus der ersten Eingangsdatei (Audio aus der verzögerten Datei)
Drehen Sie es um, wenn Sie Ihr Video verzögern müssen:
-map 0:0
bedeutet: Nimm den ersten Stream aus der ersten Eingabedatei (Video aus der verzögerten Datei)-map 1:1
bedeutet: Nimm den zweiten Stream aus der zweiten Eingabedatei (Audio aus der Originaldatei)
Finally -c copy
weist FFmpeg einfach an, die Video- und Audio-Bitstreams zu kopieren. Das bedeutet, dass kein Kodierungsprozess stattfindet. Dadurch ist der Befehl ultraschnell und Sie verlieren dabei nicht einmal an Qualität. Wenn Sie jedoch auf Synchronisierungsfehler stoßen, sollten Sie es weglassen -c copy
und FFmpeg die Eingabe neu kodieren lassen.
Sie können die neueste stabile FFmpeg-Version erhalten überSelbstgebrautes.
Öffnen Sie ein Terminal und geben Sie ein:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
Sehen Sie sich dieInstallationsvoraussetzungenauch. Sie müssen die Commandline Tools für Xcode installieren, falls Sie dies nicht getan haben. Dazu benötigen Sie eine Apple-ID.
Sobald Homebrew installiert ist, installieren Sie FFmpeg:
brew install ffmpeg
Sobald dies erledigt ist, können wir FFmpeg verwenden, um Ihr Video zu reparieren.