10 · Encode

Encode and ship

After all 261 shots are processed, they're stitched together and encoded into shareable video.

Produces: viewing + sharing tiers Tools: SVT-AV1 · x264 · 10-bit encode.py

A lossless reassembly of a 16-minute HD reel would need hundreds of gigabytes, so --clean stitches the per-shot finals directly into the compressed outputs (via FFmpeg's concat demuxer), no giant intermediate master ever touches disk.

Everything encodes at 10-bit, even though the source is humble 8mm. Why? Denoising and grading create smooth gradients (skies, walls, out-of-focus backgrounds), and 8-bit's 256 levels aren't enough to render them without visible banding (stair-steps). 10-bit gives 1024 levels.

A gentle gradient like a graded sky. At 8-bit the few available levels across this subtle range show as visible bands; at 10-bit the same range has 4× the steps and stays smooth.

Two deliverables

Viewing tier

AV1 (SVT-AV1), 10-bit, smallest file, best quality, modern. The one to watch.

Sharing tier

H.264 (x264), 10-bit, +faststart, universally playable anywhere, ideal for uploading.

That completes the pipeline: each stage in a fixed order, correcting one defect of a 40-year-old home movie and turning a flickering, scratched, faded reel back into a clean, watchable video.

Yossi's encode: av1_crf: 22, x264_crf: 18, yuv420p10le (10-bit), baked grain only.