> Canonical URL: https://codingcat.dev/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-2-tile-6x5

# Lesson 2: Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips | FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering | CodingCat.dev Course

[🧶 FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering](/course/ffmpeg-ai-video-contact-sheet-critics)Section 1.2 · Lesson 2 of 5[![](/logos/tags/ai-symbol-light.svg)![](/logos/tags/ai-symbol-dark.svg)AI & Agents](/topic/ai)[![](/logos/tags/oss-symbol-light.svg)![](/logos/tags/oss-symbol-dark.svg)Open Source](/topic/oss)[![](/logos/tags/ffmpeg-symbol-light.svg)![](/logos/tags/ffmpeg-symbol-dark.svg)FFmpeg](/topic/ffmpeg)[![](/logos/tags/video-symbol-light.svg)![](/logos/tags/video-symbol-dark.svg)Video](/topic/video)[← Prev Lesson](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-1-image2pipe)[Next Lesson →](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-3-360px-test)

# Lesson 2: Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips

![Lesson 2: Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips Architecture Diagram](https://cdn.sanity.io/images/hfh83o0w/production/ef8955c5f0232d30b2e7e91cddbf1d1a6453dafc-1376x768.png?w=1376&q=82&fit=max&auto=format)

## 1. The 15-Second Hook

Welcome to Lesson 2 of FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering on CodingCat.dev. Today we break down Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips and see how it powers our deterministic 3D AJ and code-rendered video pipeline.

## 2. Architecture Mental Model (Visual Diagram)

Look at the architecture diagram: on the left, vibe-prompted animations suffer from timer drift and unreviewed layout bugs. On the right, tile=6x5 and Visual Audit enforce a deterministic frame contract.

## 3. Show Me the Code (scripts/ffmpeg-critic-pipeline.sh)

Copied! 🐾📄 scripts/ffmpeg-critic-pipeline.shtypescript

```
# 1. Build 2fps 6-across Contact Sheet for Agent Critique
ffmpeg -y -i out/render.mp4 -vf "fps=2,scale=320:-1,tile=6x5" -frames:v 1 reviews/contact-sheet.png
# 2. Normalize Audio to -14 LUFS & Encode 1080p60 H.264 MP4
ffmpeg -y -i out/frames/%05d.png -i out/voice.wav -af "loudnorm=I=-14:TP=-1.5:LRA=11" -c:v libx264 -pix_fmt yuv420p out/final.mp4
```

In scripts/ffmpeg-critic-pipeline.sh, we wire up the production implementation so both our browser runtime and headless renderer stay 100 percent synchronized.

## 4. Production Trade-Off Matrix

DimensionDeterministic 2026 PatternLegacy Anti-PatternWhy It Matters in ProductionDeterminismPure function of time t via window.seek(t)Non-deterministic timers & Math.random()Any frame renders identically on demand.Visual PolishContact-sheet critique loop + W3C tokensFirst unreviewed render ships as finalEliminates overlapping text and dead beats.3D & Mascot RigUnified 57-path 2D SVG + Three.js 3D GLB AJStatic flat raster imagesInteractive orbital 3D + 120 BPM lip-sync.Production Cost$0 open-source local RTX 5090 pipeline$1,200+ agency fee or per-minute SaaS cliffScales across 95+ lessons with zero marginal cost.

When we compare this deterministic 2026 pattern against legacy workflows in our trade-off matrix, we get exact frame reproducibility, automated critique gates, and zero licensing cost.

## 5. Verdict & AJ Pro-Tip

> AJ Pro-Tip: Always verify frame 300 twice during your contact-sheet critique pass to confirm your tile=6x5 setup has zero non-deterministic state leaks.

Adopt tile=6x5 inside your studio folder today so every future launch film and 3D mascot animation builds on a reusable harness. Hit Subscribe and let's continue!

✏️ Visual Architecture Diagram

## how this course connects together.

Follow AJ from first principles to production-ready architecture.

Let’s build it!✏️ Visual Diagram: FFmpeg for AI Video Pipelines: Contact-Sheet Cri…✓ Good PatternVISUAL DIAGRAM[Diagram Walkthrough]Step-by-step diagram breakdown for FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering: Lesson 2: Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips: start with Core Architecture & Deterministic Implementation, implement FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering, and ship to production.AAA Contrast Verified

## related deep dives.

[View All&rarr;](/blog)[![Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp](https://cdn.sanity.io/images/hfh83o0w/production/c812b7d1a15241fc5c1e92181f8cede796659355-1376x768.png?w=1376&q=82&fit=max&auto=format)](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets)November 4, 2026[![](/logos/tags/oss-symbol-light.svg)![](/logos/tags/oss-symbol-dark.svg)Open Source](/topic/oss)[![](/logos/tags/ffmpeg-symbol-light.svg)![](/logos/tags/ffmpeg-symbol-dark.svg)FFmpeg](/topic/ffmpeg)

### [Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets)

Build the backbone of an autonomous video studio. Use yt-dlp and FFmpeg to extract reference visual grammars, normalize audio to -14 LUFS, generate 6-across critique contact sheets, and master 1080p60 MP4s.

[![Alex Patterson](https://cdn.sanity.io/media-libraries/mlttp0BZbCpV/images/a606dfaa381aab08ddbe16a33fe1d3e1fb37c927-400x400.jpg?w=96&h=96&q=82&fit=max&auto=format)Alex Patterson](/author/alex-patterson)[![Alex Patterson next to a dark-mode architecture diagram of 3D AJ and the 14 open-source video repositories](https://cdn.sanity.io/images/hfh83o0w/production/1a6c5bade322565ed55c3d0999dfe3c0332055c4-1376x768.png?w=1376&q=82&fit=max&auto=format)](/post/14-open-source-repos-code-driven-video-how-we-built-3d-aj)November 4, 2026[![](/logos/tags/ai-symbol-light.svg)![](/logos/tags/ai-symbol-dark.svg)AI & Agents](/topic/ai)[![](/logos/tags/video-symbol-light.svg)![](/logos/tags/video-symbol-dark.svg)Video](/topic/video)

### [The 14 Open-Source Repos Powering Code-Driven Video in 2026: How We Built 3D AJ the Cat](/post/14-open-source-repos-code-driven-video-how-we-built-3d-aj)

Why viral 'one-prompt' AI videos are actually 9,500-character production harnesses backed by deterministic frame functions, closed-form springs, and contact-sheet critique loops. Here is the full architectural breakdown of all 14 open-source repos and how we used them to build our interactive 3D AJ the Cat mascot and Course Factory.

[![Alex Patterson](https://cdn.sanity.io/media-libraries/mlttp0BZbCpV/images/a606dfaa381aab08ddbe16a33fe1d3e1fb37c927-400x400.jpg?w=96&h=96&q=82&fit=max&auto=format)Alex Patterson](/author/alex-patterson)[Course Outline](/course/ffmpeg-ai-video-contact-sheet-critics)

## FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering

2/51

### Core Architecture & Deterministic Implementation

- [1.1Lesson 1: Raw `image2pipe` Frame Streaming from Headless Chromium to FFmpeg](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-1-image2pipe)
- [1.2Lesson 2: Generating 6-Across Contact Sheets & 12-Frame Fast-Move Strips▶](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-2-tile-6x5)
- [1.3Lesson 3: The 360px Phone Readability Test & Frame-300 Determinism Hash Check](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-3-360px-test)
- [1.4Lesson 4: EBU R128 `-14 LUFS` Loudness Normalization & Synthesized SFX Mixing](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-4-loudnorm)
- [1.5Lesson 5: Multi-Aspect-Ratio Mastering & Loop-Point Seamless Verification](/course/ffmpeg-ai-video-contact-sheet-critics/lesson/ffmpeg-ai-video-contact-sheet-critics-lesson-5-loop-check)

@CodingCatDev on YouTube62.5K / 100K

Subscribe for new course lessons and architecture deep dives every week.

[Subscribe for New Lessons →](https://www.youtube.com/@codingcatdev?sub_confirmation=1)