Chcę scalić plik audio (format .wav lub .au) z plikiem wideo (format .mp4).
Proszę zasugerować mi, jak to osiągnąć. Chcę scalić te pliki z nowym plikiem wideo .mp4. Polecenie ffmpeg byłoby bardzo mile widziane.
Chcę scalić plik audio (format .wav lub .au) z plikiem wideo (format .mp4).
Proszę zasugerować mi, jak to osiągnąć. Chcę scalić te pliki z nowym plikiem wideo .mp4. Polecenie ffmpeg byłoby bardzo mile widziane.
Odpowiedzi:
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ć -shortest
opcję, aby ffmpeg przestał kodować po zakończeniu jednego pliku.
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
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 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.
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:
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
-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
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Wejdź .... otrzymasz nowy plik o nazwie outPutFime.mp4 (scalony plik audio i wideo)
-shortest
znacznik jest bardzo ładne. Znacznie prostsze niż w odpowiedzi @ user136036.
To działało dla mnie:
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
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.