ffmpeg-비디오에서 오디오 교체


48

ffmpeg를 사용하여 오디오 파일을 사용하여 비디오 파일의 오디오를 바꾸는 방법은 무엇입니까?

나는 명령이 다음과 같다고 상상한다.

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

이것은 비디오 파일의 오디오 스트림을 여러 개의 오디오 스트림으로 바꾸는 방법 과 매우 유사합니다 . 그러나이 질문은 여러 개의 오디오 트랙을 다루기 때문에 매우 복잡하므로 간단한 오디오 스왑에 솔루션의 어느 부분이 충분한 지 불분명합니다.

답변:


68

많은 시간을 절약하기 위해 다시 인코딩하지 않고 비디오 스트림을 복사하려고하지만 오디오를 다시 인코딩하면 비 호환성을 방지하는 데 도움이 될 수 있습니다.

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

-map 0:v:0제 (인덱스 맵핑 0제 (인덱스 입력)에서 비디오 스트림 0의 출력에서) 비디오 스트림.

-map 1:a:01입력 의 두 번째 (index ) 오디오 스트림을 출력의 첫 번째 (index 0) 오디오 스트림에 매핑합니다.

오디오가 비디오보다 긴 경우 -shortest출력 파일 이름 앞에 추가하려고합니다 .

오디오 코덱을 지정하지 않으면 작동중인 코덱이 자동으로 선택됩니다. 예를 들어 -c:a libvorbisafter 를 추가하여 하나를 지정할 수 있습니다 -c:v copy.


2
또는 -c copy스트림을 다시 인코딩하지 않고 오디오 및 비디오를 다시 멀티플렉싱하기 위해 직접 ^^
Francesco Yoshi Gobbo

1
새 오디오를 원본 비디오와 동일한 형식 (같은 매개 변수로)으로 변환하는 방법을 알고 있습니까? 새 오디오를 이전 오디오와 같은 방식으로 인코딩해야합니다.
Kostanos

매력처럼 작동합니다!
Tessaracter

@ Kostanos는 자동으로하지 않지만 싶습니다. 다른 질문을 해주세요. 당신은 당신이 새로운 것을 명확히하기 위해 이것을 참조 할 수 있습니다.
qubodup
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.