Zakładamy, że plik wideo nie zawiera jeszcze żadnego strumienia audio i że chcesz mieć taki sam format wyjściowy (tutaj MP4) jak format wejściowy.
Powyższe polecenie transkoduje dźwięk, ponieważ MP4 nie mogą przenosić strumieni audio PCM. Jeśli chcesz, możesz użyć dowolnego innego kodeku audio. Aby uzyskać więcej informacji, zobacz Podręcznik kodowania AAC .
Jeśli Twój strumień audio lub wideo jest dłuższy, możesz dodać -shortestopcję, aby ffmpeg przestał kodować po zakończeniu jednego pliku.
Kopiowanie dźwięku bez ponownego kodowania
Jeśli Twój pojemnik wyjściowy może obsłużyć (prawie) dowolny kodek - jak MKV - możesz po prostu skopiować strumienie audio i wideo:
Ta mapopcja powoduje, że ffmpeg używa tylko pierwszego strumienia wideo z pierwszego wejścia i pierwszego strumienia audio z drugiego wejścia dla pliku wyjściowego.
Ponieważ nie wolno mi pisać komentarzy do pierwszej odpowiedzi z moją reputacją, tutaj załącznik, ponieważ miałem ten problem podczas kodowania webms. Jeśli Twój strumień audio jest na przykład dłuższy niż strumień wideo , musisz go wyciąć, w przeciwnym razie ostatnia klatka wideo będzie działała jako zdjęcie i dźwięk.
Aby wyciąć dowolny strumień, możesz użyć opcji -ss [hh: mm: ss] -t [ss] przed każdym z „pliku.ext”.
-ss [...] określi punkt początkowy do cięcia
-t [...] określi długość odcinka w sekundach
Naprawdę nie trzeba tutaj opisywać sposobu używania wiersza poleceń. Sugeruje to, że użytkownicy będą mogli to rozgryźć. Zwłaszcza, że pytający podał FFmpeg. Wszystkie takie same, -shortestznacznik jest bardzo ładne. Znacznie prostsze niż w odpowiedzi @ user136036.
Kat
3
Spowoduje to ponowne zakodowanie wszystkiego, co prawdopodobnie nie jest tym, czego chce.
Spróbuj użyć mencodera (tak, jest oparty na ffmpeg, ale nigdy nie wiadomo). Używam -audiofileargumentu. Ogólnie jednak używam ffmpeg, więc weź tę radę ze szczyptą soli.
A jeśli używasz Windowsa, Mediacoder (niestety już nie open source) działa ... jest to po prostu nakładka na wiele koderów GNU i kilka niewolnych.
Odpowiedzi:
Łączenie wideo i audio z ponownym kodowaniem dźwięku
Zobacz ten przykład zaczerpnięty z tego wpisu na blogu, ale zaktualizowany pod kątem nowszej składni. Powinno to być coś w rodzaju:
Zakładamy, że plik wideo nie zawiera jeszcze żadnego strumienia audio i że chcesz mieć taki sam format wyjściowy (tutaj MP4) jak format wejściowy.
Powyższe polecenie transkoduje dźwięk, ponieważ MP4 nie mogą przenosić strumieni audio PCM. Jeśli chcesz, możesz użyć dowolnego innego kodeku audio. Aby uzyskać więcej informacji, zobacz Podręcznik kodowania AAC .
Jeśli Twój strumień audio lub wideo jest dłuższy, możesz dodać
-shortest
opcję, aby ffmpeg przestał kodować po zakończeniu jednego pliku.Kopiowanie dźwięku bez ponownego kodowania
Jeśli Twój pojemnik wyjściowy może obsłużyć (prawie) dowolny kodek - jak MKV - możesz po prostu skopiować strumienie audio i wideo:
Zastępowanie strumienia audio
Jeśli wideo wejściowe zawiera już dźwięk i chcesz go zastąpić, musisz powiedzieć ffmpeg, który strumień audio wziąć:
Ta
map
opcja powoduje, że ffmpeg używa tylko pierwszego strumienia wideo z pierwszego wejścia i pierwszego strumienia audio z drugiego wejścia dla pliku wyjściowego.źródło
ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
Ponieważ nie wolno mi pisać komentarzy do pierwszej odpowiedzi z moją reputacją, tutaj załącznik, ponieważ miałem ten problem podczas kodowania webms.
Jeśli Twój strumień audio jest na przykład dłuższy niż strumień wideo , musisz go wyciąć, w przeciwnym razie ostatnia klatka wideo będzie działała jako zdjęcie i dźwięk.
Aby wyciąć dowolny strumień, możesz użyć opcji -ss [hh: mm: ss] -t [ss] przed każdym z „pliku.ext”.
-ss [...] określi punkt początkowy do cięcia
-t [...] określi długość odcinka w sekundach
Przykład:
źródło
-shortest
do odcięcia końca.-open polecenie promt (Windows + r -> cmd-> enter)
- następnie przejdź do folderu, w którym masz plik audio i wideo
zastosuj to polecenie cmd
Wejdź .... otrzymasz nowy plik o nazwie outPutFime.mp4 (scalony plik audio i wideo)
źródło
-shortest
znacznik jest bardzo ładne. Znacznie prostsze niż w odpowiedzi @ user136036.To działało dla mnie:
źródło
Spróbuj użyć mencodera (tak, jest oparty na ffmpeg, ale nigdy nie wiadomo). Używam
-audiofile
argumentu. Ogólnie jednak używam ffmpeg, więc weź tę radę ze szczyptą soli.A jeśli używasz Windowsa, Mediacoder (niestety już nie open source) działa ... jest to po prostu nakładka na wiele koderów GNU i kilka niewolnych.
źródło