Case studies
Retiring the ffmpeg script, one solved problem at a time
Some video problems are solved. Netflix solved them. YouTube solved them. Plex, Jellyfin, Roku — all solved them. And under many of those solutions sits the same thing: ffmpeg and a script. Teams write APIs over the script, GUIs over the API — the script never goes away. Someone maintains it, forever, at every company, separately.
m0saic doesn’t hide that it’s ffmpeg. It is ffmpeg in a script — but the abstraction sits high enough that it becomes a programming language. A template is a program that solves the class of problem, in one inspectable format. Write it once, and everyone who picks it up gets the same solved solution — with a visual layer, a prose layer, validation, and batch built in.
This page collects these real-world case studies.
CASE 01TrickplayThe scrub-preview thumbnails every video platform ships — sprite sheets, WebVTT storyboard, player manifests. Solved everywhere, maintained everywhere. Now once.sprite sheetsWebVTTJellyfin + DASHbatch
CASE 02Preview SheetsOne image that shows a whole video: an ffprobe info pane over a timestamped grid of exact-seek frames. Point it at a folder, get a sheet per title — landscape and portrait from one render.contact sheetsexact seeksinfo paneboth orientations
render en route@m0saic/story/narrated-chapters/v1
CASE 03The Agent Writes story.jsonAn agent writes a story manifest; TTS and image models fill in assets; m0saic compiles the pixels. Edit one section and exactly one section regenerates — the render is a build step, not a gamble.narrated chapterscaptionscontent-addressed cacheagents
CASE 04Dual-Language SubtitlesTarget language on top, native beneath — with a support dial that delays, dims, and eventually drops the training wheels. Built because the founder is learning Spanish from a real show.dual subslearning dialexternal SRTMKV tracks
render en route@m0saic/forensic/watermark/video/v1
CASE 05Forensic WatermarkAn invisible, error-corrected payload woven into the frames — it survives platform re-encodes, and a verify template renders the PASS/FAIL report card with the recovered payload.invisible payloadsurvives re-encodeverify reportprovenance
render en route@m0saic/media/highlights/v1
CASE 06Highlight ClipsMark the ranges once, render once, get one clip per range — audio intact, names deterministic, one bad range never kills the batch.clip batchtime rangesone rendermp4/webm
CASE 07Repo PulseLive GitHub data in, an animated weekly report out: commits, contributors, activity trend, notable changes — eight beats cross-faded into one deliverable you can cron.live dataGitHubdashboard beatscron-able
render en route@m0saic/web/page-skeleton/v1
CASE 08Page SkeletonsCaptured page geometry becomes a skeleton still or a looping shimmer video — loading-state mockups that cannot drift from the actual layout, because they are the actual layout.skeleton screensshimmer loopreal geometrymockups
CASE 09Photo CollagePhotography — solver-designed contact sheets and collages. In the works.layout solvercollage
CASE 10Code MorphDev content — code-explainer videos without screen recording. In the works.code videomorphs
NEXTEvery ffmpeg script somebody maintains is a candidate.