답변:
이 블로그 항목 에서 가져 왔지만 최신 구문으로 업데이트 된 이 예를 참조하십시오 . 다음과 같은 효과가 있습니다.
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4
여기서는 비디오 파일에 아직 오디오 스트림이 포함되어 있지 않으며 입력 형식과 동일한 출력 형식 (여기서는 MP4)을 원한다고 가정합니다.
MP4는 PCM 오디오 스트림을 전달할 수 없으므로 위 명령은 오디오를 코드 변환합니다. 원하는 경우 원하는 다른 오디오 코덱을 사용할 수 있습니다. 자세한 내용은 AAC 인코딩 안내서 를 참조하십시오.
오디오 또는 비디오 스트림이 더 긴 경우, -shortest
한 파일이 끝나면 ffmpeg가 인코딩을 중지하도록 옵션을 추가 할 수 있습니다 .
출력 컨테이너가 MKV와 같은 거의 모든 코덱을 처리 할 수 있으면 오디오 및 비디오 스트림을 모두 복사 할 수 있습니다.
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
입력 비디오에 이미 오디오가 포함되어 있고 교체하려는 경우 ffmpeg에게 어떤 오디오 스트림을 가져 가야하는지 알려야합니다.
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
이 map
옵션 은 ffmpeg가 첫 번째 입력의 첫 번째 비디오 스트림과 출력 파일의 두 번째 입력의 첫 번째 오디오 스트림 만 사용하도록합니다.
ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
나는 webms를 인코딩 할 때이 문제가 있었기 때문에 나의 평판과 함께 첫 번째 답변에 대한 의견을 쓸 수 없기 때문에 여기의 부록.
예를 들어 오디오 스트림이 비디오 스트림보다 긴 경우 잘라 내야합니다. 그렇지 않으면 정지 이미지 및 오디오가 실행되는 마지막 비디오 프레임이 생깁니다.
스트림을 잘라내려면 -i "file.ext"각각 앞에 -ss [hh : mm : ss] -t [ss]를 사용할 수 있습니다.
-ss [...]는 절단 할 시작점을 정의합니다.
-t [...]는 세그먼트의 길이를 초 단위로 정의합니다
. 예 :
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
끝을 자르는 데 사용할 수도 있습니다 .
-명령 프롬프트 열기 (windows + r-> cmd-> enter)
그런 다음 오디오 및 비디오 파일이있는 폴더 내부로 이동하십시오.
이 cmd를 적용하십시오
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Enter .... outPutFime.mp4 (오디오 및 비디오의 병합 된 파일)라는 새 파일을 얻습니다.
-shortest
태그는 매우 깔끔합니다. @ user136036의 답변보다 훨씬 간단합니다.
이것은 나를 위해 일했다 :
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4