Skip to main content
Hướng Dẫn Mã Hóa Video: H.264, H.265 và AV1 cho Các Nghệ Sĩ 3D

Hướng Dẫn Mã Hóa Video: H.264, H.265 và AV1 cho Các Nghệ Sĩ 3D

BySuperRenders Farm Team
Published 21 thg 3 năm 202614 min read
Cách chọn video encoding cho renders 3D — H.264, H.265, AV1 và ProRes với các cấu hình thực tế.

Khi chúng tôi render các tài sản 3D trong After Effects, Blender hoặc Cinema 4D, chúng tôi làm việc với các file video hoặc dãy ảnh (image sequence). Bước cuối cùng—encoding (mã hóa) những render đó thành định dạng có thể gửi cho client—thường quyết định liệu client có thực sự sử dụng công việc của chúng tôi hay không và liệu nó có stream mượt mà trên các nền tảng hay không. After Effects CC 2014+ đã loại bỏ các trình xuất video trực tiếp, điều này buộc nhiều nghệ sĩ phải học workflows (quy trình) encoding trong các công cụ như Adobe Media Encoder hoặc FFmpeg. Ngày nay, chúng ta đối mặt với nhiều lựa chọn codec hơn bao giờ hết: H.264 vẫn là chuẩn của ngành, H.265 cung cấp nén tốt hơn, và AV1 đang nổi lên như là tùy chọn chứng minh theo thời gian. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua các quyết định encoding thực tế mà chúng tôi đưa ra tại render farm (hệ thống máy tính kết xuất), từ việc hiểu các khác biệt giữa các codec đến cấu hình render outputs để export liền mạch.

Hiểu về Video Codecs: Điều Chúng Tôi Thực Sự Cần

Codec là một thuật toán nén. Nó định nghĩa cách dữ liệu video được "nén" thành các file nhỏ hơn mà không (lý tưởng nhất) mất đi chất lượng hình ảnh quan trọng đối với công việc của chúng tôi. Ba codec chiếm lĩnh các workflows của 3D artists là H.264, H.265 và AV1. ProRes chiếm một vị trí khác—nó được thiết kế cho chỉnh sửa và post-production, không phải delivery, nhưng chúng tôi sẽ đề cập vì outputs từ render farm đôi khi sử dụng nó như một định dạng trung gian.

H.264 (MPEG-4 AVC): Được phát hành năm 2003, H.264 vẫn là codec được hỗ trợ rộng rãi nhất trên các thiết bị, nền tảng và dịch vụ streaming. Hầu như mọi điện thoại, trình duyệt và trình phát media đều hiểu H.264. Đối với các deliverables (sản phẩm gửi) cho client mà chúng tôi không có quyền kiểm soát môi trường playback, H.264 là lựa chọn an toàn. Sự đánh đổi: nó không phải là codec hiệu quả nhất. Một file H.264 4K ở chất lượng broadcast lớn hơn nội dung tương tự trong H.265.

H.265 (HEVC): Tiêu chuẩn mới hơn từ năm 2013 cung cấp khoảng 50% nén tốt hơn so với H.264 ở chất lượng hình ảnh tương đương. Đối với công việc lưu trữ, portfolio và lưu trữ nội bộ, H.265 rất hấp dẫn—chúng tôi tiết kiệm không gian ổ cứng đáng kể. Tuy nhiên, cấp phép bằng sáng chế H.265 phức tạp hơn, và một số thiết bị (đặc biệt là hardware cũ và một số trình duyệt nhất định) không hỗ trợ nó một cách native.

AV1: Được phát triển bởi Alliance for Open Media, AV1 không có royalty và cung cấp nén ở giữa H.265 và H.264 tùy thuộc vào bitrate. Nó đang được áp dụng trên YouTube và các nền tảng streaming, nhưng encoding tiêu tốn CPU và hỗ trợ playback vẫn đang triển khai trên các thiết bị người dùng. Để chứng minh nội dung theo thời gian, AV1 đáng để học tập.

ProRes: Không phải một delivery codec, mà một định dạng trung gian chuyên nghiệp. Các file ProRes lớn hơn H.264 hoặc H.265, nhưng chúng được thiết kế cho editing nhanh chóng và color grading. Chúng tôi sử dụng ProRes khi output đang hướng tới một quy trình post-production, không phải trực tiếp cho clients.

So Sánh Codec: Khi Nào Chúng Tôi Sử dụng Cái Gì

CodecNénHỗ trợ Thiết bịTrường hợp Sử dụngBitrate (1080p)
H.264Tiêu chuẩnXuất sắc (98%+)Web, client delivery, archives5–12 Mbps
H.26550% tốt hơnTốt (85%)Portfolio, internal storage, 4K2,5–6 Mbps
AV1Tương tự H.265Đang nổi lên (60%)YouTube, future-proofing1,5–4 Mbps
ProRes 422 HQLớnEditing systemsIntermediate/post-production80–150 Mbps

Lựa Chọn Codec Của Bạn Theo Delivery Context

Client Delivery & Web: Mặc định là H.264. Clients không hỏi chúng tôi sử dụng codec gì—họ hỏi liệu nó có phát được hay không. H.264 phát ở mọi nơi. Chúng tôi encoding ở 8–10 Mbps cho 1080p, 15–20 Mbps cho 4K, điều chỉnh dựa trên độ phức tạp của nội dung (chuyển động, particle effects, chi tiết tốt).

Portfolio & Self-Promotion: H.265 nếu audience của chúng tôi sử dụng thiết bị hiện đại (có khả năng cao đối với portfolios thiết kế/sáng tạo). Chúng tôi tiết kiệm 40–50% lưu trữ mà không mất chất lượng hình ảnh. Nếu distribution không chắc chắn, hãy dùng H.264.

Archival & Render Farm Output: H.265 hoặc ProRes. Khi chúng tôi lưu trữ renders lâu dài, việc nén là quan trọng. H.265 cho chúng tôi lưu trữ hiệu quả; ProRes cho chúng tôi các file trung gian thân thiện với editing nếu nội dung sẽ được sử dụng trong post.

YouTube & Streaming Platforms: H.264 để tiếp cận tối đa, mặc dù YouTube chấp nhận H.265 và AV1. Chúng tôi bắt đầu encoding những phần portfolio quan trọng trong AV1 cùng với H.264—đó là chứng minh theo thời gian với overhead tối thiểu khi encoding hoàn tất.

Export Video từ After Effects & Media Encoder

After Effects CC 2014+ không bao gồm các exporters video trực tiếp. Thay vào đó, chúng tôi sử dụng Adobe Media Encoder như một ứng dụng riêng biệt, xử lý các tác vụ encoding cho After Effects, Premiere Pro và các dự án độc lập.

Workflow: After Effects → Queue for Media Encoder → Media Encoder applies encoding settings → Encoded video file.

Mở After Effects, bấm chuột phải vào composition của bạn trong timeline, và chọn "Add to Adobe Media Encoder Queue." Media Encoder khởi động tự động (hoặc mở nếu đã chạy). Trong Media Encoder, chọn composition của bạn trong queue và bấm vào preset dropdown bên cạnh "Format."

Adobe cung cấp presets cho H.264 (gọi là "High Quality 1080p" hoặc tương tự) và ProRes. Các presets này là các default an toàn, nhưng chúng tôi thường tùy chỉnh chúng:

Cho H.264 Web Delivery (1080p):

  • Format: H.264
  • Preset: Custom
  • Bitrate: 10 Mbps (variable)
  • Frame rate: Match composition (thường là 24p hoặc 30p)
  • Keyframe interval: Mỗi 2 giây (120 frames ở 60fps)

Cho H.265 Portfolio (1080p):

  • Format: HEVC (H.265)
  • Bitrate: 5 Mbps variable
  • Profile: Main
  • Frame rate: Match source
  • Keyframe interval: Mỗi 2 giây

Trong panel bên phải, bấm "Export Settings" để tùy chỉnh bitrate, frame rate và các parameters khác. Luôn đặt bitrate thành "Variable" (VBR) thay vì constant—variable bitrate phân bổ nhiều bits hơn cho các cảnh phức tạp và ít hơn cho các cảnh đơn giản, cải thiện chất lượng cảm nhận ở cùng average bitrate.

Media Encoder queues nhiều compositions. Chúng tôi thường render toàn bộ tài sản của một dự án, đặt encoding jobs qua đêm, và xem lại output vào sáng hôm sau. Đây là một trong những workflows tiêu biểu của render farm: render tất cả deliverables cho clients đồng thời trong After Effects, queue chúng tất cả trong Media Encoder, và đi đi.

Encoding Image Sequences từ Blender

Blender thường render output dưới dạng image sequences (EXR, OpenEXR hoặc PNG frames) thay vì các file video. Blender có các tùy chọn export video, nhưng chúng có hạn—sức mạnh thực sự đến từ compositing của Blender hoặc công cụ encoding bên ngoài.

Trong Blender: Trong Output properties, đặt image format của bạn (EXR để tối đa hóa chất lượng và dynamic range). Render sequence của bạn. Sau đó, trong VSE (Video Sequence Editor), import image sequence của bạn như một strip, áp dụng color correction hoặc effects nếu cần thiết, và export như H.264 hoặc các định dạng khác trực tiếp từ VSE.

Blender's VSE Export Settings:

  • Đi tới Render → Output Format
  • Codec: H.264 (hoặc FFmpeg codecs nếu FFmpeg được cài đặt)
  • Bitrate: 8000–15000 kbps cho 1080p
  • Container: MP4 hoặc Matroska (MKV)
  • Preset: Slower encoding = better quality (trade CPU time for file size)

Đối với công việc render farm chuyên nghiệp, chúng tôi thường không encoding trong Blender—chúng tôi export EXR sequence và encoding bên ngoài với FFmpeg hoặc Media Encoder, nơi chúng tôi có quyền kiểm soát tốt hơn.

Batch Encoding với FFmpeg

FFmpeg là xương sống của các automated encoding pipelines của chúng tôi. Nó dựa trên command-line, miễn phí, và xử lý hầu như mọi tổ hợp codec mà chúng tôi có thể cần. Đối với render farms xử lý hàng trăm shots, FFmpeg scripts là không thể thiếu.

Encoding cơ bản H.264 từ một image sequence:

ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -crf 18 -preset slow output.mp4

Lệnh này lấy một numbered frame sequence (frame_0001.exr, frame_0002.exr, v.v.), encoding ở 24fps với H.264, quality level 18 (lower = better, 0–51 scale), và sử dụng slow encoding (more compression). Output là một MP4 file.

H.265 encoding (nén cao hơn):

ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx265 -crf 20 -preset slow output.mp4

CRF (Constant Rate Factor) là một quality scale. Đối với H.264, CRF 18–22 cung cấp chất lượng broadcast. Đối với H.265, sử dụng CRF 20–26 cho chất lượng cảm nhận tương tự (H.265 hiệu quả hơn, vì vậy cùng CRF value trông hơi kém).

AV1 encoding (chậm hơn nhưng future-proof):

ffmpeg -framerate 24 -i frame_%04d.exr -c:v libaom-av1 -crf 30 -preset 4 output.mp4

AV1 CRF values chạy 0–63 (higher = lower quality). CRF 28–35 là điển hình cho công việc chất lượng. Presets 0–8 kiểm soát encoding speed; preset 4 là một sự cân bằng hợp lý giữa chất lượng và encoding time.

Encoding với explicit bitrate (thay vì CRF):

ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -b:v 10M output.mp4

Flag -b:v 10M đặt bitrate thành 10 Mbps. Điều này hữu ích khi bạn có strict file size requirements hoặc khi làm việc với clients xác định targets bitrate.

FFmpeg cũng có thể đọc từ video files, không chỉ sequences. Để transcode một existing H.264 file thành H.265:

ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow output.mp4

Bitrate và Quality Settings cho Các Mục Đích Khác nhau

Bitrate là lượng dữ liệu được encoding mỗi giây, tính bằng kilobits mỗi giây (kbps) hoặc megabits mỗi giây (Mbps). Bitrate cao hơn = files lớn hơn nhưng chất lượng tốt hơn. Render farm của chúng tôi đặt bitrate dựa trên loại nội dung:

1080p H.264 Delivery Bitrates:

  • Minimal quality (social media, preview): 3–5 Mbps
  • Standard quality (web, portfolio): 8–10 Mbps
  • High quality (broadcast, archival): 12–15 Mbps

4K H.264 Delivery Bitrates:

  • Standard: 25–30 Mbps
  • High quality: 35–50 Mbps

H.265 Bitrates (reduce by ~50% for equivalent quality):

  • 1080p standard: 4–5 Mbps
  • 1080p high: 6–8 Mbps
  • 4K standard: 12–15 Mbps
  • 4K high: 18–25 Mbps

Khi không chắc chắn, chúng tôi encode một 10-second test clip ở multiple bitrates, so sánh chúng trên actual playback device, và chọn lowest bitrate nơi chất lượng hình ảnh chấp nhận được. Điều này nhanh hơn guessing và giúp chúng tôi calibrate settings cho mỗi expectation của clients.

Xử lý Render Farm Output: Từ Sequences đến Video

Render farm của chúng tôi render hàng ngàn frames hàng ngày. Pipeline là: render engine → image sequence (EXR) → distributed storage → batch encoding → final deliverable.

Mỗi render job outputs một numbered frame sequence: render_shot_001_0001.exr, render_shot_001_0002.exr, v.v. Chúng tôi sau đó chạy encoding jobs để chuyển đổi các sequences này thành H.264, H.265 hoặc ProRes files. Để hiệu quả, chúng tôi encode multiple shots song song trên farm nodes.

Một typical farm encoding script:

#!/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

Điều này lặp qua tất cả các shot directories, encode mỗi cái, và chạy chúng song song (dấu & ở cuối mỗi dòng ffmpeg gửi nó vào background). Lệnh wait đảm bảo script chờ tất cả encoding jobs hoàn tất trước khi kết thúc.

Đối với các hoạt động quy mô lớn, chúng tôi sử dụng FFmpeg với hardware acceleration (NVIDIA NVENC hoặc AMD VCE) khi có sẵn, điều này giảm drastically encoding time. Hardware encoders đánh đổi một số hiệu quả nén cho speed, nhưng trên một farm xử lý hàng trăm shots, tiết kiệm thời gian justify the trade-off.

Tóm Tắt Cài Đặt Encoding Thực Tế

Khi chúng tôi thiết lập encoding cho một dự án mới:

  1. Xác nhận delivery constraints: Client có xác định codec? Những thiết bị nào sẽ phát nó? File size có là vấn đề hay không?
  2. Chọn codec của bạn: H.264 để tương thích tối đa, H.265 để hiệu quả, AV1 để chứng minh theo thời gian.
  3. Đặt quality level: Sử dụng CRF cho chất lượng cảm nhận, bitrate cho file size targets.
  4. Test trên playback hardware: Luôn encode một short test sequence và phát nó trên actual target device.
  5. Document your settings: Lưu các ffmpeg commands hoặc Media Encoder presets của bạn để sử dụng lại. Consistency trên các dự án quan trọng.

Đối với 1080p H.264 web delivery, chúng tôi mặc định CRF 18–20 hoặc 8–10 Mbps variable bitrate. Đối với 4K, chúng tôi sử dụng 35–40 Mbps. Các settings này liên tục tạo ra các files mà clients chấp nhận mà không yêu cầu re-encodes.

FAQ

Tôi nên sử dụng H.264 hay H.265 cho lưu trữ?

H.265. Archival là về hiệu quả lưu trữ lâu dài. H.265 sử dụng nửa không gian ở chất lượng tương đương, và hỗ trợ ổn định trên các hệ thống hiện đại. Nếu nội dung có thể được chỉnh sửa sau này, hãy cân nhắc ProRes thay thế—nó được thiết kế cho post-production workflows.

Tôi có thể encoding H.265 trực tiếp từ After Effects không?

Không native. After Effects không bao gồm H.265 export. Adobe Media Encoder hỗ trợ HEVC nếu bạn có codec đúng được cài đặt trên hệ thống của mình. Nếu HEVC không có sẵn trong Media Encoder, encode thành ProRes và sử dụng FFmpeg để transcode ProRes thành H.265 sau đó.

Sự khác biệt giữa CRF và bitrate là gì?

CRF (Constant Rate Factor) nhắm mục tiêu chất lượng cảm nhận—encoder tự động điều chỉnh bitrate dựa trên độ phức tạp cảnh. Bitrate là fixed—encoder phân bổ cùng một lượng dữ liệu bất kể cảnh có phức tạp hay đơn giản. Sử dụng CRF cho công việc chất lượng; sử dụng bitrate khi bạn có strict file size requirements.

Tại sao AV1 encoding lại chậm vậy?

AV1 sử dụng các thuật toán phức tạp hơn để đạt được nén tốt hơn H.264 hoặc H.265. Nén nhiều hơn có nghĩa là tính toán nhiều hơn. CPUs và GPUs hiện đại đang nhanh hơn tại AV1 encoding, nhưng nó vẫn tiêu tốn CPU so với H.264. Đối với công việc render farm volume cao, chúng tôi chạy AV1 encoding trên dedicated nodes khi budget cho phép, hoặc chúng tôi bám dính H.265 để tỷ lệ tốt hơn giữa speed-to-compression.

Tôi có nên encode Blender renders của mình là MP4 hay MOV?

MP4 và MOV là containers (các định dạng file). Codec bên trong có thể giống nhau (H.264, H.265, v.v.). MP4 có tương thích rộng hơn; MOV được ưa thích theo lịch sử trong Final Cut Pro và một số workflows Apple. Đối với hầu hết deliverables, MP4 an toàn hơn. Nếu client xác định, sử dụng định dạng của họ; nếu không, MP4 là mặc định của chúng tôi.


Đọc Thêm: Để tìm hiểu thêm về tối ưu hóa render farm workflows, khám phá hướng dẫn render farm hoàn chỉnh của chúng tôi. Nếu bạn đang export stills và sequences, kiểm tra bài viết của chúng tôi về quản lý định dạng output cho 3D renders.

Tài Nguyên Bên Ngoài: Để tìm hiểu thêm chi tiết về FFmpeg codec documentation, truy cập FFmpeg H.264 Encoding GuideAV1 Codec Specification. Media Encoder documentation của Adobe bao gồm export presets và custom configurations.