Skip to main content
Video Encoding Guide: H.264, H.265, and AV1 for 3D Artists

Video Encoding Guide: H.264, H.265, and AV1 for 3D Artists

ByThierry Marc
Published 2020.03.0411 min read

When we render 3D assets in After Effects, Blender, or Cinema 4D, we're working with either video files or image sequences. The final step—encoding those renders into a deliverable format—often determines whether clients will actually use our work and whether it'll stream smoothly across platforms. After Effects CC 2014+ removed direct video exporters, which forced many artists to learn encoding workflows in tools like Adobe Media Encoder or FFmpeg. Today, we're facing more codec choices than ever: H.264 remains the industry standard, H.265 offers better compression, and AV1 is emerging as the future-proof option. In this guide, we'll walk through the practical encoding decisions we make at our farm, from understanding codec differences to configuring render outputs for seamless export.

Understanding Video Codecs: What We Actually Need

A codec is a compression algorithm. It defines how video data gets squeezed into smaller files without (ideally) losing visual quality that matters for our work. The three codecs dominating 3D artist workflows are H.264, H.265, and AV1. ProRes occupies a different niche—it's designed for editing and post-production, not delivery, but we'll cover it since render farm outputs sometimes use it as an intermediate format.

H.264 (MPEG-4 AVC): Released in 2003, H.264 is still the most widely supported codec across devices, platforms, and streaming services. Nearly every phone, browser, and media player understands H.264. For client deliverables where we have no control over playback environment, H.264 is the safe choice. The trade-off: it's not the most efficient. A 4K H.264 file at broadcast quality is larger than the same content in H.265.

H.265 (HEVC): The newer standard from 2013 offers approximately 50% better compression than H.264 at equivalent visual quality. For archival, portfolio work, and internal storage, H.265 is compelling—we save significant hard drive space. However, H.265 patent licensing is more complex, and some devices (particularly older hardware and certain browsers) don't support it natively.

AV1: Developed by the Alliance for Open Media, AV1 is royalty-free and delivers compression between H.265 and H.264 depending on bitrate. It's gaining adoption on YouTube and streaming platforms, but encoding is CPU-intensive and playback support is still rolling out on consumer devices. For future-proofing content, AV1 is worth learning.

ProRes: Not a delivery codec, but a professional intermediate format. ProRes files are larger than H.264 or H.265, but they're designed for fast editing and color grading. We use ProRes when our output is heading into a post-production pipeline, not directly to clients.

Codec Comparison: When We Use What

CodecCompressionDevice SupportUse CaseBitrate (1080p)
H.264StandardExcellent (98%+)Web, client delivery, archives5–12 Mbps
H.26550% betterGood (85%)Portfolio, internal storage, 4K2.5–6 Mbps
AV1Similar to H.265Emerging (60%)YouTube, future-proofing1.5–4 Mbps
ProRes 422 HQLargeEditing systemsIntermediate/post-production80–150 Mbps

Choosing Your Codec by Delivery Context

Client Delivery & Web: Default to H.264. Clients don't ask what codec we used—they ask if it plays. H.264 plays everywhere. We encode at 8–10 Mbps for 1080p, 15–20 Mbps for 4K, adjusting based on content complexity (motion, particle effects, fine detail).

Portfolio & Self-Promotion: H.265 if our audience uses modern devices (likely for design/creative portfolios). We save 40–50% storage without visible quality loss. If distribution is uncertain, stick with H.264.

Archival & Render Farm Output: H.265 or ProRes. When we store renders long-term, compression matters. H.265 gives us efficient archival; ProRes gives us editing-friendly intermediate files if the content will be used in post.

YouTube & Streaming Platforms: H.264 for maximum reach, though YouTube accepts H.265 and AV1. We've started encoding critical portfolio pieces in AV1 alongside H.264—it's future-proofing with minimal overhead once encoding is done.

Exporting Video from After Effects & Media Encoder

After Effects CC 2014+ doesn't include direct video exporters. Instead, we use Adobe Media Encoder as a separate application, which handles encoding tasks for After Effects, Premiere Pro, and standalone projects.

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

Open After Effects, right-click your composition in the timeline, and select "Add to Adobe Media Encoder Queue." Media Encoder launches automatically (or opens if already running). In Media Encoder, select your composition in the queue and click the preset dropdown next to "Format."

Adobe ships presets for H.264 (called "High Quality 1080p" or similar) and ProRes. These presets are safe defaults, but we usually customize them:

For H.264 Web Delivery (1080p):

  • Format: H.264
  • Preset: Custom
  • Bitrate: 10 Mbps (variable)
  • Frame rate: Match composition (typically 24p or 30p)
  • Keyframe interval: Every 2 seconds (120 frames at 60fps)

For H.265 Portfolio (1080p):

  • Format: HEVC (H.265)
  • Bitrate: 5 Mbps variable
  • Profile: Main
  • Frame rate: Match source
  • Keyframe interval: Every 2 seconds

In the right panel, click "Export Settings" to customize bitrate, frame rate, and other parameters. Always set bitrate to "Variable" (VBR) rather than constant—variable bitrate allocates more bits to complex scenes and fewer to simple ones, improving perceived quality at the same average bitrate.

Media Encoder queues multiple compositions. We often render an entire project's worth of assets, set encoding jobs overnight, and review the output the next morning. This is one of our farm's staple workflows: render all client deliverables simultaneously in After Effects, queue them all in Media Encoder, and walk away.

Encoding Image Sequences from Blender

Blender renders typically output as image sequences (EXR, OpenEXR, or PNG frames) rather than video files. Blender does have video export options, but they're limited—the real power comes from Blender's compositing or external encoding tools.

Within Blender: In the Output properties, set your image format (EXR for maximum quality and dynamic range). Render your sequence. Then, in the VSE (Video Sequence Editor), import your image sequence as a strip, apply color correction or effects if needed, and export as H.264 or other formats directly from the VSE.

Blender's VSE Export Settings:

  • Go to Render → Output Format
  • Codec: H.264 (or FFmpeg codecs if FFmpeg is installed)
  • Bitrate: 8000–15000 kbps for 1080p
  • Container: MP4 or Matroska (MKV)
  • Preset: Slower encoding = better quality (trade CPU time for file size)

For professional render farm work, we usually don't encode in Blender—we export the EXR sequence and encode externally with FFmpeg or Media Encoder, where we have finer control.

Batch Encoding with FFmpeg

FFmpeg is the backbone of our automated encoding pipelines. It's command-line based, free, and handles nearly every codec combination we might need. For render farms processing hundreds of shots, FFmpeg scripts are indispensable.

Basic H.264 encoding from an image sequence:

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

This command takes a numbered frame sequence (frame_0001.exr, frame_0002.exr, etc.), encodes at 24fps with H.264, quality level 18 (lower = better, 0–51 scale), and uses slow encoding (more compression). The output is an MP4 file.

H.265 encoding (higher compression):

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

CRF (Constant Rate Factor) is a quality scale. For H.264, CRF 18–22 gives broadcast quality. For H.265, use CRF 20–26 for similar perceived quality (H.265 is more efficient, so the same CRF value looks slightly worse).

AV1 encoding (slower but future-proof):

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

AV1 CRF values run 0–63 (higher = lower quality). CRF 28–35 is typical for quality work. Presets 0–8 control encoding speed; preset 4 is a reasonable balance between quality and encoding time.

Encoding with explicit bitrate (instead of CRF):

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

The -b:v 10M flag sets bitrate to 10 Mbps. This is useful when you have strict file size requirements or when working with clients who specify bitrate targets.

FFmpeg can also read from video files, not just sequences. To transcode an existing H.264 file to H.265:

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

Bitrate and Quality Settings for Different Purposes

Bitrate is the amount of data encoded per second, measured in kilobits per second (kbps) or megabits per second (Mbps). Higher bitrate = larger files but better quality. Our farm sets bitrate based on content type:

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

When in doubt, we encode a 10-second test clip at multiple bitrates, compare them on the actual playback device, and choose the lowest bitrate where quality is visually acceptable. This is faster than guessing and helps us calibrate settings for each client's expectations.

Handling Render Farm Output: From Sequences to Video

Our farm renders thousands of frames daily. The pipeline is: render engine → image sequence (EXR) → distributed storage → batch encoding → final deliverable.

Each render job outputs a numbered frame sequence: render_shot_001_0001.exr, render_shot_001_0002.exr, etc. We then run encoding jobs that convert these sequences into H.264, H.265, or ProRes files. For efficiency, we encode multiple shots in parallel across farm nodes.

A 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

This loops through all shot directories, encodes each one, and runs them in parallel (the & at the end of each ffmpeg line sends it to the background). The wait command ensures the script waits for all encoding jobs to complete before finishing.

For large-scale operations, we use FFmpeg with hardware acceleration (NVIDIA NVENC or AMD VCE) when available, which drastically reduces encoding time. Hardware encoders trade some compression efficiency for speed, but on a farm processing hundreds of shots, the time savings justify the trade-off.

Practical Encoding Settings Summary

When we're setting up encoding for a new project:

  1. Confirm delivery constraints: Does the client specify codec? What devices will play it? Is file size a concern?
  2. Choose your codec: H.264 for maximum compatibility, H.265 for efficiency, AV1 for future-proofing.
  3. Set quality level: Use CRF for perceptual quality, bitrate for file size targets.
  4. Test on playback hardware: Always encode a short test sequence and play it on the actual target device.
  5. Document your settings: Save your ffmpeg commands or Media Encoder presets for reuse. Consistency across projects matters.

For 1080p H.264 web delivery, we default to CRF 18–20 or 8–10 Mbps variable bitrate. For 4K, we use 35–40 Mbps. These settings consistently produce files that clients accept without requesting re-encodes.

FAQ

Q: Should I use H.264 or H.265 for archival? A: H.265. Archival is about long-term storage efficiency. H.265 uses half the space at equivalent quality, and support is stable across modern systems. If the content might be edited later, consider ProRes instead—it's designed for post-production workflows.

Q: Can I encode in H.265 directly from After Effects? A: Not natively. After Effects doesn't include H.265 export. Adobe Media Encoder does support HEVC if you have the right codec installed on your system. If HEVC isn't available in Media Encoder, encode to ProRes and use FFmpeg to transcode ProRes to H.265 afterward.

Q: What's the difference between CRF and bitrate? A: CRF (Constant Rate Factor) targets perceived quality—the encoder adjusts bitrate automatically based on scene complexity. Bitrate is fixed—the encoder allocates the same amount of data regardless of whether the scene is complex or simple. Use CRF for quality work; use bitrate when you have strict file size requirements.

Q: Why is AV1 encoding so slow? A: AV1 uses more complex algorithms to achieve better compression than H.264 or H.265. More compression means more calculation. Modern CPUs and GPUs are getting faster at AV1 encoding, but it's still CPU-intensive compared to H.264. For high-volume render farm work, we run AV1 encoding on dedicated nodes when budget allows, or we stick with H.265 for better speed-to-compression ratio.

Q: Should I encode my Blender renders as MP4 or MOV? A: MP4 and MOV are containers (file formats). The codec inside can be the same (H.264, H.265, etc.). MP4 has broader compatibility; MOV is historically preferred in Final Cut Pro and some Apple workflows. For most deliverables, MP4 is safer. If the client specifies, use their format; otherwise, MP4 is our default.


Related Reading: For more on optimizing render farm workflows, explore our complete render farm guide. If you're exporting stills and sequences, check our article on managing output formats for 3D renders.

External Resources: For detailed FFmpeg codec documentation, visit the FFmpeg H.264 Encoding Guide and the AV1 Codec Specification. Adobe's Media Encoder documentation covers export presets and custom configurations.

About Thierry Marc

3D Rendering Expert with over 10 years of experience in the industry. Specialized in Maya, Arnold, and high-end technical workflows for film and advertising.