4.4 오디오 채널 매핑과 라우드니스 처리
방송 소재의 다중 모노 오디오를 스테레오와 5.1로 합치고 다운믹스하는 방법, 개별 트랙 추출, 무음 트랙 추가, loudnorm 라우드니스 측정을 FFmpeg로 설명합니다.
#방송 오디오는 "트랙"과 "채널"이 다르다
웹 영상의 오디오는 대부분 스테레오 한 쌍(채널 2개짜리 트랙 1개)입니다. 반면 방송 소재, 특히 MXF는 모노 트랙 여러 개로 오디오를 담습니다. 예를 들어 8트랙 소재는 다음과 같이 쓰입니다.
| 트랙 | 용도 예시 |
|---|---|
| 1, 2 | 본방송 스테레오 (L, R) |
| 3, 4 | 국제 음향(M&E) 스테레오 |
| 5, 6 | 해설·부가 음성 |
| 7, 8 | 예비 |
실제 배정은 방송사와 프로그램마다 다릅니다. 그러므로 어떤 트랙을 어떻게 합쳐서 출력할지 규칙을 정의해야 합니다. 변환 전 분석(MediaInfo의 Audio #1~#8, FFprobe의 channels)에서 트랙 구성을 읽고 정책에 맞는 매핑을 적용합니다.
#모노 2개를 스테레오로
트랙 1과 2를 L, R로 합쳐 하나의 스테레오 트랙으로 만듭니다.
ffmpeg -i mono8.mxf \
-filter_complex "[0:a:0][0:a:1]join=inputs=2:channel_layout=stereo:map=0.0-FL|1.0-FR[a]" \
-map 0:v -map "[a]" -c:v libx264 -c:a aac st.mp4
결과를 FFprobe로 확인하면 channels=2, channel_layout=stereo인 오디오 스트림 1개가 만들어졌습니다. map=0.0-FL|1.0-FR은 "입력 0의 채널 0을 FL로, 입력 1의 채널 0을 FR로"라는 뜻입니다.
#모노 6개를 5.1로
ffmpeg -i mono8.mxf \
-filter_complex "[0:a:0][0:a:1][0:a:2][0:a:3][0:a:4][0:a:5]join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-BL|5.0-BR[a]" \
-map "[a]" -c:a ac3 51.ac3
결과는 channels=6, channel_layout=5.1(side)였습니다. 5.1 채널의 순서는 FL, FR, FC, LFE, BL(또는 SL), BR(SR) 입니다. 소재의 트랙 순서가 이 규칙과 다르면 map의 입력 번호만 바꿔 직접 지정합니다.
#다운믹스: 5.1 → 스테레오
ffmpeg -i 51.ac3 -ac 2 dm.wav
간단한 -ac 2로 2채널이 만들어집니다(이 파일에서는 레이아웃이 unknown으로 표시되었으므로, 소비하는 쪽이 레이아웃을 필요로 하면 -channel_layout stereo를 함께 지정하세요). 정확한 믹싱 계수가 필요하면 pan 필터를 사용합니다.
-af "pan=stereo|FL=FC+0.707*FL+0.707*BL|FR=FC+0.707*FR+0.707*BR"
#한 트랙만 추출
ffmpeg -i mono8.mxf -map 0:a:2 -c:a pcm_s24le ch3.wav
3번째 트랙이 24비트 PCM 모노 WAV로 나왔습니다. 음성 인식(STT)처럼 특정 트랙만 분석하는 작업에서 자주 씁니다.
#오디오가 없는 영상에 무음 트랙 추가
일부 송출 장비와 플랫폼은 오디오가 없는 파일을 거부합니다.
ffmpeg -i video_only.mp4 -f lavfi -i anullsrc=r=48000:cl=stereo \
-shortest -c:v copy -c:a aac with_silence.mp4
-c:v copy로 영상은 그대로 두고 무음 AAC 스테레오를 추가했습니다. -shortest가 없으면 무음 소스가 무한히 이어져 변환이 끝나지 않습니다.
#라우드니스 측정과 정규화
loudnorm 필터는 EBU R128 기반으로 음량을 측정·보정합니다. 먼저 측정만 해서 값을 확인합니다.
ffmpeg -i qc.mp4 -af loudnorm=I=-23:TP=-1.5:LRA=11:print_format=json -f null -
{
"input_i" : "-21.63",
"input_tp" : "-17.69",
"input_lra" : "4.80",
"input_thresh" : "-31.69",
"output_i" : "-22.05",
"target_offset" : "-0.95"
}
input_i는 원본의 통합 라우드니스(LUFS), input_tp는 True Peak입니다. 값이 목표(I=-23)와 얼마나 다른지 보고, 허용 범위 안이면 보정하지 않고 통과시킵니다.
또한 방송 음량 기준은 지역·매체별로 다릅니다(예: 유럽 -23 LUFS, 미국 -24 LKFS). 자동 보정을 적용할지, 기준을 벗어난 소재를 경고만 할지는 운영 정책으로 정하세요. 임의 보정은 원본의 음향 의도를 바꿀 수 있습니다.
#오디오 처리 체크리스트
| 점검 | 이유 |
|---|---|
| 변환 전 트랙 수·채널 수 확인 | 소재마다 구성이 다름 |
-map으로 트랙을 명시 |
기본 선택은 1개뿐 |
샘플레이트 48kHz 유지(-ar 48000) |
방송 표준. 44.1kHz로 바뀌면 싱크·호환 문제 |
| 비트 심도 유지(24bit PCM) | 제작용은 손실 없이 |
| 결과의 채널 수·레이아웃 검증 | 레이아웃 누락(unknown)을 방지 |
| 라우드니스 측정값 기록 | QC 리포트와 정책 판단 근거 |
#정리
- 방송 오디오는 모노 다중 트랙이 흔하므로 트랙 매핑 규칙을 먼저 정의합니다.
join,pan,-ac로 채널을 조합하고,-map으로 트랙을 명시합니다.- 라우드니스는 측정 → 기준 비교 → (정책에 따라) 보정의 순서로 다룹니다.
#참고 자료
링크는 2026-10-28에 열람이 되는 것을 확인했습니다. 규격과 도구 문서는 개정될 수 있으므로 적용하기 전에 최신 판을 확인하세요.