dev.to

Which Video Format Is Actually Smallest? H.264 vs VP9 vs AV1, Measured

실제로 가장 작은 비디오 포맷은? — H.264 vs VP9 vs AV1 직접 측정

파일 크기를 결정하는 것은 MP4 같은 컨테이너가 아니라 내부의 코덱이라는 점을 지적하며, 720p 테스트 클립을 H.264, VP9, AV1로 인코딩하고 VMAF 품질 점수로 동일 체감 품질 기준의 크기를 비교했습니다. VMAF 90 기준으로 VP9는 H.264 대비 약 40%, AV1은 약 60% 더 작았습니다. 다만 신형 코덱은 인코딩 CPU 비용이 크므로, 여러 번 스트리밍할 영상이면 AV1/VP9, 일회성 전송이면 H.264가 합리적이라고 정리합니다.

본문

"MP4로 변환하면 용량이 줄어든다"는 조언은 흔하지만 대부분 틀렸다고 저자는 지적합니다. MP4는 비디오, 오디오, 메타데이터를 담는 컨테이너(container)일 뿐 압축 방식이 아니며, 실제로 파일 크기를 결정하는 것은 그 안에 들어 있는 코덱, 즉 H.264, VP9, AV1입니다. .webm 파일을 .mp4로 이름만 바꿔도 크기에는 아무 변화가 없다는 것입니다. 그래서 저자는 코덱이 실제로 얼마나 차이를 만드는지 직접 측정했습니다.

측정 방법

표준 720p 테스트 클립 두 개, Big Buck Bunny와 Jellyfish를 사용해 각각 H.264, VP9, AV1로 전체 품질 구간에 걸쳐 인코딩했습니다. 이때 인코더의 품질 설정값을 그대로 믿지 않고, Netflix가 만든 지각 품질 지표인 VMAF로 모든 출력물을 채점했습니다. 이렇게 하면 '같은 설정'이 아니라 '같은 체감 품질'에서의 파일 크기를 공정하게 비교할 수 있습니다. 아래 수치는 모두 두 클립의 평균값입니다.

측정 결과

대상 품질을 VMAF 90(대부분의 시청자가 원본과 시각적으로 구분하기 어려운 수준)으로 잡았을 때, VP9는 H.264보다 약 40% 작았고 AV1은 약 60% 작았습니다. 구체적으로 같은 10초짜리 720p 클립을 기준으로 하면 H.264는 약 3.3MB, VP9는 약 2.0MB, AV1은 약 1.3MB가 나왔습니다. 같은 화면, 같은 체감 품질인데 AV1이 H.264의 절반에도 못 미치는 크기인 셈입니다. 반면 컨테이너 확장자는 그 자체로 아무 역할도 하지 않아서, 동일한 H.264 스트림을 담은 .mp4, .webm, .mkv 파일은 크기가 같습니다. 파일을 줄이고 싶다면 바꿔야 할 것은 확장자가 아니라 코덱이라고 저자는 강조합니다.

트레이드오프와 선택 기준

신형 코덱이 만들어 내는 작은 파일 크기는 CPU로 지불하는 대가입니다. AV1과 VP9는 H.264보다 인코딩 비용이 훨씬 크며, 경우에 따라 그 차이가 극적입니다. 이를 바탕으로 저자는 선택을 일종의 거래로 재구성합니다. 한 번 인코딩해서 여러 번 스트리밍하는 경우, 즉 공개 publishing할 영상이라면 AV1/VP9에 CPU를 투자할 가치가 있습니다. 대역폭 절감 효과가 조회 수만큼 누적되기 때문입니다. 반대로 한 번만 보내거나 빠른 처리가 필요한 클립이라면 H.264로도 충분합니다. 인코딩이 빠르고 어디서나 재생되기 때문입니다.

재현 가능성

이 연구 전체는 FFmpeg 품질 스윕과 VMAF 채점을 짧은 스크립트로 돌린 것으로, 독점 도구는 사용되지 않았습니다. 임의의 클립에 같은 방식을 적용해도 같은 형태의 결과가 나온다고 설명합니다. 또한 단순히 변환만 필요하다면 MP4 ⇄ MOV, WebM/MKV/AVI → MP4, GIF ⇄ 비디오 변환과 트리머 같은 도구가 ffmpeg.wasm 기반으로 브라우저 안에서 동작해 파일이 업로드되지 않는다고 덧붙입니다.

원문: dev.to / 번역·요약: Trawling