FFmpeg 9.1의 새로운 AAC 인코더
요약
FFmpeg 9.1에 탑재된 새로운 AAC 인코더의 성능과 특징을 분석합니다. 기존 FFmpeg AAC 인코더의 품질 문제를 개선하여 Apple Core Audio 수준의 성능을 목표로 하며, 호환성을 중시하는 스트리밍 환경에서 중요한 업데이트입니다.
핵심 포인트
- FFmpeg 9.1의 새 AAC 인코더는 기존의 품질 저하 문제를 대폭 개선함
- Opus 코덱이 효율 면에서 압도적이지만, 호환성을 위해 AAC의 중요성은 여전함
- 새 인코더는 특정 벤치마크에서 Apple Core Audio보다 높은 점수를 기록함
- 스트리머와 OBS 사용자들에게 음질 향상의 기회를 제공할 것으로 기대됨
Opus가 얼마나 강한지 보여주는 사례임
이런 작업 자체도 가치 있고, 오래된 코덱용 인코더가 좋아지는 건 분명 이득이지만, 이 벤치마크에서 Opus 수치를 보면 64kbps에서도 모든 AAC 인코더를 압도함
좋은 AAC 인코더의 가장 큰 장점은 효율이 아니라 호환성임
거의 20년 동안 실시간 스트리밍 영상의 사실상 표준은 H.264 영상과 AAC 음성을 쓰는 RTMP였고, 다른 코덱 지원은 거의 없음
YouTube나 Twitch로 스트림을 보내려면 결국 H.264와 AAC를 보내게 되며, OBS도 스트리밍 모드에서는 다른 영상·음성 코덱 선택을 아예 허용하지 않고 스트리머는 H.264와 AAC를 쓸 거라고 가정함
기사에 들어가기 전까지 Opus가 모델이 아니라 인코더를 말하는 거라는 걸 잠깐 헷갈렸음
손실 오디오 코덱 선택은 이제 거의 고민할 필요가 없어졌음
그냥 Opus를 쓰면 끝이고, 어떤 이유로 Opus를 못 쓰면 호환성을 위해 AAC를 아주 높은 비트레이트로 쓰면 됨
어떤 인코더와 모드를 골라야 할지 조사하지 않아도 좋은 품질을 얻을 수 있음
그래도 품질 좋은 기본 AAC 인코더가 생기는 건 훌륭하지만, 왜 주로 고정 비트레이트인지 이해는 잘 안 됨
실제 성능이 어떨지 기대됨
FFmpeg의 기존 AAC 인코더는 출력 품질이 나빴고 거슬리는 지저귐 같은 아티팩트가 자주 있어서, 제대로 된 소리를 얻으려면 영상 녹화용 컴퓨터마다 Apple Core Audio 인코더를 설치해야 했음
A/B/X 비교를 해보면 320kbps MP3가 FFmpeg로 인코딩한 320kbps AAC보다 낫고, Core Audio로 인코딩한 256kbps AAC와는 비슷했음
이제 Core Audio 설치가 필요 없어지면 큰 개선이고, OBS 같은 도구로 화면 녹화나 스트리밍을 하는 사람들은 다음 업데이트 때 음질이 크게 좋아질 수 있음
나는 FDK AAC 인코더를 쓰고 있었고, Apple 인코더가 Apple 외 시스템에서도 가능한 줄은 몰랐음
예전에 192kbps에서 FDK AAC와 Apple AAC를 비교했을 때는 차이를 못 느꼈지만, 기존 FFmpeg AAC 인코더는 이 비트레이트에서 무너졌음
Hydrogenaudio 토론 스레드의 지표 표에서는 새 인코더가 Core Audio보다 더 좋은 점수를 받음
다만 고정 비트레이트 기준임
Core Audio에는 새 인코더에 없는 가변 비트레이트 모드인 TVBR도 있음
그래서 TVBR을 쓸 수 있는 경우에는 Core Audio가 계속 최고일 수도 있지만, 더 많은 사람이 문제 샘플을 찾아 기여해서 튜닝하면 새 FFmpeg 인코더도 충분히 괜찮아질 거라 기대함
품질을 신경 쓴다면 왜 무손실 코덱을 쓰지 않는지 궁금함
아니면 Opus를 쓰면 되고, 음성에도 괜찮고 요즘은 거의 어디서나 동작함
Apple이 독점 코덱에 매달리는 건 이해가 안 됨
Apple이 H.265를 채택하지 않았다면 우리는 AV1 유토피아에 살고 있었을지도 모름
“FFmpeg의 AAC 디코더는 스테레오 PNS 처리에 버그가 있고, 다른 AAC 디코더에도 있을 수 있어서 인코더에서 우회한다. 다른 인코더는 PNS를 쓰지 않았기 때문에 지금까지 발견되지 않았다”는 부분이 흥미로움 PNS가 뭔지는 모르지만, 누군가의 아주 특수한 사용 사례를 20년 동안 괴롭혀 왔을 것 같음
문제는 두 가지였음
하나는 PNS 위에 TNS를 쓰면 삽입된 노이즈가 TNS로 셰이핑되는데, 노이즈를 만든 쪽은 인코더가 아니라 디코더라서 말이 안 됨
이 때문에 PNS가 망가졌고, 더 큰 문제는 PNS를 어떤 스테레오 도구와 함께 쓰면 노이즈가 양쪽 채널에 동일하게 새어 들어가 스테레오 이미징을 망친다는 점이었음
그래서 양쪽 채널의 해당 대역이 모두 노이즈이거나 충분히 비음조적이고 마스킹될 때만 PNS를 켜는 게 최선임
세부 사항이 잘 정리된 훌륭한 업데이트임
Opus는 훌륭하고 제자리가 있지만, AAC가 사라질 일은 없음
“인코더는 주로 48kHz 오디오에 최적화됐다. 받아들여라. 2026년이고 리샘플링은 공짜이며 48kHz가 표준이다. 44.1kHz도 동작하고 96kHz도 동작하지만, 최고의 품질을 원하면 48kHz를 써라”라는 대목이 있는데, 요즘 정말 48kHz가 표준인가?
실제 “표준”에 가장 가까운 건 AES5-2018, “전문 디지털 오디오 권장 관행”이라고 봄
초록에서는 PCM을 쓰는 오디오 프로그램의 제작, 처리, 교환에는 48kHz 샘플링 주파수를 권장하고, 일부 소비자 디지털 애플리케이션의 44.1kHz, 전송 관련 애플리케이션의 32kHz, 더 높은 대역폭이나 완화된 안티앨리어싱 필터가 필요한 애플리케이션의 96kHz도 인정한다고 되어 있음
개인적으로는 44.1kHz가 유산으로 남은 사소한 귀찮음처럼 느껴짐
AAC에는 샘플링 레이트에 따라 창 크기가 달라지는 이상한 특성이 있음
그래서 20ms 창과 60ms 창은 사람 귀에 아주 다르게 들리므로, 각 샘플링 레이트마다 인코더의 모든 심리음향 파라미터를 완전히 다시 최적화해야 함
Opus에서는 당연히 이 문제가 해결됐음
48kHz는 영상과 음성의 정렬을 훨씬 쉽게 만들어 줌
예를 들면 편집 후 입 모양 동기화가 쉬워짐
Opus 코덱은 모든 입력을 48kHz라고 가정하고, 입력을 그쪽으로 리샘플링하는 것으로 알고 있음
거의 모든 DAC는 운영체제가 합리적인 기본값으로 고르기 때문에 기본적으로 48kHz로 동작함
더 나은 새 FFmpeg AAC 인코더는 환영하지만, 세부 사항에 꽤 큰 단서가 두 가지 있음 고정 비트레이트만 지원하고, 48kHz 샘플링에만 최적화되어 있음
품질 기준 가변 비트레이트 인코딩을 못 하는 건 큰 공백이고, 전 세계 CD 오디오가 44.1kHz인 점을 생각하면 이것도 큰 누락처럼 보임
오디오 인코딩에 왜 가변 비트레이트가 필요한지 모르겠음
가변 비트레이트 오디오는 소리가 끔찍하고 비트레이트도 그다지 많이 아끼지 못함
-q:a를 쓰면 “진짜” 가변 비트레이트를 사용할 수 있지만, 지표는 몇 퍼센트 낮음
그래도 지각하기 어렵고 여전히 이긴다고 봄
벤치마크는 주로 44.1kHz에서 했고, 귀로 튜닝한 데이터는 48kHz였기 때문에 일부 윈도잉·트랜지언트 로직이 48kHz에 묶여 있음
다만 44.1kHz에도 충분히 잘 옮겨졌고 타이밍 차이가 크지 않아서 그대로 둔 것임
이 많은 부분이 개발자 본인의 귀에 달려 있다는 게 흥미로움
동시에 불안하기도 하고 꽤 멋지기도 한데, 오디오 품질 판단이 이렇게 주관적임
표와 비교에는 “Google의 새 Zimtohrli, ViSQOL, 그리고 내 청각”이 쓰였음
오디오에서는 보통 이런 식임
Musepack도 한동안 틈새에서 인기가 있었는데, 단순하지만 튜닝이 아주 잘 된 코덱이었음
스피커와 헤드폰도 마찬가지라서, 사람들은 부품 품질이라고 생각하지만 실제로는 전반적인 오디오 물리 이해와 잘 튜닝하는 능력이 대부분을 좌우함
아주 반가운 추가임
이제 fdk-aac를 대체할 수 있으면 좋겠음
누군가 역대 최고의 AAC 인코더를 만들어 왔는데, 첫 반응이 48kHz냐 44kHz냐를 두고 관리자가 따지는 것이라니 진짜 옛 인터넷답다
그렇게 냉소적으로 볼 일은 아님
작성자가 실제로 가장 흔히 쓰이는 샘플링 레이트에서 테스트하지 않았으니, 어떤 진지한 프로젝트라도 수십 년 된 동작 중인 파이프라인을 통째로 갈아엎는 건 터무니없음
충분한 검증이 끝날 때까지 기다리는 게 완전히 타당함
예전에 ffmpeg로 iPod nano용 노래를 인코딩했을 때는 파일이 깨졌음
재생 중 몇 초마다 팝과 클릭 소리가 끊겨 들어갔는데, 이제 고쳐졌는지 궁금함
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기