HEVC(H.265) 비디오 코덱 실전 활용 | 4K·8K·x265·FFmpeg 튜닝
이 글의 핵심
HEVC는 같은 화질에서 H.264보다 비트를 크게 줄일 수 있어 4K/8K·HDR에 유리하지만, 라이선스·단말 호환을 함께 설계해야 합니다.
들어가며
HEVC(H.265)는 H.264 대비 약 25~50% 수준의 비트레이트 절감(콘텐츠·설정·측정 기준에 따라 다름)을 목표로 한 차세대 광용도 코덱입니다. 4K·8K UHD 방송, HDR10·HLG, 모바일 저장 공간 절약에서 특히 자주 검토됩니다.
반면 라이선스·특허 풀 이슈와 구형 단말·웹 브라우저 호환은 H.264보다 까다롭습니다. 이 글은 “압축 효율은 챙기되, 배포 리스크는 통제한다”는 관점에서 실전 인코딩과 의사결정 포인트를 정리합니다.
이 글을 읽으면
- CTU·CU/PU/TU 개념으로 HEVC의 공간·시간 예측 구조를 설명할 수 있습니다
- Main / Main 10 등 프로파일 선택과 FFmpeg(x265, NVENC) 튜닝을 연결할 수 있습니다
- 4K/8K·HDR 파이프라인에서 비트 절감 vs 호환성 트레이드오프를 판단할 수 있습니다
- OTT·모바일·브라우저에서의 위치와 장애 패턴을 정리할 수 있습니다
목차
코덱 개요
역사 및 개발 배경
HEVC는 JCT-VC(Joint Collaborative Team on Video Coding)에서 표준화되었으며, ISO/IEC 23008-2(MPEG-H Part 2) 및 ITU-T H.265로 문서화되었습니다. 설계 목표는 UHD·고프레임·고비트 심도에서 H.264 대비 효율 향상과 병렬 처리 친화적 구조입니다.
기술적 특징
- CTU(Coding Tree Unit): H.264의 매크로블록 대신 최대 64×64(일반적)부터 재귀적으로 분할 가능한 블록 트리를 사용합니다.
- CU / PU / TU: 코딩 단위·예측 단위·변환 단위를 분리해 복잡한 텍스처·경계에 맞춥니다.
- 향상된 인트라/인터 예측: 더 많은 방향 모드, Merge/Skip 등으로 모션 정보 비트를 줄입니다.
- 대형 변환·SAO/ALF(구현·프로파일에 따름): 아티팩트 완화와 압축 효율을 동시에 노립니다.
주요 프로파일 및 레벨
| 프로파일 | 요지 | 실무 메모 |
|---|---|---|
| Main | 8비트 4:2:0 | 일반 VOD·방송에 널리 사용 |
| Main 10 | 10비트 4:2:0 | HDR·그레이딩·밴딩 완화에 유리 |
| Main Still Picture | 정지 화면 최적화 | 사진·슬라이드 등 |
티어(Tier)와 레벨(Level)은 해상도·fps·비트레이트 상한을 규정합니다. 4K 60fps HDR처럼 요구가 높을수록 디코더 스펙을 먼저 확인해야 합니다.
압축 원리
Intra / Inter 예측
- Intra: H.264보다 방향 예측 모드가 세분화되어 평탄 영역·직선 경계에서 효율이 좋아집니다.
- Inter: Merge 모드로 인접 블록과 동일 모션을 공유해 모션 벡터 코딩 비트를 줄입니다.
Transform & Quantization
더 큰 TU(예: 32×32)와 정수 DCT/DST 계열 변환을 활용합니다. 양자화는 레이트 제어(x265의 CRF·AQ 등)와 맞물려 시각적으로 민감한 영역에 비트를 재분배합니다.
Entropy Coding
CABAC 중심으로, 컨텍스트 적응을 강화해 H.264 대비 비트를 덜 쓰는 경향이 있습니다(디코딩 복잡도는 증가).
압축 파이프라인 다이어그램
flowchart TB
subgraph frame [프레임 입력]
F[YUV / RGB 변환]
end
subgraph tree [공간 분할]
CTU[CTU 64x64]
SPLIT[재귀적 CU 분할]
end
subgraph predict [예측]
PRED[Intra / Inter + Merge]
end
subgraph coeff [계수]
TQ[Transform & Quantize]
end
subgraph stream [비트스트림]
CABAC[CABAC]
NAL[HEVC NAL Units]
end
F --> CTU
CTU --> SPLIT
SPLIT --> PRED
PRED --> TQ
TQ --> CABAC
CABAC --> NAL
실전 인코딩
품질 우선: libx265 + CRF (8비트 420)
ffmpeg -i input.mov -c:v libx265 -crf 24 -preset slow -tag:v hvc1 \
-pix_fmt yuv420p -c:a aac -b:a 192k output.mp4
- CRF: x265는 흔히 24~28대가 실용적입니다(H.264의 CRF와 숫자 의미가 같지 않으니 직접 시각 비교가 중요합니다).
-tag:v hvc1: 일부 Apple 생태계·플레이어에서 MP4 품질을 위해 자주 권장됩니다(환경별로 검증).
Main 10 (10비트): HDR·그레이딩 파이프라인
ffmpeg -i input.mov -c:v libx265 -crf 22 -preset slow -pix_fmt yuv420p10le \
-tag:v hvc1 -c:a aac -b:a 192k output.mp4
소스가 8비트라면 업비트 깊이만으로 품질이 마법처럼 좋아지지는 않습니다. 원본·마스터링 단계와 맞춰 결정하세요.
목표 비트레이트(4K VOD 예시)
ffmpeg -i input_4k.mov -c:v libx265 -b:v 15M -maxrate 20M -bufsize 40M \
-preset medium -pix_fmt yuv420p -tag:v hvc1 -c:a aac -b:a 192k output.mp4
NVIDIA NVENC (속도)
ffmpeg -hwaccel cuda -i input.mov -c:v hevc_nvenc -rc vbr -cq 26 -preset p5 \
-pix_fmt yuv420p -c:a aac -b:a 192k output.mp4
-cq·-preset 의미는 드라이버·FFmpeg 버전에 따라 다를 수 있어 반드시 ffmpeg -h encoder=hevc_nvenc로 확인합니다.
파라미터 튜닝 가이드
| 상황 | 방향 |
|---|---|
| 세밀한 텍스처 | CRF를 약간 낮추거나, AQ 관련 옵션(인코더 문서) 검토 |
| 저지연 | B-프레임 수 축소, 프리셋 빠르게, 버퍼 작게 |
| 아카이브 | 느린 preset, 2-pass(고정 비트레이트 목표 시) |
품질 vs 속도 트레이드오프
- HEVC는 동일 품질을 위해 인코딩 비용이 H.264보다 큰 경우가 많습니다. 오프라인 VOD는 느린 preset이, 실시간은 GPU 인코더가 현실적입니다.
- 동일 파일 크기를 맞춰 비교하면 HEVC가 PSNR/SSIM/VMAF에서 유리한 경우가 많지만, 최종 판단은 시각적 시청으로 합니다.
성능 비교
다른 코덱과의 압축률
실무에서는 동일 VMAF·SSIM 목표로 비트레이트를 맞추는 방식이 흔합니다. 일반적으로 H.264 < HEVC ≤ AV1(콘텐츠·인코더·설정에 따라 순서 변동)로 이해하면 됩니다.
인코딩·디코딩 속도
- 인코딩: libx265는 매우 느릴 수 있음(특히 고해상도·느린 preset). 배치 파이프라인은 멀티 프로세스·분산 큐를 고려합니다.
- 디코딩: 최신 SoC·GPU는 HEVC 4K·HDR HW 디코딩이 널리 지원됩니다. 구형 PC는 CPU 소프트웨어 디코딩으로 발열·팬 소음이 커질 수 있습니다.
하드웨어 가속 지원
- Intel: Quick Sync HEVC 디코딩/인코딩(세대별 상이)
- NVIDIA: HEVC NVENC/NVDEC
- Apple: VideoToolbox
- 모바일 SoC: 거의 표준처럼 탑재(단, 10비트·HDR 메타데이터는 모델별 차이)
실무 활용 사례
스트리밍 서비스 (YouTube, Netflix 등)
- 4K HDR 콘텐츠는 HEVC와 AV1이 함께 쓰이는 경우가 많고, 구형 단말을 위해 H.264 Ladder를 유지하기도 합니다.
- DRM·DASH/HLS 패키징 시 코덱 태그·세그먼트 길이·키 프레임 간격이 재생 안정성에 큰 영향을 줍니다.
모바일 앱
- 아이폰·안드로이드 최신 기기는 HEVC 녹화·재생이 기본 옵션인 경우가 많습니다. 앱 배포에서는 구형 OS 사용자 비율에 따라 H.264 폴백을 두는 설계가 안전합니다.
웹 브라우저 지원
- HEVC in MP4는 OS·GPU·브라우저 빌드에 따라 재생 여부가 갈립니다. 광범위한 웹만 목표라면 H.264 또는 AV1(폴백 포함) 전략이 더 단순한 경우가 많습니다.
최적화 팁
품질 유지하며 파일 크기 줄이기
- 해상도·fps를 먼저 확정한 뒤 CRF/비트레이트를 조정합니다.
- HDR: 마스터링 톤에 맞는 전달 함수(PQ/HLG)와 메타데이터를 파이프라인에서 보존합니다.
인코딩 속도 개선
- preset 상향(slow → medium → fast).
- GPU 인코더로 전환 후 VMAF/시각 검수.
- 프레임 워커: x265의
--pools·**-x265-params**로 CPU 코어 활용 튜닝(FFmpeg 빌드·버전 문서 확인).
배치 처리 자동화
#!/usr/bin/env bash
set -euo pipefail
mkdir -p hevc_out
for f in *.mkv; do
ffmpeg -y -i "$f" -c:v libx265 -crf 26 -preset medium -pix_fmt yuv420p \
-tag:v hvc1 -c:a copy "hevc_out/${f%.mkv}.mp4"
done
**-c:a copy**는 오디오 재인코딩을 피해 시간을 줄이지만, 컨테이너 호환을 검증해야 합니다.
흔한 문제와 해결
호환성 이슈
- “재생은 되는데 색이 이상하다”: 색 범위(tv vs pc), 메타데이터(BT.709/2020), 플레이어 톤 매핑 문제일 수 있습니다. 마스터 파일에서 일관된 색 태그를 유지합니다.
- 웹에서 안 열린다: 브라우저·OS 조합 문제일 수 있어 H.264/AV1 병행을 검토합니다.
품질 저하 문제
- 저비트레이트 4K: 세밀한 잔디·물결에서 아티팩트가 쉽게 드러납니다. 비트레이트·해상도·CRF를 함께 조정합니다.
- x265 vs NVENC: 동일 숫자 설정이라도 품질 곡선이 다릅니다. 동일 VMAF를 맞춰 비교하세요.
라이선스 고려사항
- HEVC는 특허 풀·라이선스 프로그램에 대한 논의가 오래되었고, 상용 배포·하드웨어는 법무 검토가 필요할 수 있습니다. “오픈소스 인코더 = 무료 사용”으로 단정하지 않는 것이 안전합니다.
마무리
핵심 요약
- HEVC는 4K/8K·HDR·저장/전송 비용 절감에 강점이 있습니다.
- x265·NVENC·VideoToolbox 등 도구 선택과 프로파일(특히 Main 10)이 실무 결과를 가릅니다.
- 웹·구형 단말까지 한 번에 커버해야 한다면 H.264/AV1 폴백을 설계에 포함하세요.
추천 사용 시나리오
- 4K 라이브러리 보관, 모바일 다운로드 용량 절감, 사내 UHD 스트리밍처럼 디코더가 통제된 환경에서 HEVC는 매우 실용적입니다. 최저 호환 웹 배포가 목표면 H.264 가이드와 AV1 가이드와 함께 멀티 코덱 전략을 비교하세요.