현재 유튜브에 영상을 올리면 오디오는 OPUS와 AAC 코덱 두 가지로 트랜스코딩되어 스트리밍 되고 있다(이 글을 작성한 시점을 기준으로).
유튜브 오디오는 클라이언트(플레이어)의 설정과 코덱 지원 여부, 네트워크 속도에 따라 트랜스코딩된 것들 중에 하나로 스트리밍 된다.
예를 들어서 브라우저에서 유튜브 영상을 오른쪽 클릭하고 “전문 통계”를 보면 현재 어떤 오디오 코덱으로 소리를 듣고 있는지 확인 가능하다.
유튜브 영상의 트랜스코딩된 오디오/비디오 코덱을 모두 확인/다운로드하려면 yt-dlp 같은 유틸리티를 사용할 수 있다.
일반 유튜브 영상
PCM 원본을 업로드할 경우 인코딩되면서 업/다운 샘플링과 로우패스 필터가 적용되는데 테스트를 위해 PCM 24bit/192kHz 화이트 노이즈 파일을 만들어 업로드해 보았다.
- OPUS
- 일반 동영상 최고 음질
- 20kHz 로우패스 필터 적용
- 샘플레이트 48kHz 고정
- 비트레이트는 VBR ~160kbps 정도
- AAC
- 16kHz 로우패스 필터 적용.
- 샘플레이트 22kHz, 44kHz
- 비트레이트는 22kHz 버전이 VBR 90kbps 이하, 44kHz가 ~160kbps 정도
유튜브 뮤직 프리미엄
유튜브 프리미엄 계정으로 유튜브 뮤직 스트리밍 코덱을 확인함. 음악은 Missing in Venice by Rick Braun.
yt-dlp로 확인해 보면 프리미엄의 음질 설정 옵션 때문에 트랜스코딩 버전이 총 6개로 일반 동영상 보다 많다.
- OPUS
- 20kHz 로우패스 필터 적용.
- 샘플레이트는 48kHz (일반 동영상과 동일)
- 비트레이트는 VBR ~160kbps 정도
- AAC
- 유튜브 뮤직 음질 설정 “높게”로 했을 때 최고 음질
- 샘플레이트 44.1kHz, 비트레이트 VBR ~256kbps, 18kHz 로우패스 필터 적용
- 나머지 낮은 음질의 샘플레이트는 22kHz 또는 44.1kHz이고 16kHz 로우패스 필터 적용
참고
- 대부분의 성인은 16kHz 이상의 고음역대가 들리지 않습니다.
- 로우패스 필터 주파수 대역에 따라서 음질이 더 좋거나 나쁘다고 할 수 없습니다. 손실 코덱에서는 어차피 원본 데이터를 줄여서 저장해야 하고 코덱들마다 인코딩 알고리즘에 따라서 줄어드는 정보와 주파수 대역이 다를 뿐입니다. 음질에 영향을 미치는 것은 단순한 로우패스 필터 대역이 아니라 그 보다 더 복잡한 문제들이 많이 있습니다.
- 192kHz 원본 음원의 스펙트럴 그래프를 보여주면서 그것을 어차피 20kHz 이상은 다 잘려버리는 유튜브에 올려 놓고 “고음이 살아 있어서 음질이 정말 좋다”라는 말도 안되는 영상에 속지 마세요.
- 모든 테스트는 윈도우 pc 데스크톱 환경에서의 결과입니다.
- 유튜브 뮤직 오디오 품질 선택 안내에 따르면 “높음” 설정에 256kbps OPUS도 있는데 yt-dlp에서는 확인이 되지 않습니다.
- 오디오 품질 설정별 비트레이트 (AAC, OPUS) : 낮음(~48kbps), 보통(~128kbps), 높음(~256kbps)
- OPUS 인코더 FAQ에 따르면 96~192kHz 샘플레이트의 파일도 인코딩될 때는 48kHz로 다운샘플 한다고 되어 있습니다.
- 압축 코덱에는 비트뎁스라는 개념이 없지만 업로드된 오디오가 인코딩되기 전에 16bit로 비트뎁스 변환(디더링은 하지 않음)된 후에 압축 코덱(AAC, OPUS)로 인코딩되는 것으로 추측됩니다(예: FDK AAC 라이브러리는 내부적으로 16bit PCM만 처리함).
- 모바일(안드로이드, 아이폰) 환경과 앱에 따라서 결과는 달라질 수 있으며 확인 후에 글 업데이트하겠습니다.
관련글
- 유튜브 오디오 코덱 – AAC / PCM 어떤 것으로 업로드하면 좋을까?
- AAC, MP3, OPUS 널 테스트(null test)와 음질 비교
- aptX, aptX HD, aptX LL, SBC, AAC, MP3, OPUS 코덱 비교