📁 File3. 비디오11 · VP9 — Google YouTube의 다리

11 · VP9 — Google YouTube의 다리

이 문서가 답하는 질문: VP9의 자리는 어디이고, AV1 시대에도 의미가 있는가? 선행: 07-codecs-overview.md, 10-codec-av1.md


한 줄 답

VP9은 Google이 HEVC를 회피하기 위해 만든 royalty-free 코덱이며, YouTube를 통해 전 세계 1080p+ 트래픽의 표준이 됐다. 효율은 HEVC와 비슷하고 AV1보다는 낮다 — AV1으로 가는 다리 역할이 끝나가고 있다.


Why — 왜 VP9이 만들어졌나

시간 순서

2009  On2 → Google에 인수 (1억 4천만 달러)
2010  VP8 오픈소스 발표 → WebM 컨테이너로 묶음
2013  VP9 발표 (HEVC와 같은 해)
2013  YouTube가 1080p+ 영상에 VP9 시범 적용
2018  AV1 발표 — VP9 후속이지만 다중 회사 합의

동기

  • HEVC는 라이선스 비용이 OTT에 부담 (09-codec-hevc-h265.md).
  • Google YouTube는 연간 수십만 시간 콘텐츠를 처리 — H.264 대비 30% 절감만 해도 조 단위 대역폭 절약.
  • 완전 royalty-free인 자체 코덱이 필요했다.

→ VP9은 YouTube의 비용 구조를 위해 태어났고, 그 결과 Chrome 생태계에 강하게 묶였다.


How — H.264·HEVC와의 차이

기술적 위치

H.264VP9HEVCAV1
발표2003201320132018
기본 블록16×16 macroblock64×64 superblock64×64 CTU128×128 superblock
Intra 모드9103356
비트심도8 (High10/12 별도)8/10/12 (Profile)8/10/128/10/12
라이선스MPEG LAroyalty-free3-poolroyalty-free (AOM)

압축 효율 (vs H.264)

콘텐츠VP9 절감HEVC 절감
1080p 일반30%35~40%
4K35%45%
애니메이션40%50%

→ VP9 ≈ HEVC. 라이선스만 빼면 거의 동급. AV1이 두 코덱 모두를 추가 25~30% 앞섬.

Profile

Profile비트심도서브샘플사용처
Profile 084:2:0표준
Profile 184:2:2 / 4:4:4그래픽
Profile 210 / 124:2:0HDR ★
Profile 310 / 124:2:2 / 4:4:4HDR + WCG

→ YouTube는 Profile 2 (10-bit 4:2:0 BT.2020)로 모든 HDR 콘텐츠 통합.


What — 사양·명령어

MIME / codecs

video/webm; codecs="vp9"
video/webm; codecs="vp9,opus"
video/mp4;  codecs="vp09.00.10.08"          ← Profile 0, Level 1.0, 8bit
video/mp4;  codecs="vp09.02.10.10.01.09.16.09.01"  ← Profile 2, 10bit, BT.2020 PQ

vp09.PP.LL.DD.CC.MM.TT.RR.RR 구조:

  • PP: profile (00~03)
  • LL: level (10·11·20·21·30·…·61·62)
  • DD: bit depth (08·10·12)
  • CC: chroma subsampling
  • MM: matrix coefficient
  • TT: transfer characteristic
  • RR: video full range flag

Level

Level최대 해상도@fps최대 비트레이트
1.0240p@30200 kbps
2.0352p@30800 kbps
3.0720p@305 Mbps
4.01080p@3012 Mbps
4.11080p@6020 Mbps
5.04K@3050 Mbps
5.14K@60100 Mbps
6.08K@30160 Mbps
6.18K@60240 Mbps

ffmpeg VP9 인코딩

# 표준 1080p VP9
ffmpeg -i in.mov \
  -c:v libvpx-vp9 -crf 30 -b:v 0 \
  -pass 1 -an -f webm /dev/null
ffmpeg -i in.mov \
  -c:v libvpx-vp9 -crf 30 -b:v 0 \
  -pass 2 -c:a libopus -b:a 96k \
  -movflags +faststart \
  out.webm
 
# 4K HDR10 VP9 (Profile 2)
ffmpeg -i hdr.mov \
  -c:v libvpx-vp9 -profile:v 2 \
  -crf 24 -b:v 0 \
  -pix_fmt yuv420p10le \
  -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc \
  out_hdr.webm
 
# 멀티 ladder 인코딩 (속도 개선: --row-mt, --tile-columns)
ffmpeg -i in.mov \
  -c:v libvpx-vp9 -row-mt 1 -tile-columns 2 \
  -threads 8 -speed 2 -crf 30 -b:v 0 \
  out.webm
 
# MP4에 VP9 (덜 일반적, WebM이 표준)
ffmpeg -i in.mov \
  -c:v libvpx-vp9 -crf 30 -b:v 0 \
  -c:a aac -b:a 128k \
  out.mp4

libvpx-vp9 speed (preset)

speed 0~5 (에서 0이 가장 좋은 품질, 5가 가장 빠름)
- speed 0: 최고 효율, 매우 느림
- speed 1: 권장 offline (Netflix/YouTube 권장)
- speed 2~3: 실용적 균형
- speed 4~5: 라이브

libvpx-vp9 speed 1이 default offline 권장. 단, 매우 느림.

컨테이너 — WebM

VP9의 자연스러운 컨테이너는 WebM (MKV의 Web 친화 부분집합).

특징WebM
기반EBML (MKV 부분집합)
비디오VP8 / VP9 / AV1
오디오Vorbis / Opus
자막WebVTT
DRMEME (Widevine)

→ MP4에 VP9도 가능하지만, iOS Safari는 MP4+VP9도 안 받음. WebM은 Safari 14+에서 일부 지원.


What-if — 잘못 다루면 어떻게 깨지는가

❌ 함정 1 — iOS Safari에 VP9 단독 송출

iOS는 VP9 HW 디코더 없음. Safari 14+ (iOS 14, 2020)부터 SW 디코딩으로 일부 1080p 가능. MP4 H.264/HEVC 폴백 필수.

❌ 함정 2 — libvpx-vp9 default로 라이브 인코딩

libvpx-vp9은 offline 인코더 — 라이브에는 너무 느림. 라이브는 HW NVENC VP9 (RTX 30+) 또는 AV1, 아니면 H.264로 라이브.

❌ 함정 3 — VP9 + MP4 구조 가정

video/mp4; codecs="vp09..." 는 표준이지만 대부분의 디코더가 WebM에서만 VP9를 받음. WebM이 사실상 표준.

❌ 함정 4 — AV1 시대에 VP9를 추가 ladder로

ABR ladder에 AV1 + VP9 + HEVC + H.264 모두 넣으면 인코딩 비용 4×. 보통 AV1 + H.264 또는 HEVC + H.264 두 ladder가 실용적. VP9는 YouTube의 인프라가 이미 박혀있는 곳에서만 의미.

❌ 함정 5 — color metadata 누락

VP9 Profile 2 (10bit HDR)는 transfer/primaries/matrix 메타가 필수. ffmpeg는 default로 박지 않으니 명시:

-color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc

Insight — 흥미로운 이야기

“YouTube가 VP9를 만들었다”

Google이 On2를 인수한 가장 큰 이유는 YouTube의 비용 절감. 인수 직후 VP8을 오픈하고, VP9를 만들고, Chrome에 디코더를 강제 통합. 결과: 2014년 1080p+ YouTube의 80%+가 VP9으로 송출. 광고가 없는 트래픽까지 책임지는 internal cost optimization codec. → “코덱은 표준이 아니라 비용 절감 도구” 의 가장 명확한 예시.

“VP9의 patent 안전성은 검증된 적 없다”

Google은 VP9이 어떤 patent도 침해하지 않는다고 주장하지만, 법정에서 검증된 적은 없음. 일부 회사(Sisvel·Velos)가 VP9 patent pool을 만들어 라이선스를 시도했지만 광범위 채택은 실패. → AV1이 defensive patent pool을 만든 이유 — VP9의 학습.

“HDR는 VP9이 먼저였다”

2016년 YouTube HDR launch 시점, AV1은 아직 없었고 HEVC HDR은 Apple iOS만. Web에서 첫 HDR 송출은 VP9 Profile 2. PQ·HLG 모두 지원. YouTube는 모든 HDR 콘텐츠를 VP9 Profile 2로 정규화. 2024년부터 AV1로 단계적 전환 중이지만 VP9 HDR 라이브러리는 여전히 거대.

“AV1으로 가는 다리”

VP9의 코드베이스(libvpx)는 AV1 reference encoder(libaom)의 직접 조상. AV1의 superblock·intra prediction·entropy coding 상당수가 VP9의 진화. VP9이 없었으면 AV1도 없었다.

“VP9 디코더가 가장 많이 깔린 곳은 Smart TV”

Chromecast·Android TV·Roku·LG WebOS·Samsung Tizen의 default 비디오 디코더에 VP9 HW 가속이 박혀있다. 20152022년 출시된 거의 모든 Smart TV가 VP9 디코더 보유. → AV1 시대에도 Smart TV legacy는 VP9이 510년 더 살아남을 가능성.


요약 + Mermaid

VP9은 Google이 HEVC 라이선스를 회피하기 위해 만들었고 YouTube를 통해 사실상 표준이 됐다. 효율은 HEVC와 비슷, AV1보다는 낮음. WebM 컨테이너에 담겨 Chrome·Smart TV·Android에 뿌리내림. 2025년 시점은 AV1으로의 전환기 — VP9는 점진 폐지 단계지만 Smart TV legacy로 5~10년 더 살아남는다.