Zdobądź kopię FFmpeg. Zobacz na dole tego postu, jak to zrobić.
Niezależnie od tego, czy wideo pozostaje w tyle za dźwiękiem, czy odwrotnie, to nie ma znaczenia. Podstawowe polecenie jest następujące. Przekażemy dane wejściowe dwa razy, co widać po dwóch -i
opcjach, a następnie opóźnimy jedno wejście i połączymy je z powrotem.
ffmpeg -i in.flv -itsoffset offset -i in.flv -map 1:0 -map 0:1 -c copy out.flv
Tutaj offset
jest opóźnienie w sekundach, np . 1.5
Lub 0.35
. Ta wartość musi być dodatnia, więc jeśli twój dźwięk pozostaje w tyle za filmem, będziemy musieli go zrównoważyć. Jest to pokazane w powyższym przykładzie. Podobnie, jeśli wideo pozostaje w tyle za dźwiękiem, będziemy musieli go zrównoważyć.
Jak więc wybrać, czy opóźnić audio czy wideo? Ponieważ opóźniliśmy całość in.flv
, po prostu wybieramy strumienie audio lub wideo i łączymy je z oryginalnymi strumieniami audio lub wideo. Odbywa się to w -map
opcjach.
Zasadniczo map
ma dwie liczby. Ten przed dwukropkiem określa numer pliku wejściowego (zaczynając od 0), a drugi numer określa strumień pliku wejściowego (również zaczynający się od 0).
Aby opóźnić dźwięk, użyj następujących dwóch opcji:
-map 1:0
oznacza: Weź pierwszy strumień z drugiego pliku wejściowego (wideo z oryginalnego pliku)
-map 0:1
oznacza: Weź drugi strumień z pierwszego pliku wejściowego (audio z pliku opóźnionego)
Odwróć to, jeśli musisz opóźnić wideo:
-map 0:0
oznacza: Weź pierwszy strumień z pierwszego pliku wejściowego (wideo z pliku opóźnionego)
-map 1:1
oznacza: Weź drugi strumień z drugiego pliku wejściowego (audio z oryginalnego pliku)
Wreszcie -c copy
po prostu powie FFmpeg, aby skopiował strumienie bitów wideo i audio. Oznacza to, że nie będzie procesu kodowania. To sprawia, że polecenie jest bardzo szybkie i nawet nie stracisz żadnej jakości w procesie. Jeśli jednak wystąpią błędy synchronizacji, należy je pominąć -c copy
i pozwolić FFmpeg ponownie zakodować dane wejściowe.
Możesz uzyskać najnowszą stabilną wersję FFmpeg za pośrednictwem Homebrew .
Otwórz terminal i wprowadź:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
Zobacz także wymagania instalacyjne . Jeśli tego nie zrobiłeś, musisz zainstalować Narzędzia wiersza polecenia dla Xcode. Do tego potrzebny będzie identyfikator Apple ID.
Po zainstalowaniu Homebrew zainstaluj FFmpeg:
brew install ffmpeg
Gdy to zrobisz, możemy użyć FFmpeg, aby naprawić twój film.