ffmpeg - zamień audio w wideo

48

Jak zamienić dźwięk w pliku wideo za pomocą pliku audio za pomocą ffmpeg?

Wyobrażam sobie, że polecenie wygląda następująco:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

Jest to bardzo podobne do Jak zamienić strumień audio w pliku wideo z wieloma strumieniami audio? ale to pytanie obsługuje wiele ścieżek audio, co bardzo je komplikuje, co sprawia, że ​​nie jest jasne, która część rozwiązania wystarczy do prostej wymiany audio.

qubodup
źródło

Odpowiedzi:

68

Będziesz chciał skopiować strumień wideo bez ponownego kodowania, aby zaoszczędzić dużo czasu, ale ponowne kodowanie dźwięku może pomóc w zapobieganiu niezgodności:

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0odwzorowuje pierwszy (indeksowy 0) strumień wideo z wejścia na pierwszy (indeksowy 0) strumień wideo na wyjściu.

-map 1:a:0odwzorowuje drugi (indeksowy 1) strumień audio z wejścia na pierwszy (indeksowy 0) strumień audio na wyjściu.

Jeśli dźwięk jest dłuższy niż wideo, będziesz chciał dodać -shortestprzed nazwą pliku wyjściowego.

Nieokreślając kodeka audio, automatycznie wybierze działający. Możesz określić jeden, na przykład dodając -c:a libvorbispo -c:v copy.

qubodup
źródło
2
lub bezpośrednio, -c copyaby ponownie zmiksować audio i wideo bez ponownego kodowania żadnego ze strumieni ^^
Francesco Yoshi Gobbo
1
Czy wiesz, jak przekonwertować nowy dźwięk w tym samym formacie (z tymi samymi parametrami), co w oryginalnym wideo? Potrzebuję zakodować nowe audio w taki sam sposób, jak w starym audio.
Kostanos
Działa jak urok !!
Tessaracter
@ Kostanos nie automatycznie, ale chciałbym. Proszę zadać kolejne pytanie. Możesz odwołać się do tego, aby wyjaśnić, że twój jest nowy.
qubodup