Użyłem polecenia typu:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
w najnowszej wersji do dodawania nowej ścieżki dźwiękowej do wideo (nie miksowania).
Ale zaktualizowałem ffmpeg do najnowszej wersji (wersja ffmpeg git-2012-06-16-809d71d ) i teraz w tej wersji parametr -newaudio
nie działa.
Powiedz mi proszę, jak mogę dodać nowy dźwięk do mojego wideo (nie miksować) za pomocą ffmpeg
.
Odpowiedzi:
Zastąp dźwięk
-map
opcja umożliwia ręczne wybieranie strumieni / ścieżek. Zobacz FFmpeg Wiki: Mapa aby uzyskać więcej informacji.-c:v copy
do kopiowania strumieniowego (mux) wideo. Nie następuje ponowne kodowanie wideo. Jakość jest zachowana, a proces jest szybki.-c:v copy
na,-c copy
aby skopiować strumieniowo zarówno wideo, jak i audio.-c:v copy
/-c copy
.-shortest
opcja sprawi, że czas trwania wyjścia będzie taki sam jak najkrótszego wejścia.Dodaj dźwięk
-map
opcja umożliwia ręczne wybieranie strumieni / ścieżek. Zobacz FFmpeg Wiki: Mapa aby uzyskać więcej informacji.-c:v copy
do kopiowania strumieniowego (mux) wideo. Nie następuje ponowne kodowanie wideo. Jakość jest zachowana, a proces jest szybki.-c:v copy
na-c copy
aby strumieniowo kopiować oba wideo, jak i audio.-c:v copy
/-c copy
.-shortest
opcja sprawi, że czas trwania wyjścia będzie taki sam jak najkrótszego wejścia.Miksowanie / łączenie dwóch wejść audio w jedno
Użyj wideo z
video.mkv
. Mix z audiovideo.mkv
iaudio.m4a
stosując filtr amerge :Widzieć FFmpeg Wiki: Kanały audio aby uzyskać więcej informacji.
Generuj cichy dźwięk
Możesz użyć filtru anullsrc, aby stworzyć cichy strumień audio. Filtr pozwala wybrać żądany układ kanałów (mono, stereo, 5.1 itd.) I częstotliwość próbkowania.
Zobacz także
źródło
-map 0:0 -map 1:0
zamiast-map 0 -map 1
załatwiło sprawę. Dzięki!-shortest
opcji działało lepiej dla mnie.muzyka mp3 do wav
przyciąć, aby dopasować wideo
miksować muzykę i wideo
źródło
Jeśli wejściowe wideo ma wiele ścieżek audio i musisz dodać jeszcze jedną, użyj następującego polecenia:
-map 0
oznacza kopiowanie (dołączanie) wszystkich strumieni z pierwszego pliku wejściowego (input_video_with_audio.avi
) i-map 1
oznacza dołączanie wszystkich strumieni (w tym przypadku jednego) z drugiego pliku wejściowego (new_audio.ac3
).źródło
Żadne z tych rozwiązań nie zadziałało w moim przypadku. Mój oryginalny dźwięk był nadpisywany lub otrzymywałem błąd typu „nie udało się zmapować pamięci” w bardziej złożonym przykładzie „amerge”. Wygląda na to, że potrzebowałem -filter_complex amix.
źródło
Nic nie działało dla mnie (myślę, że było tak, ponieważ moje wejście wideo .mp4 nie miało żadnego dźwięku), więc stwierdziłem, że to działa dla mnie:
źródło
Jeśli używasz starej wersji FFMPEG i nie możesz zaktualizować, możesz wykonać następujące czynności:
Zauważ, że użyłem -vcodec
źródło
Kod dodawania dźwięku do wideo za pomocą ffmpeg.
Jeśli długość dźwięku jest większa niż długość wideo, spowoduje to obcięcie dźwięku do długości wideo. Jeśli chcesz mieć pełny dźwięk w wideo, usuń -shortest z cmd.
String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy", ,outputFile.getPath()};
źródło
Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");
?