FFmpeg 영상 오디오 합치기 — 스트림 복사 조건 확인

FFmpeg 영상 오디오 합치기는 무조건 재인코딩하지 말고 스트림 복사(-c copy) 가능 여부부터 확인해야 화질 손실 없이 빠르게 끝낼 수 있습니다.
| 증상 | 원인 | 할 일 |
|---|---|---|
| 어떤 트랙이 합쳐질지 불확실 | 파일 확장자만으로 내부 코덱과 스트림 구성을 알 수 없음 | ffprobe로 각 입력의 영상·오디오 스트림 위치를 먼저 확인 |
| 원치 않는 기존 음성이 섞임 | 스트림 자동 선택에 맡김 | 입력 순서를 정하고 필요한 스트림을 명시해서 선택 |
| 출력이 실패하거나 재생 안 됨 | 출력 컨테이너가 해당 코덱의 스트림 복사를 지원하지 않음 | -c copy 가능 여부 확인, 안 되면 오디오만 호환 형식으로 변환 |
| 영상 끝에서 소리·화면이 어긋남 | 두 입력의 시작 시각·길이가 다름 | 원본 길이를 초 단위로 확인한 뒤 자르기 방식 결정 |
영상 파일과 별도 음성을 합칠 때는 두 입력의 길이와 코덱부터 확인합니다. 무조건 다시 인코딩하기보다 컨테이너가 현재 스트림을 담을 수 있는지 판단하면 시간과 화질을 아낄 수 있습니다.
입력 순서는 어떻게 확인하나요?
각 파일을 ffprobe로 열어 영상 스트림과 오디오 스트림이 어느 입력에 있는지 봅니다. 파일 확장자만으로 내부 코덱을 단정하지 않습니다. 영상에 이미 오디오가 있다면 최종 파일에 어떤 트랙을 남길지도 먼저 정합니다.
명령의 첫 입력을 영상, 둘째 입력을 음성으로 두고 필요한 스트림을 명시해 선택합니다. 자동 선택에 맡기면 원하지 않는 기존 음성이 들어갈 수 있습니다. 결과에서 영상 한 개와 의도한 오디오가 선택됐는지 로그를 읽습니다.
-c copy는 언제 쓰나요?
FFmpeg 공식 문서는 streamcopy가 디코딩과 인코딩 없이 패킷을 복사한다고 설명합니다. 빠르고 재압축 손실이 없지만 출력 컨테이너가 그 코덱을 지원해야 합니다. 호환되지 않는 조합은 오디오만 적절한 형식으로 바꾸는 방법을 검토합니다.
두 입력의 시작 시각이나 길이가 다르면 끝부분이 어긋날 수 있습니다. 짧은 쪽에서 멈출지 긴 쪽의 나머지를 유지할지 목적을 정합니다. 자동으로 잘라내는 옵션을 쓰기 전에 원본 길이를 초 단위로 확인합니다.
완료 파일은 무엇을 검사하나요?
출력 로그에 오류가 없는지 보고 파일 처음, 중간, 끝을 재생합니다. 입 모양과 소리가 맞는지, 끝에서 검은 화면이나 무음이 길게 남지 않는지 봅니다. 편집 프로그램에서도 오디오 트랙을 인식하는지 확인합니다.
동기 오차가 일정하면 입력의 시작 시간 문제일 수 있고 점점 커지면 프레임률이나 시간축 차이일 수 있습니다. 두 현상을 같은 지연 옵션으로 덮지 않습니다. 원본 정보를 보존한 채 짧은 구간으로 원인을 시험합니다.
검증 전 원본을 삭제하지 않고 출력은 새 이름으로 만듭니다. 명령과 버전 정보를 함께 저장하면 반복 작업에서 결과를 재현할 수 있습니다. 중요한 작업은 해시와 재생 점검까지 마친 뒤 완료로 봅니다.
자주 묻는 질문
합치면 화질이 떨어지나요?
스트림 복사가 가능하면 다시 인코딩하지 않습니다. 코덱 변환을 하면 설정에 따라 달라질 수 있습니다.
소리가 영상보다 길면?
의도한 종료 기준을 정한 뒤 길이 제한을 적용합니다. 먼저 두 입력의 실제 재생 시간을 확인합니다.
MP4에 모든 오디오가 들어가나요?
컨테이너가 지원하는 코덱인지 확인해야 합니다. 필요하면 오디오만 호환 형식으로 변환합니다.
명령을 재사용할 때 주의할 점은?
파일명만 바꾸기 전에 각 입력의 스트림 번호와 길이를 다시 확인합니다. 카메라나 녹음기 설정이 바뀌면 같은 명령도 다른 트랙을 선택할 수 있으므로 로그를 결과 파일과 함께 둡니다.
공식 자료와 함께 보기
이 글은 2026년 9월 13일에 공식 문서를 확인해 작성했습니다. 메뉴 이름은 설치 버전과 운영체제 언어에 따라 달라질 수 있습니다.
관련 안내
화면 캡처
