Jak scalić plik audio i wideo w ffmpeg


Odpowiedzi:


260

Łą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:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

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:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

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ąć:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

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.


Próbowałem, ale ffmpeg zawiesza się podczas łączenia
Sandy

4
nie sądzę, że kontenery mp4 mogą mieć strumienie audio wav. Spróbujffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
Łukasz

1
Używam tego i zastępuje oryginalny dźwięk z wejściowego dźwięku. Co jeśli chcę połączyć wejściowy dźwięk z dźwiękiem wejściowego wideo?
Iqbal Malik

Bardzo słodkie wiersze poleceń ...
Chandra Nakka

Świetnie, użyłem ffmpeg -i video.mp4 -i audio.wav \ -c: v copy -c: aac -strict eksperymentalne wyjście.mp4 do scalenia MP3 z plikiem Wav ... => mp4 5 minut, renderowane 30 sekund ..Dziękujemy
sonida

12

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:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

4
Możesz także użyć -shortestdo odcięcia końca.
nyuszika7h

5

-open polecenie promt (Windows + r -> cmd-> enter)

- następnie przejdź do folderu, w którym masz plik audio i wideo

zastosuj to polecenie cmd

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Wejdź .... otrzymasz nowy plik o nazwie outPutFime.mp4 (scalony plik audio i wideo)


2
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.
mivk


„ffmpeg” nie jest rozpoznawane jako polecenie wewnętrzne ani zewnętrzne,
UniCoder

Musisz dodać ffmpeg do PATH wikihow.com/Install-FFmpeg-on-Windows
Arete


1

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.