Notes About Screening
Host: 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)
2. H.264 vs H.265 for screen content
3. CRF / quality settings (and videotoolbox reality)
4. Why re-encodes got tiny but still looked good
5. Images → video (OpenCV review + better practice)
6. Browser automation / no-API publishing (use carefully)
7. Content & viral mechanics (retention math)
8. High-retention video structure
9. Actions on media platforms (ops checklist)
10. Platform playbooks from zero
11. Shot-list / AI production order review
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-2kwith 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 40rec-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
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)
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 |
| 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) |
| Professional spoke of hub | Don’t dump the same entertainment cut | |
| 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)
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 | This notes hub |
| editor.addict.best | Screen/edit agent templates (incl. Promedic pack) |
| content.addict.best | Content / AI-manager lectures |
*End of notes-about-screening.md*