
3D 아티스트를 위한 동영상 인코딩 가이드: H.264, H.265, 그리고 AV1
개요
3D 아티스트를 위한 동영상 인코딩 가이드: H.264, H.265, 그리고 AV1
After Effects, Blender, Cinema 4D 에서 3D 자산을 렌더링하면, 동영상 파일이나 이미지 시퀀스로 작업하게 됩니다. 최종 단계인 렌더링을 전달 가능한 포맷으로 인코딩하는 과정이 클라이언트가 실제로 사용할 수 있는지, 그리고 플랫폼 전체에서 매끄럽게 스트리밍되는지를 결정합니다. After Effects CC 2014+ 에서 직접 동영상 내보내기를 제거했기 때문에, 많은 아티스트들이 Adobe Media Encoder나 FFmpeg 같은 도구에서 인코딩 워크플로우를 배워야 했습니다. 오늘날 우리는 과거보다 더 많은 코덱 선택지를 마주합니다: H.264 는 여전히 업계 표준이고, H.265 는 더 나은 압축을 제공하며, AV1 은 미래 지향적인 선택지로 떠오르고 있습니다. 이 가이드에서는 Super Renders Farm에서 진행하는 실전 인코딩 결정 사항들을 다룰 것입니다. 코덱 차이 이해부터 매끄러운 내보내기를 위한 렌더 출력 구성까지 다룰 것입니다.
동영상 코덱 이해하기: 우리가 실제로 필요한 것
코덱은 압축 알고리즘입니다. 동영상 데이터를 더 작은 파일로 압축하는 방식을 정의하는데, 이상적으로는 우리 작업에 중요한 시각적 품질을 손상시키지 않습니다. 3D 아티스트 워크플로우를 지배하는 세 가지 코덱은 H.264, H.265, AV1 입니다. ProRes 는 다른 위치에 있는데, 배송이 아닌 편집과 후반 작업을 위해 설계되었습니다. 하지만 렌더팜 출력이 중간 포맷으로 때때로 이를 사용하기 때문에 다루게 될 것입니다.
H.264 (MPEG-4 AVC): 2003년에 출시된 H.264 는 여전히 기기, 플랫폼, 스트리밍 서비스 전체에서 가장 광범위하게 지원되는 코덱입니다. 거의 모든 휴대폰, 브라우저, 미디어 플레이어가 H.264 를 이해합니다. 재생 환경을 제어할 수 없는 클라이언트 전달 파일의 경우 H.264 가 안전한 선택입니다. 절충점은: 가장 효율적이지 않다는 것입니다. 방송 품질의 4K H.264 파일은 H.265 의 동일한 콘텐츠보다 큽니다.
H.265 (HEVC): 2013년부터의 새로운 표준은 동등한 시각적 품질에서 H.264 보다 약 50% 더 나은 압축을 제공합니다. 아카이브, 포트폴리오 작업, 내부 저장소에서 H.265 는 매력적입니다. 상당한 하드 드라이브 공간을 절약할 수 있거든요. 그러나 H.265 특허 라이센스는 더 복잡하고, 일부 기기(특히 구형 하드웨어와 특정 브라우저)는 이를 기본적으로 지원하지 않습니다.
AV1: Open Media Alliance 에서 개발한 AV1 은 로열티 무료이며 비트레이트에 따라 H.265 와 H.264 사이의 압축을 제공합니다. YouTube 와 스트리밍 플랫폼에서 채택이 증가하고 있지만, 인코딩은 CPU 집약적이고 소비자 기기의 재생 지원은 여전히 진행 중입니다. 콘텐츠 미래 보장을 위해 AV1 은 배우면 좋습니다.
ProRes: 배송 코덱이 아니라 전문적인 중간 포맷입니다. ProRes 파일은 H.264 나 H.265 보다 크지만, 빠른 편집과 컬러 그레이딩을 위해 설계되었습니다. 출력이 클라이언트에게 직접가 아니라 후반 작업 파이프라인으로 가갈 때 ProRes 를 사용합니다.
코덱 비교: 어떤 상황에서 뭘 사용할까
| 코덱 | 압축 | 기기 지원 | 사용 사례 | 비트레이트 (1080p) |
|---|---|---|---|---|
| H.264 | 표준 | 우수 (98%+) | 웹, 클라이언트 배송, 아카이브 | 5–12 Mbps |
| H.265 | 50% 더 나음 | 좋음 (85%) | 포트폴리오, 내부 저장소, 4K | 2.5–6 Mbps |
| AV1 | H.265 와 비슷 | 급증 중 (60%) | YouTube, 미래 보장 | 1.5–4 Mbps |
| ProRes 422 HQ | 큼 | 편집 시스템 | 중간/후반 작업 | 80–150 Mbps |
배송 상황별로 코덱 선택하기
클라이언트 배송 & 웹: H.264 를 기본으로 합니다. 클라이언트는 우리가 어떤 코덱을 사용했는지 묻지 않습니다. 재생되는지 묻습니다. H.264 는 어디서나 재생됩니다. 1080p 에서는 8–10 Mbps 로, 4K 에서는 15–20 Mbps 로 인코딩하고, 콘텐츠 복잡도(모션, 파티클 효과, 세밀한 디테일)에 따라 조정합니다.
포트폴리오 & 자체 홍보: 우리 대상층이 현대적 기기를 사용하면(디자인/크리에이티브 포트폴리오의 경우 가능성이 높습니다) H.265 를 씁니다. 시각적 품질 손실 없이 저장소 40–50% 를 절약합니다. 배포가 불명확하면 H.264 를 고수합니다.
아카이브 & 렌더팜 출력: H.265 나 ProRes 를 씁니다. 렌더링을 장기 저장할 때, 압축이 중요합니다. H.265 는 효율적인 아카이브를 제공합니다. ProRes 는 콘텐츠가 후반 작업에 사용될 경우 편집 친화적인 중간 파일을 제공합니다.
YouTube & 스트리밍 플랫폼: 최대 도달을 위해 H.264 를 씁니다. YouTube 는 H.265 와 AV1 을 받지만, 우리는 중요한 포트폴리오 콘텐츠를 H.264 와 함께 AV1 로도 인코딩하기 시작했습니다. 인코딩이 완료되면 최소 오버헤드로 미래를 보장하는 것입니다.
After Effects & Media Encoder 에서 동영상 내보내기
After Effects CC 2014+ 에는 직접 동영상 내보내기가 포함되어 있지 않습니다. 대신 우리는 별도의 응용 프로그램인 Adobe Media Encoder 를 사용합니다. After Effects, Premiere Pro, 독립형 프로젝트에 대한 인코딩 작업을 처리합니다.
워크플로우: After Effects → Media Encoder 에 큐로 추가 → Media Encoder 가 인코딩 설정 적용 → 인코딩된 동영상 파일.
After Effects 를 열고, 타임라인에서 컴포지션을 우클릭한 다음 "Add to Adobe Media Encoder Queue" 를 선택합니다. Media Encoder 가 자동으로 시작됩니다(이미 실행 중인 경우 열립니다). Media Encoder 에서, 큐의 컴포지션을 선택하고 "Format" 옆의 프리셋 드롭다운을 클릭합니다.
Adobe 는 H.264("High Quality 1080p" 또는 유사)와 ProRes 에 대한 프리셋을 제공합니다. 이 프리셋들은 안전한 기본값이지만, 보통 우리는 커스터마이징합니다:
H.264 웹 배송용 (1080p):
- 포맷: H.264
- 프리셋: 커스텀
- 비트레이트: 10 Mbps (가변)
- 프레임 레이트: 컴포지션과 맞춥니다(보통 24p 나 30p)
- 키프레임 간격: 2초마다 (60fps 에서 120프레임)
H.265 포트폴리오용 (1080p):
- 포맷: HEVC (H.265)
- 비트레이트: 5 Mbps 가변
- 프로필: Main
- 프레임 레이트: 소스와 맞춥니다
- 키프레임 간격: 2초마다
오른쪽 패널에서 "Export Settings" 를 클릭해서 비트레이트, 프레임 레이트, 기타 파라미터를 커스터마이징합니다. 비트레이트를 항상 "Variable" (VBR)로 설정합니다. 상수가 아니라. 가변 비트레이트는 복잡한 장면에 더 많은 비트를 할당하고 단순한 장면에는 적게 할당해서, 동일한 평균 비트레이트에서 인지된 품질을 개선합니다.
Media Encoder 는 여러 컴포지션을 큐에 넣습니다. 우리는 종종 전체 프로젝트의 모든 자산을 렌더링하고, 인코딩 작업을 밤새 설정한 다음, 다음 아침에 출력을 검토합니다. 이건 우리 팜의 기본 워크플로우 중 하나입니다: 모든 클라이언트 배송물을 After Effects 에서 동시에 렌더링하고, 모두 Media Encoder 에 큐로 넣은 다음, 떠나가 있으면 됩니다.
Blender 에서 이미지 시퀀스 인코딩하기
Blender 렌더링은 보통 동영상 파일이 아닌 이미지 시퀀스(EXR, OpenEXR, PNG 프레임)로 출력됩니다. Blender 에는 동영상 내보내기 옵션이 있지만 제한적입니다. 실제 강점은 Blender 의 컴포지팅이나 외부 인코딩 도구에서 나옵니다.
Blender 내에서: 출력 속성에서 이미지 포맷을 설정합니다(최대 품질과 동적 범위를 위해 EXR). 시퀀스를 렌더링합니다. 그런 다음 VSE(Video Sequence Editor)에서 이미지 시퀀스를 스트립으로 가져옵니다. 필요하면 컬러 보정이나 효과를 적용하고, VSE 에서 직접 H.264 나 다른 포맷으로 내보냅니다.
Blender VSE 내보내기 설정:
- Render → Output Format 으로 이동
- 코덱: H.264 (FFmpeg 가 설치된 경우 FFmpeg 코덱)
- 비트레이트: 1080p 에서 8000–15000 kbps
- 컨테이너: MP4 나 Matroska (MKV)
- 프리셋: 느린 인코딩 = 더 나은 품질 (CPU 시간과 파일 크기 절충)
전문적인 렌더팜 작업의 경우, 우리는 보통 Blender 에서 인코딩하지 않습니다. EXR 시퀀스를 내보내고 FFmpeg 나 Media Encoder 로 외부에서 인코딩합니다. 여기서 우리는 더 세밀한 제어를 할 수 있거든요.
FFmpeg 를 이용한 배치 인코딩
FFmpeg 는 우리 자동 인코딩 파이프라인의 중추입니다. 커맨드라인 기반이고, 무료이며, 우리가 필요로 하는 거의 모든 코덱 조합을 처리합니다. 수백 개의 쇼트를 처리하는 렌더팜의 경우, FFmpeg 스크립트는 필수적입니다.
이미지 시퀀스에서 기본 H.264 인코딩:
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -crf 18 -preset slow output.mp4
이 커맨드는 번호가 매겨진 프레임 시퀀스(frame_0001.exr, frame_0002.exr 등)를 가져옵니다. 24fps 에서 H.264 로 인코딩하고, 품질 레벨 18(낮을수록 더 나음, 0–51 척도)을 사용합니다. 느린 인코딩을 사용합니다(더 많은 압축). 출력은 MP4 파일입니다.
H.265 인코딩 (더 높은 압축):
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx265 -crf 20 -preset slow output.mp4
CRF(Constant Rate Factor)는 품질 척도입니다. H.264 의 경우, CRF 18–22 는 방송 품질을 제공합니다. H.265 의 경우, 유사한 인지된 품질에는 CRF 20–26 을 사용합니다(H.265 가 더 효율적이라서, 같은 CRF 값은 약간 더 나쁜 모습입니다).
AV1 인코딩 (느리지만 미래 보장):
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libaom-av1 -crf 30 -preset 4 output.mp4
AV1 CRF 값은 0–63 을 실행합니다(높을수록 낮은 품질). CRF 28–35 는 품질 작업의 전형입니다. 프리셋 0–8 은 인코딩 속도를 제어합니다. 프리셋 4 는 품질과 인코딩 시간 사이의 합리적인 균형입니다.
명시적 비트레이트로 인코딩 (CRF 대신):
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -b:v 10M output.mp4
-b:v 10M 플래그는 비트레이트를 10 Mbps 로 설정합니다. 엄격한 파일 크기 요구 사항이 있거나 클라이언트가 비트레이트 목표를 지정할 때 유용합니다.
FFmpeg 는 시퀀스가 아닌 동영상 파일에서도 읽을 수 있습니다. 기존 H.264 파일을 H.265 로 트랜스코드하려면:
ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow output.mp4
다양한 목적의 비트레이트 및 품질 설정
비트레이트는 초당 인코딩된 데이터의 양으로, 초당 킬로비트(kbps) 또는 메가비트(Mbps)로 측정합니다. 더 높은 비트레이트 = 더 큰 파일이지만 더 나은 품질입니다. 우리 팜은 콘텐츠 유형에 따라 비트레이트를 설정합니다:
1080p H.264 배송 비트레이트:
- 최소 품질 (소셜 미디어, 미리보기): 3–5 Mbps
- 표준 품질 (웹, 포트폴리오): 8–10 Mbps
- 고품질 (방송, 아카이브): 12–15 Mbps
4K H.264 배송 비트레이트:
- 표준: 25–30 Mbps
- 고품질: 35–50 Mbps
H.265 비트레이트 (동등한 품질에 대해 ~50% 감소):
- 1080p 표준: 4–5 Mbps
- 1080p 고품질: 6–8 Mbps
- 4K 표준: 12–15 Mbps
- 4K 고품질: 18–25 Mbps
불명확할 때, 우리는 여러 비트레이트에서 10초 테스트 클립을 인코딩합니다. 실제 재생 기기에서 비교하고, 품질이 시각적으로 수용 가능한 가장 낮은 비트레이트를 선택합니다. 이건 추측하는 것보다 빠르고, 각 클라이언트의 기대치에 대한 설정을 보정하는 데 도움이 됩니다.
렌더팜 출력 처리하기: 시퀀스에서 동영상으로
우리 팜은 매일 수천 개의 프레임을 렌더링합니다. 파이프라인은: 렌더링 엔진 → 이미지 시퀀스(EXR) → 분산 저장소 → 배치 인코딩 → 최종 배송물입니다.
각 렌더 작업은 번호가 매겨진 프레임 시퀀스를 출력합니다: render_shot_001_0001.exr, render_shot_001_0002.exr 등등. 그런 다음 우리는 이 시퀀스들을 H.264, H.265, ProRes 파일로 변환하는 인코딩 작업을 실행합니다. 효율을 위해, 우리는 팜 노드 전체에서 여러 쇼트를 병렬로 인코딩합니다.
일반적인 팜 인코딩 스크립트:
#!/bin/bash
for shot in /farm/renders/shot_*/; do
shotname=$(basename "$shot")
ffmpeg -framerate 24 \
-i "$shot/frame_%04d.exr" \
-c:v libx264 -crf 18 -preset slow \
"/deliverables/${shotname}_final.mp4" &
done
wait
이건 모든 쇼트 디렉토리를 반복합니다. 각각을 인코딩하고, 병렬로 실행합니다(각 ffmpeg 라인 끝의 &는 배경으로 보냅니다). wait 커맨드는 스크립트가 모든 인코딩 작업이 완료되기를 기다립니다.
대규모 작업의 경우, 우리는 가능할 때 하드웨어 가속(NVIDIA NVENC 나 AMD VCE)과 함께 FFmpeg 를 사용합니다. 인코딩 시간을 급격히 줄입니다. 하드웨어 인코더는 압축 효율을 위해 일부 속도를 절충하지만, 수백 개의 쇼트를 처리하는 팜에서는 시간 절약이 절충을 정당화합니다.
실전 인코딩 설정 요약
새로운 프로젝트에 대한 인코딩을 설정할 때:
- 배송 제약 확인: 클라이언트가 코덱을 지정합니까? 어떤 기기에서 재생될 것입니까? 파일 크기가 중요합니까?
- 코덱 선택: 최대 호환성을 위해 H.264, 효율을 위해 H.265, 미래 보장을 위해 AV1.
- 품질 레벨 설정: 인지된 품질에는 CRF 를 사용합니다. 파일 크기 목표에는 비트레이트를 사용합니다.
- 재생 하드웨어에서 테스트: 항상 짧은 테스트 시퀀스를 인코딩하고 실제 목표 기기에서 재생합니다.
- 설정 문서화: ffmpeg 커맨드나 Media Encoder 프리셋을 저장해서 재사용할 수 있게 합니다. 프로젝트 간 일관성이 중요합니다.
1080p H.264 웹 배송의 경우, 우리는 CRF 18–20 또는 8–10 Mbps 가변 비트레이트로 기본값을 설정합니다. 4K 의 경우, 우리는 35–40 Mbps 를 사용합니다. 이 설정들은 일관되게 클라이언트가 재인코딩을 요청하지 않는 파일을 생성합니다.
FAQ
아카이브에는 H.264 나 H.265 를 사용해야 합니까?
H.265 를 사용합니다. 아카이브는 장기 저장소 효율성에 관한 것입니다. H.265 는 동등한 품질에서 절반의 공간을 사용합니다. 현대적 시스템 전체에서 지원이 안정적입니다. 콘텐츠가 나중에 편집될 수도 있다면, ProRes 대신 고려해 봅니다. 후반 작업 워크플로우를 위해 설계되었거든요.
After Effects 에서 직접 H.265 로 인코딩할 수 있습니까?
기본적으로 아닙니다. After Effects 는 H.265 내보내기를 포함하지 않습니다. Adobe Media Encoder 는 시스템에 올바른 코덱이 설치된 경우 HEVC 를 지원합니다. HEVC 가 Media Encoder 에서 사용 가능하지 않으면, ProRes 로 인코딩하고 FFmpeg 를 사용해서 ProRes 를 H.265 로 트랜스코드합니다.
CRF 와 비트레이트의 차이가 무엇입니까?
CRF(Constant Rate Factor)는 인지된 품질을 목표로 합니다. 인코더는 장면 복잡도에 따라 비트레이트를 자동으로 조정합니다. 비트레이트는 고정입니다. 인코더는 장면이 복잡한지 간단한지에 관계없이 동일한 데이터 양을 할당합니다. 품질 작업에는 CRF 를 사용합니다. 엄격한 파일 크기 요구 사항이 있을 때는 비트레이트를 사용합니다.
AV1 인코딩이 왜 그렇게 느립니까?
AV1 은 H.264 나 H.265 보다 더 나은 압축을 달성하는 더 복잡한 알고리즘을 사용합니다. 더 많은 압축은 더 많은 계산을 의미합니다. 현대적 CPU 와 GPU 는 AV1 인코딩이 더 빨라지고 있습니다. 하지만 H.264 에 비해 여전히 CPU 집약적입니다. 대용량 렌더팜 작업의 경우, 우리는 예산이 허락하면 전담 노드에서 AV1 인코딩을 실행합니다. 또는 속도 대비 압축 비율이 더 나은 H.265 를 고수합니다.
Blender 렌더링을 MP4 나 MOV 로 인코딩해야 합니까?
MP4 와 MOV 는 컨테이너(파일 포맷)입니다. 내부의 코덱은 같을 수 있습니다(H.264, H.265 등). MP4 는 더 광범위한 호환성을 갖춥니다. MOV 는 역사적으로 Final Cut Pro 와 일부 Apple 워크플로우에서 선호됩니다. 대부분의 배송물에서 MP4 가 더 안전합니다. 클라이언트가 지정하면, 그들의 포맷을 사용합니다. 아니면 MP4 가 우리 기본값입니다.
관련 읽기: 렌더팜 워크플로우 최적화에 대해 더 알아보려면, 우리 complete render farm guide 를 확인해 봅니다. 정지 이미지와 시퀀스를 내보낼 경우, managing output formats for 3D renders 에 대한 우리 기사를 확인해 봅니다.
외부 리소스: 자세한 FFmpeg 코덱 문서는 FFmpeg H.264 Encoding Guide 와 AV1 Codec Specification 을 방문해 봅니다. Adobe 의 Media Encoder documentation 는 내보내기 프리셋과 커스텀 구성을 다루고 있습니다.



