그래서 나는 많은 테스트를 거쳤지만 여전히 ffmpeg를 사용하여 비디오를 통해 오디오를 다중화할 수 없는 것 같고 내가 잘못되고 있는 부분을 파악할 수 없으므로 도움을 주시면 정말 감사하겠습니다.
이 영상이 있어요. 비디오 다운로드
그리고 ffmpeg -i를 실행하면 이것이 나옵니다.
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)
그래서 0:0 스트리밍
그리고 나한테는 이 오디오 파일이 있어요. 오디오 다운로드
그리고 ffmpeg를 실행하면 이것을 얻습니다.
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc
그래서 제가 하려는 일은 전체 파일을 다시 인코딩하지 않고 비디오 오디오 0:1을 대체하기 위해 오디오 0:0을 복사하는 것입니다.
ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4
답변1
옵션 의 첫 번째 숫자 -map
는 입력 파일 인덱스입니다. 따라서 0
두 번 사용하는 경우 testing.mp4
.
대신 이것을 시도해 보세요:
ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4
여기서는 0:v:0
첫 번째 입력 파일의 첫 번째 비디오 스트림을 선택하고, 1:a:0
두 번째 입력 파일의 첫 번째 오디오 스트림을 선택합니다. 원칙적으로는 :0
파일에 필요하지 않지만 여러 비디오/오디오 트랙의 경우에는 이 파일을 가지고 있어도 문제가 되지 않습니다.