seenry-video
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDirect the film, then render it
先执导影片,再进行渲染
A good product film proves one thing. Everything in it, picture, words, music and cuts, serves that proof, and every fact it shows is true. The film is built as a web page whose every frame is a pure function of time, rendered by seeking frame by frame. That makes it exact, repeatable and editable like code: change a number, re-render, and the cut is identical except for that number.
Use this for 6–90 second films about a product: launches, feature reveals, "how it works" explainers, MCP and agent demos, social cuts. For interface motion inside a product use seenry-motion; for the page or product being shown use seenry.
一部好的产品影片只证明一件事。片中的一切——画面、文字、音乐和剪辑——都服务于这一证明,而它呈现的每一项事实都为真。影片以网页形式构建,每一帧都是时间的纯函数,并通过逐帧定位来渲染。这使影片精确、可重复且可像代码一样编辑:更改一个数值并重新渲染后,除该数值发生变化外,成片完全一致。
将本流程用于时长为 6–90 秒的产品影片:发布视频、功能揭晓、运作原理解说、MCP 和 Agent 演示、社交媒体短片。若要制作产品内部的界面动效,请使用 seenry-motion;若要展示页面或产品本身,请使用 seenry。
The standard
标准
- One claim, proven on screen. Write the sentence the viewer should repeat afterwards. If a scene does not move toward proving it, cut the scene.
- Real over representational. Real product UI, real captures, real numbers, real sound recordings or deliberately designed sound. Never a fake dashboard, invented metrics or stock "tech" visuals.
- True, or labeled. Every number, quote, tool call and product behavior on screen is either captured evidence or clearly an illustration. Record each in as you build. If the product does not do what the film shows, change the film, or build the feature first.
claims.json - Cut on the music. Pick the tempo first; scenes start on bar lines, hits land on beats, and the voice sits between them. 120 BPM gives a 2-second bar, which is easy to reason about.
- Sound is designed, not decorated. Music ducks under the voice, effects mark real events (a value landing, a page arriving), and the mix is mastered to −14 LUFS. Silence is a tool.
- Readable at a glance. On-screen text stays up long enough to read twice (about 0.3s per word plus 1s), is at least 28px at 1080p, and is never smaller than the thing it describes.
- 一个主张,并在屏幕上得到证明。 写下观众看完后应该复述的一句话。如果某个场景无助于证明它,就删掉该场景。
- 真实优于示意。 使用真实产品 UI、真实采集素材、真实数字、真实录音或经过精心设计的音效。绝不使用虚假 dashboard、编造的指标或素材库中的“科技感”画面。
- 要么真实,要么明确标注。 屏幕上的每个数字、引述、工具调用和产品行为,都必须是采集所得的证据,或被清楚标为示意。每项内容进入影片时,都要记录到 。如果产品无法做到影片所展示的效果,就修改影片,或者先构建该功能。
claims.json - 跟着音乐剪。 先确定 tempo;场景从小节线开始,冲击点落在节拍上,人声位于其间。120 BPM 时每小节为 2 秒,便于推算。
- 声音要经过设计,而不是简单装饰。 音乐在旁白下自动压低,效果音用于标记真实事件,例如数值落定或页面到达,混音经过母带处理,目标响度为 −14 LUFS。静默也是一种工具。
- 一眼即可读懂。 屏幕文字应至少保留足够读两遍的时间(每词约 0.3s,再加 1s),在 1080p 下字号至少为 28px,且始终不得小于其所描述内容的字号。
The flow
流程
- Brief (). The claim, the proof, the audience, where it plays and at what size (16:9 1920×1080 for sites and X; 1:1 or 4:5 for feeds; 9:16 for stories), the length (social 8–15s, launch 30–60s, explainer up to 90s), voice or no voice, and what is fixed (brand, product state, legal lines).
brief.md - Study references. Follow research: find launch videos and recordings in Seenry, watch them at normal speed, pull frames at their cuts, and write with what each proves about pacing, type, transitions and sound, and what you will not take.
study.md - Story and shot list. Follow directing: beats on a bar grid, a shot list with timings, the voiceover script timed to it, and three or four storyboard stills before any animation. Show the shot list and script to the user before building when the film is for publication.
- Material. Pull real captures, measurements and recordings through Seenry MCP or the product itself, and get licensed or generated imagery through seenry-assets. Add a row for every fact as it enters the film.
claims.json - Build. Copy the film template and its cue sheet, sound spec and claims ledger into the project. Replace the demo scenes with your shot list. Open the page to scrub and play; export stills () to check composition at full size.
render.mjs --stills - Sound. Follow sound: music edited to the cut, effects on real events, the voice recorded or generated, then with the cue sheet. ElevenLabs generation (
mix.py) is optional and spends the user's credits; ask before running it.elevenlabs.py - Render, check and review. Follow review: ,
render.mjs,mix.pyuntil it passes, thenfilm_check.py, a blind film critic that watches the cut as a sequence beside the reference films. Apply its fixes, keep what it says to keep, and run it again. Scores are blind and fixes are written against the full history, so rounds converge. Score a reference film the same way to know the ceiling; aim for that ceiling, and when two rounds do not move the score, change the concept rather than the layout. Report the score either way. Watch it once yourself at normal speed with sound before delivering.film_critic.mjs
- 创作简报()。 明确核心主张、证明方式、受众、播放位置与尺寸(网站和 X 使用 16:9 1920×1080;信息流使用 1:1 或 4:5;Stories 使用 9:16)、时长(社交媒体 8–15s,发布视频 30–60s,解说视频最长 90s)、是否有旁白,以及固定内容(品牌、产品状态、法律声明文案)。
brief.md - 研究参考素材。 按照 research:在 Seenry 中查找发布视频和录制内容,以正常速度观看,在剪辑点提取帧,并将每个参考素材在节奏、字体、转场和声音方面可借鉴之处,以及明确不采用的内容写入 。
study.md - 故事与分镜表。 按照 directing:在小节网格上安排叙事节拍,制定带时间点的分镜表,编写按其时间轴计时的旁白稿,并在制作任何动画前先完成三四张故事板静帧。若影片用于发布,开始构建前先向用户展示分镜表和脚本。
- 准备素材。 通过 Seenry MCP 或产品本身获取真实录屏、测量结果和录音,并通过 seenry-assets 获取授权图像素材或生成的图像。每项事实进入影片时,都在 中添加对应记录。
claims.json - 构建。 将 影片模板 及其 cue sheet、sound spec 和 claims ledger 复制到项目中。用分镜表替换演示场景。打开页面,拖动时间轴并播放;导出静帧(),以全尺寸检查构图。
render.mjs --stills - 声音。 按照 sound:根据剪辑点编辑音乐,为真实事件添加效果音,录制或生成旁白,然后使用 cue sheet 运行 。ElevenLabs 生成功能(
mix.py)为可选项,会消耗用户的 credits;运行前必须征得同意。elevenlabs.py - 渲染、检查与评审。 按照 review:反复运行 、
render.mjs和mix.py,直至通过;随后运行film_check.py。该工具会调用一个全新的模型评审者进行盲评:对照参考影片,依据带有每帧人声的节拍网格故事板、手机信息流版面和全尺寸镜头帧,并结合实测剪切点、响度、脚本与 claims ledger,按连续序列观看成片。按其建议修改,保留它明确要求保留的内容,然后再次运行。评分采用盲评方式,修改建议基于此前各轮的完整历史记录生成,因此不会重复提出,也不会反向修改。对参考影片采用相同方式评分,以了解可达到的上限,并将目标设为这一上限。如果连续两轮评分都没有变化,应改变创意概念,而不是调整版面。无论结果如何,都要报告评分。交付前,亲自以正常速度并开启声音完整观看一次。film_critic.mjs
Tools
工具
All scripts are in and take paths relative to the film folder.
scripts/- renders
node scripts/render.mjs --dir film/.film.silent.mp4exports frames,--stills 2,9.5a contact sheet. Needs ffmpeg and Playwright with Chromium (--contact 12, ornpm i -D playwright && npx playwright install chromium).--playwright <path> - edits the music on bar lines, places effects by their peaks, ducks under the voice, masters to the target loudness and muxes
python3 scripts/mix.py film/cues.json. Needs numpy.film.mp4 - generates voice, effects and score when
python3 scripts/elevenlabs.py film/sound.json voices|vo|sfx|musicis set. Optional.ELEVENLABS_API_KEY - has a fresh model judge the film from a beat-grid storyboard with the voice under each frame, a phone-feed board and full-size shot frames, alongside measured cuts, loudness, the script and the claims ledger. It scores claim, proof, story, pacing, picture, legibility, sound with picture and truth against the references (median of three runs), names what to keep, scores blind, and writes fixes against the full history of earlier rounds so it neither repeats nor reverses them.
node scripts/film_critic.mjs --dir film/ --refs study/a.mp4,study/b.mp4writes the boards and prompt only;--dry-runexits 1 below the bar.--min 8 - checks duration, codec and color range, loudness and true peak, voice lines running into each other, and that every non-dramatised claim has a source.
python3 scripts/film_check.py film/cues.json
所有脚本都位于 中,所用路径均相对于影片文件夹。
scripts/- 渲染
node scripts/render.mjs --dir film/。film.silent.mp4导出帧,--stills 2,9.5导出 contact sheet。需要 ffmpeg 和带 Chromium 的 Playwright(--contact 12,或使用npm i -D playwright && npx playwright install chromium)。--playwright <path> - 按小节线剪接音乐,按峰值放置效果音,在旁白下压低音乐,母带处理至目标响度,并混流为
python3 scripts/mix.py film/cues.json。需要 numpy。film.mp4 - 在设置
python3 scripts/elevenlabs.py film/sound.json voices|vo|sfx|music后生成人声、音效和配乐。可选。ELEVENLABS_API_KEY - 会调用一个全新的模型评审者进行评审:它依据带有每帧人声的节拍网格故事板、手机信息流版面和全尺寸镜头帧,并结合实测剪切点、响度、脚本与 claims ledger 来评审影片。它会对照参考影片,对主张(claim)、证明(proof)、故事(story)、节奏(pacing)、画面(picture)、可读性(legibility)、声音与画面的配合(sound with picture)及真实性(truth)评分(三次运行取中位数),指出应保留的内容,采用盲评方式,并基于此前各轮的完整历史记录写下修改建议,因此不会重复提出,也不会反向修改。
node scripts/film_critic.mjs --dir film/ --refs study/a.mp4,study/b.mp4仅写入辅助版面和 prompt;--dry-run在评分低于门槛时以退出码 1 退出。--min 8 - 检查时长、编码格式和色域、响度与真实峰值、旁白语句是否相互重叠,以及每项非演绎式事实声明是否都有来源。
python3 scripts/film_check.py film/cues.json
Never ship these
以下内容绝不可交付
- A number, quote, tool call or product behavior on screen that was not captured or is not labeled as an illustration.
- Fake product UI built to look real, invented customer logos or metrics, AI-generated "screenshots" of the product.
- Text that is on screen for less time than it takes to read twice, or smaller than 28px at 1080p.
- Stock "AI" visuals: glowing brains, particle networks, purple gradient blobs, floating holograms, a typing cursor as the only idea.
- Music that fights the voice, effects on every frame, a whoosh on every cut, a mix louder than −13 LUFS or peaking above −1 dBTP.
- Copying a reference film's shots, music or sequence. References teach pacing and craft; the film's idea comes from this product's claim.
- A slow logo intro. Show the claim or the product in the first two seconds.
- 屏幕上出现但未被采集、也未标注为示意的数字、引述、工具调用或产品行为。
- 刻意伪装成真实产品的虚假 UI、虚构的客户 logo 或指标,以及 AI 生成的虚假产品“截图”。
- 停留时间不足以读两遍的屏幕文字,或在 1080p 下小于 28px 的文字。
- 素材库中的“AI”视觉套路:发光的大脑、粒子网络、紫色渐变斑块、漂浮的全息图,以及只把打字光标当作核心创意的画面。
- 与旁白相争的音乐、每一帧都堆叠的音效、每次剪切都加入的 whoosh、响度高于 −13 LUFS 或峰值高于 −1 dBTP 的混音。
- 照搬参考影片的镜头、音乐或序列。参考影片用于学习节奏和工艺;影片创意应来自本产品的主张。
- 冗长的 logo 片头。必须在最初两秒内展示主张或产品。
Deliver
交付
The film (), the silent render, the cue sheet, the brief, the study, the script and . Report the claim the film proves, what each reference contributed, what is captured versus illustrated, the measured loudness, the film critic's scores, and anything unverified.
film.mp4claims.json交付影片()、静音渲染版本、cue sheet、brief、study、脚本和 。报告影片证明了什么主张、每份参考素材贡献了什么、哪些内容是采集所得、哪些内容属于示意、实测响度、film critic 的评分,以及所有未验证事项。
film.mp4claims.json