홈 › 4장 FFmpeg 실전 변환

4.4 오디오 채널 매핑과 라우드니스 처리

방송 소재의 다중 모노 오디오를 스테레오와 5.1로 합치고 다운믹스하는 방법, 개별 트랙 추출, 무음 트랙 추가, loudnorm 라우드니스 측정을 FFmpeg로 설명합니다.

최종 수정 2026-10-28 · 읽는 시간 약 5분 · 운영 프리즘(Prism) · 편집 원칙

#방송 오디오는 "트랙"과 "채널"이 다르다

웹 영상의 오디오는 대부분 스테레오 한 쌍(채널 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에 열람이 되는 것을 확인했습니다. 규격과 도구 문서는 개정될 수 있으므로 적용하기 전에 최신 판을 확인하세요.