# Notes About Screening

**Host:** [notes.addict.best](https://notes.addict.best/)  
**File:** `notes-about-screening.md`  
**Scope:** Screen capture quality, images→video, re-encode size math, browser publishing patterns, growth/viral mechanics, shot-list review notes.  
**Updated:** 2026-08-03

---

## Table of contents

1. [Mac screen recording (aliases & codecs)](#1-mac-screen-recording-aliases--codecs)
2. [H.264 vs H.265 for screen content](#2-h264-vs-h265-for-screen-content)
3. [CRF / quality settings (and videotoolbox reality)](#3-crf--quality-settings-and-videotoolbox-reality)
4. [Why re-encodes got tiny but still looked good](#4-why-re-encodes-got-tiny-but-still-looked-good)
5. [Images → video (OpenCV review + better practice)](#5-images--video-opencv-review--better-practice)
6. [Browser automation / no-API publishing (use carefully)](#6-browser-automation--no-api-publishing-use-carefully)
7. [Content & viral mechanics (retention math)](#7-content--viral-mechanics-retention-math)
8. [High-retention video structure](#8-high-retention-video-structure)
9. [Actions on media platforms (ops checklist)](#9-actions-on-media-platforms-ops-checklist)
10. [Platform playbooks from zero](#10-platform-playbooks-from-zero)
11. [Shot-list / AI production order review](#11-shot-list--ai-production-order-review)
12. [Quick reference tables](#12-quick-reference-tables)

---

## 1. Mac screen recording (aliases & codecs)

### Baseline: `rec-screen` (current default)

| Setting | Value | Notes |
|---------|--------|--------|
| Encoder | `h264_videotoolbox` (hardware) | Low CPU on Mac |
| Bitrate | **18 Mbps CBR** (`-b:v 18000k`) | Very good look; large files |
| Resolution | **Native display** (no scale) | Often **2560×1664** (or 2560×1600) on MacBook Air |
| Frame rate | **30 fps** | Stable for UI demos |
| Output | `screen_*.mp4` | Keep as archive / edit source |

**Quality take:** At 18 Mbps CBR, native res, quality is close to **visually lossless for screen content**. CBR still **wastes bits on static frames** → fat files.

### Added aliases (recommended daily drivers)

| Alias | Resolution | Codec | Quality mode | Output names |
|-------|------------|-------|--------------|--------------|
| `rec-screen` | Native (e.g. 2560×1664) | H.264 @ 18 Mbps CBR | Very good, large | `screen_*.mp4` |
| `rec-screen-1080` | **1920×1080** | **HEVC** `hevc_videotoolbox` | `-q:v 40` | `screen_1080_*.mp4` |
| `rec-screen-2k` | **2560×1440** | **HEVC** `hevc_videotoolbox` | `-q:v 35` (tighter) | `screen_2k_*.mp4` |

**When to use which**

- **Archive / master capture:** native `rec-screen` (or 2K HEVC if storage matters).
- **Screening / share / app demos:** `rec-screen-1080` (sharp enough, ~40%+ smaller than fat H.264).
- **Retina-ish but controlled:** `rec-screen-2k` with tighter `-q:v 35`.

---

## 2. H.264 vs H.265 for screen content

| Factor | H.264 | H.265 / HEVC |
|--------|-------|--------------|
| Screen (text, UI, sharp edges) | Good | **Better** — text stays crisp at lower bitrates |
| File size at same look | Larger | **~40–50% smaller** typical |
| Mac hardware encode | `h264_videotoolbox` | `hevc_videotoolbox` (also HW, low CPU) |
| Local macOS playback | Universal | Native |
| Older Windows / some browsers | Universal | May need HEVC extension / fail in browser |

**Rule of thumb**

- **Keep / edit yourself on Mac** → prefer **HEVC**.
- **Must play everywhere without codecs** → stick to **H.264** (or export a second H.264 deliverable).

---

## 3. CRF / quality settings (and videotoolbox reality)

### Software x264 / x265 (CRF)

| Use case | CRF | Meaning |
|----------|-----|---------|
| General video “safe” | **21** | Fine, often overkill for UI |
| Screen content safety margin | **23–25** | Still clean |
| Screen “visually lossless, small” | **~28 with HEVC** | Text stays crisp; smallest sensible files |
| Too aggressive | **28–32 H.264** | Risk of blocks on fine UI |

**CRF idea:** quality-targeted — hard scenes get more bits; flat UI gets few. Better than fat fixed bitrate for screen demos.

### Hardware videotoolbox (important)

`hevc_videotoolbox` / `h264_videotoolbox` **do not support true CRF**.

Use **quality mode `-q:v`** (lower number = better quality).

| Approximate mapping | videotoolbox `-q:v` | Rough software CRF feel |
|---------------------|---------------------|-------------------------|
| 1080p screen demos | **40** | ~CRF mid-20s territory for UI |
| 2K screen demos | **35** | Tighter / higher quality |
| “CRF 21-ish” intent | ~**35–40** band | Not a 1:1 math formula |

**Practical defaults already set**

- `rec-screen-1080` → `-q:v 40`
- `rec-screen-2k` → `-q:v 35`

---

## 4. Why re-encodes got tiny but still looked good

Rough impact order (screen / app demos):

1. **Resolution drop (biggest lever)**  
   Example: 2880×1800 → 1920×1200 ≈ **0.44× pixels**. Half-ish the pixels → far fewer bits for the same perceived sharpness on laptop/phone. For UI demos, **1920 is often enough**; 2880 is frequently overkill for screening.

2. **Original bitrate was wasteful**  
   Sources ~6.7–7 Mbps at high res vs outputs ~0.5–0.7 Mbps at 1920 with CRF ~20. Originals were “fat” relative to flat UI complexity.

3. **CRF / quality mode, not fixed high bitrate**  
   Avoids paying full bitrate for static frames.

4. **Content type loves compression**  
   Flat colors, UI panels, text, slow pans, little grain/noise → encoders crush size without looking soft. Grainy outdoor cinema would **not** shrink the same way.

5. **Modern re-encode efficiency**  
   Current libx264 + medium (or HEVC HW) often beats older near-lossless screen dumps.

6. **No audio**  
   100% of bits go to video (audio only a few MB, but simplifies the story).

### What *not* to do (protects quality)

- Don’t jump to CRF **28–32 H.264** as default (blocky risk).
- Don’t force **720p** for clinical UI demos unless mobile-only.
- Don’t heavy denoise / slash FPS in a way that kills motion.
- CRF **20** = clean zone; **23–24** still good; **28+** = “small first.”

### Mental model

```text
Size ≈ pixels × motion/detail × encoder efficiency × “safety margin” bitrate
```

You win size by cutting **pixels** + **safety margin** (CRF/q-mode) + content that **needs little bitrate** (UI screens).

### FAQ

| Question | Answer |
|----------|--------|
| Why not always H.265? | Compatibility; huge savings already available with scale + CRF H.264; HEVC is the next step if still large. |
| Magic? | No — half pixels + smart bitrate + screen content. Not “because H.264 is magic.” |

---

## 5. Images → video (OpenCV review + better practice)

### What the common OpenCV tutorial does (summary)

1. Install `opencv-python` + `pillow`
2. Count `.jpg/.jpeg/.png`
3. Compute **mean width/height**, resize all frames with **LANCZOS**
4. `cv2.VideoWriter` with **DIVX** fourcc, **1 fps**, write each frame → `.avi`

### Review — what is solid

- Same frame size for all images (required for most writers).
- LANCZOS (not deprecated ANTIALIAS) for downscale.
- Explicit release of `VideoWriter`.

### Review — problems / upgrades for real screening work

| Issue in tutorial pattern | Better practice |
|---------------------------|-----------------|
| Overwrites originals when saving resized JPEG in place | Write to a **temp folder**; never destroy masters |
| Mean size can yield **odd dimensions** (not divisible by 2) | Force **even** width/height (`w//2*2`, `h//2*2`) for H.264/HEVC |
| Codec **DIVX + .avi** | Prefer **H.264/HEVC MP4** via **FFmpeg** for web/editors |
| FPS = **1** | For slideshow/Ken Burns: **30 fps** with **duration per image** (e.g. 2.5–4s), not 1 fps |
| `os.listdir` order is unsorted | **Sort** filenames (or natural sort) |
| No audio | Fine for silent loops; mux music with FFmpeg + `apad`/`-shortest` if needed |
| Colab Drive paths | Local: pass a folder path; avoid hard-coded Drive roots |

### Preferred pipeline (production-aligned)

```text
images (sorted)
  → optional scale to even WxH (or fixed 1080×1920 / 1920×1080)
  → FFmpeg image sequence or concat demuxer
  → -framerate 30 on image inputs (VFR trap)
  → H.264 social default or HEVC archive
  → -ar 48000 if audio
  → QA: duration, non-black frames, mute-readability if text-on-screen
```

OpenCV is fine for **prototypes / research**; for **screening + social delivery**, FFmpeg (and editor.addict.best enhance templates) is the durable path.

---

## 6. Browser automation / no-API publishing (use carefully)

**Policy:** Browser/cookie automation only for **your own accounts**, **conservative pacing**, no ban-loop retries. Prefer existing Hybrid/Omni patterns over random GitHub clones.

### Useful patterns (reference only)

| Project | Role | Link |
|---------|------|------|
| **Katzca/AutoSocial** | Local dashboard TikTok/IG/YouTube; Playwright sessions; queues; schedule; yt-dlp + FFmpeg uniquify | https://github.com/Katzca/AutoSocial |
| **xtea/auto-instagram** | IG Feed/Carousel/Reels via Playwright + cookies + Patchright; cron queues | https://github.com/xtea/auto-instagram |
| **cedonulfi/automie** | Playwright + Gemini + Streamlit | search GitHub |
| **profullstack/social-poster** | Multi-platform CLI + sessions | search GitHub |

**How-to sketches**

- AutoSocial: local dashboard → first-run login per account (`.profiles/`) → queue → schedule/instant. Extend with face-blur / OpenCV offline.
- auto-instagram: content folder → import cookies → CLI; add residential proxy + human delays.

### Stealth helpers

- **cloakbrowser** (npm) — stronger stealth Chromium for Playwright.
- Self-hosted **anti-detect profiles** (AdsPower-class) for **one account → one profile/IP**.

### Simplified CLI (API side note)

- https://github.com/celeryhq/simplified-cli  
- `npm i -g simplified-cli` → `SIMPLIFIED_API_KEY` → `simplified auth:login`  
- Commands: `posts:create`, `ai-image:generate --wait`, analytics — JSON stdout, non-zero exit codes (agent-friendly).

**Not a substitute for cookie vault + watchdog hygiene** on browser-first stacks.

---

## 7. Content & viral mechanics (retention math)

### Grounding facts (2026-style)

- Platforms measure **hook strength in ~1–2 seconds**.
  - **TikTok:** aim hook intent ~**1.0–1.3s**
  - **Reels:** ~**1.5–2.1s**
- Keeping **≥60% of viewers past ~3 seconds** strongly improves push odds.
- **Negative / mistake framing** (“you’re doing this wrong”) often **1.3–1.8×** higher hook rate than pure positive framing on short video — especially feature demos (“old slow way vs app way”).

### Five content archetypes that spread

1. **Contrarian** — “Why [popular thing] is actually hurting you”
2. **Transformation / reveal** — before/after, process, “X → Y”
3. **Relatable pain** — “Does anyone else…”, “POV:…”
4. **Information gaps** — “The real reason…”, “What nobody tells you…”
5. **Authority by association** — react to big names / viral niche moments

### Golden hour & distribution

- First **60 minutes** can decide a large share of reach.
- After publish: share to relevant **public/private groups**, Stories, and **platform-native** cross-posts (adapt, don’t clone).
- Post when **audience** is online (analytics), not only when you are free.
- **Recycle winners every 60–90 days** with slight variations.
- North-star metrics: **saves + shares**, **early velocity**, **completion/retention** — not vanity likes alone.

### What kills growth

- Bought followers/engagement  
- Watermarked or copy-paste reposts  
- Engagement bait (“comment YES if…”)  
- Ignoring comments in the first hour  
- Same file + caption on every app (non-native)  
- Quitting after a quiet first week  

### Hub-and-spoke (default system)

One **hub** piece → many **spoke** adaptations (Reels cut, Threads text, X post, carousel). Don’t invent six full originals from zero.

---

## 8. High-retention video structure

| Time | Goal | Do |
|------|------|-----|
| **0–3s** | Pattern interrupt | Motion in first **0.5s**; **no** “hey guys welcome”; **triple hook**: motion + on-screen text + high-stakes line |
| **3–10s** | Open narrative loop | Info gap / conditional frame (“day 1 disaster… day 20…”) without spoiling payoff |
| **Middle ~50–80%** | Pacing engine | Visual change every **~2–3s**; micro-SFX on pops; punch-ins **10–15%** on key beats |
| **Ending** | Cold cut / loop | No “thanks for watching”; deliver last value → cut; optional seamless loop into open |

### Editing techniques that help

| Technique | Why | How |
|-----------|-----|-----|
| Punch-in / zoom cuts | Fake multi-cam | Cut on sentence; zoom 10–15% alternating |
| J-cuts | Smooth brain transition | Next audio leads 0.2–0.5s before picture |
| Word groups captions | Eyes stay on frame | 1–3 words, highlight keywords |
| Speed ramp / silence kill | Remove dead air | 1.1–1.2× talk; cut micro-pauses |

---

## 9. Actions on media platforms (ops checklist)

Use with ethics / account age caps elsewhere (Hybrid rules). This list is **what** to do, not “spam harder.”

- Comment on **niche influencers** with high-value replies (not empty praise).
- Publish + engage + **auto-respond** (don’t ignore comments/DMs).
- Scrape/target **only high-intent** users (competitors’ recent commenters, niche groups, hashtag engagers) — with filters.
- Grow groups/pages carefully; invite with warm-up, not cold blasts.
- Choose post times from **analytics** (and ads data when available).
- **First 60 minutes after post:** public share, groups, cross-platform native variants, reply hard.
- Recycle top performers **60–90 days** with variations.

### Recommended rapid-spread system

1. Choose **2–3** primary platforms.  
2. Weekly batch: core idea → native adaptations.  
3. Publish → **golden hour** engage → next-day retention review.  
4. Double down on formats above **your** baseline.  
5. Cross-pollinate winners by **adapting**, not cloning.  
6. Track saves/shares + early velocity.

### High-leverage “treasure” edges

- **First-hour system:** prime via Stories/groups → post at peak → stay online 60 minutes.  
- Author replies multiply distribution (esp. X / LinkedIn / YouTube early window).  
- Serial/episodic content trains the algorithm better than pure one-offs.  
- Platform-native always beats watermarked crossposts.  
- Emotion + social utility drives shares.  
- One idea = a **content system** (hooks, lists, stories, contrarian cuts).  
- Consistency compounds (**3–5×** distribution over time vs sporadic).

---

## 10. Platform playbooks from zero

| Platform | From-zero note | Cadence / tips |
|----------|----------------|----------------|
| **TikTok** | Best zero-to-hero odds (merit FYP) | 2–3 specific hashtags; less-polished often wins |
| **Instagram** | Best single visual platform to master first | 4–7 Reels/week + Stories; carousels later; trending audio first 24h helps |
| **YouTube** | Pair Shorts + occasional long-form | Shorts often **15–30s** for completion; growth back-loaded |
| **X** | Fastest / least forgiving | Guard **first 30–60 min**; reply to replies; **links in reply**, not body (non-Premium) |
| **Threads** | Easier room to be heard | 2–3 posts/day; constructive tone; avoid GPT-isms (delve, leverage, game-changer) |
| **LinkedIn** | Professional spoke of hub | Don’t dump the same entertainment cut |
| **Pinterest** | Search engine for evergreen how-tos | Optimize for search, not TikTok-style chase |

### First 30 days

1. Lock niche, pillars, handle, keyword bio; pick TikTok **or** Reels as lead; outline 10 hubs.  
2. Batch film; one hub → many spokes; post lead daily-ish; Threads/X 1–2×/day.  
3. Reply every comment ~first hour; track retention, saves+shares, follows-per-view.  
4. Double down on winners; drop platforms with zero return — **2–3 done well > 6 thin**.

### 30-day blitz (optional intensity)

| Week | Focus |
|------|--------|
| 1 | Competitor audit, systems, high output start |
| 2 | Find 3 winning formats; double down |
| 3 | Collabs / pods / live once |
| 4 | Repurpose top 10; optional contest |

---

## 11. Shot-list / AI production order review

Review of a ~48s / 14-shot Promedic-style order:

| Shots | Method | Verdict |
|-------|--------|---------|
| 1–9, 11–13 | AI photoreal video | OK |
| **10** | **Live screen recording of app** | **Correct** — authentic UI, legally/clinically cleaner |
| **14** | Motion-graphics outro (AE/Canva) | **Correct** — AI logo lockups hallucinate |

### Discipline that matters most

- **Locked Style Block** + **Master Negative Prompt** as **unchanged copy-paste strings** every shot. Drift starts when people paraphrase from memory.

### Consistency workflow highlights

- **Reference propagation:** after early shots approve a clean frame from Shot 3 as the anchor for later shots (not only the master sheet).  
- **Performance close-ups (e.g. Shot 13):** prefer video-reference / Act-Two-style performance over pure text-prompt lip sync (esp. Arabic phonemes).  
- **LLM shot-list meta-prompt:** force escape hatch `[NEEDS INPUT: …]` instead of inventing props/characters.

### 9:16 safe zones

- Example hard numbers on **1080×1920:** ~**200px top / 300px bottom / 60px sides** for TikTok/Reels chrome.  
- **Hard rule:** compose AI keyframes at **16:9 or wider with subject centered**, then crop — never generate critical subject on the edge.

### Tool notes

- Kling subject binding / Runway references are solid anchors.  
- **Verify** subscription-gated “video reference / Omni” features are actually enabled before building a shot around them.

### Expert non-negotiables

1. Render **textless master** + **captioned** version separately (cheap at export; saves EN/AR rework).  
2. **Never let AI invent medical numbers on-screen** — generate abstract UI; burn real numbers as **post graphics**. Liability + accuracy.

---

## 12. Quick reference tables

### Screen capture decision

| Goal | Choice |
|------|--------|
| Maximum fidelity archive | Native H.264 18 Mbps **or** native/2K HEVC |
| Share / screening | `rec-screen-1080` HEVC `-q:v 40` |
| Smaller still sharp | Scale to 1920 + CRF/q-mode; screen content compresses hard |
| Max compatibility export | H.264 MP4 deliverable |

### Size vs quality levers (screen)

| Lever | Effect |
|-------|--------|
| Resolution ↓ | Biggest size win |
| CRF / `-q:v` vs fat CBR | Stops paying for static frames |
| HEVC vs H.264 | ~40–50% smaller at same look |
| Content type | UI/text = easy; grain/cinema = hard |

### Viral ops (one screen)

```text
Hook ≤2s (mistake-frame preferred)
→ ≥60% past 3s
→ visual change ~2–3s
→ publish
→ 60-min golden hour (reply/share/groups)
→ next day: retention + saves/shares
→ recycle winners 60–90 days
```

---

## Related hosts

| Site | Role |
|------|------|
| [notes.addict.best](https://notes.addict.best/) | This notes hub |
| [editor.addict.best](https://editor.addict.best/) | Screen/edit agent templates (incl. Promedic pack) |
| [content.addict.best](https://content.addict.best/) | Content / AI-manager lectures |

---

*End of notes-about-screening.md*
