Video breakdown: reference.mp4
Verdict: static hold 100%; audio: music 143.6BPM (stock library music)
- 6.0s · 640×360 · 24.0fps · 16:9; 3 shots, 2.0s average; transitions: cut×2
- Confidence (duration-weighted) 62%; decided by: deterministic forensics only; No VLM; live action / AI / 3D are told apart from pixel statistics only, so confidence is limited. An agent that can see images: run rea-video review, look at each shot and merge with apply-review; otherwise configure a VLM (any OpenAI-compatible multimodal model, e.g. Gemini / GPT-4o / Doubao / Qwen-VL): set REA_VLM_BASE_URL, REA_VLM_API_KEY and REA_VLM_MODEL (several models comma-separated as fallbacks), then rerun with --vlm
- Remake: still-image move / static frame 3 shots → rebuilt locally (see “Remake plan”)
- ⚠️ 4 open questions, see “Open questions” first: Shot #1 (0.0–2.0s): photo / image: real material or generated, to confirm
Content and structure
- No whole-video summary (needs the VLM or an agent watching the full video); subtitle text is under “Packaging layer”
Cast, scenes and props
- No cast extracted (needs the VLM whole-video pass, or an agent filling top-level
castinreview_answers.json)
Sound
- loudness -49.6 dBFS, peak -45.5 dBFS; sound runs across cuts, laid in post as one bed (background changes 0.5dB at cuts vs 0.6dB within shots)
- Sources: Video type: music bed only (no voice) → music: stock library music
Voice
- None / very little
Music
- Tempo: 143.6 BPM (or 71.8/287.1); key A minor (confidence 0.653); 83% of the duration (0.0–5.0s); ending: ends_early
- Cuts vs beat: 0% of cuts land on a beat (chance: about 30%)
- Source: stock library music (existing_library 60%, ai_generated 20%, popular_song 20%)
- The music is a bed under the picture: in a regular video the bed usually comes from a stock library (prior)
- How to confirm: Check the music tag on the original Douyin / Xiaohongshu / TikTok post: a song title → existing track; "original sound - @creator" → uploaded by the creator (for music videos, usually an AI song)
- How to confirm: Run it through Shazam / ACRCloud or another song-ID service: a hit means an existing song
- Remake: The original track leans stock library music: search a library by BPM / mood / key for a similar track, or generate a royalty-free track in a similar style with AI
Sound effects
- Nothing prominent at the signal level (quiet effects under voice and music need the VLM, see --vlm)
- Separated stems:
stems/original.wav(original),stems/vocals.wav(dry voice; transient sound effects land here too),stems/music.wav(music + ambience)
original:
dry voice:
music + ambience:
Camera, lighting and editing
- Editing: 20.0 cuts per minute, 2.0s average shot; no live-action shots
- Note: lighting ratio, soft / hard, colour temperature and shot size are measured on the subject's pixels (the face when there is one, otherwise the in-focus region, which is an estimate); platform transcodes crush the shadows, so hardness and fill read conservative; camera angle, light source, catchlight and rim light follow the image readers. Where measurement and readers disagree, both are listed.
Packaging layer (subtitles / styled text / stickers / sound-effect hits)
- No overlaid text or stickers detected
- Exports:
packaging/timeline.json(SRT is the subtitle timeline; ASS carries colour, outline, position and entrance animation, swap in the original font; timeline.json is the full timeline)
Remake: burn subtitles and styled text in with packaging/overlays.ass (ffmpeg -vf ass=overlays.ass), or rebuild them from timeline.json in CapCut / Remotion; stickers and GIFs need matching assets (meme / GIF libraries), crops are under packaging/.
Remake plan
still-image move / static frame 3 shots → rebuilt locally
Local rebuild
- #1 static hold 2.0s; #2 static hold 2.0s; #3 static hold 2.0s: one image + the measured zoom / pan parameters, rendered straight from ffmpeg
Shot list
| # | Time | Length | Base picture | Material | Overlays | Camera | Picture | Remake |
|---|---|---|---|---|---|---|---|---|
| 1 | 00:00.000 | 2.00s | static hold 71% | to confirm; real or not, to confirm: photo / image | — | static | — | static frame |
| 2 | 00:02.000 | 2.00s | static hold 68% | to confirm; real or not, to confirm: photo / image | — | static | — | static frame |
| 3 | 00:04.000 | 2.00s | static hold 46% | to confirm; real or not, to confirm: photo / image | — | static | — | static frame |
Open questions
- Shot #1 (0.0–2.0s): photo / image: real material or generated, to confirm
- Shot #2 (2.0–4.0s): photo / image: real material or generated, to confirm
- Shot #3 (4.0–6.0s): static hold at only 46% confidence, runner-up code_render
- Shot #3 (4.0–6.0s): photo / image: real material or generated, to confirm
Appendix
Shot by shot
Evidence, probabilities, text tracks and prompts per shot. Folded by default.
#1 00:00.000–00:02.000 · static hold
- Probabilities: static hold 71%, code / template render 22%, screen recording / screenshot 3%(deterministic)
- Still source: unknown
- Material: to confirm; real or not, to confirm: photo / image
- Picture is almost entirely still: 100% of adjacent frames are pixel-identical, first-to-last frame difference 0.00
- Photographic texture: noise σ=0.37, 75 colours, 9% flat blocks
- Remake: Static frame: one held image is enough
#2 00:02.000–00:04.000 · static hold
- Probabilities: static hold 68%, code / template render 25%, screen recording / screenshot 3%(deterministic)
- Still source: unknown
- Material: to confirm; real or not, to confirm: photo / image
- Picture is almost entirely still: 100% of adjacent frames are pixel-identical, first-to-last frame difference 0.00
- Photographic texture: noise σ=0.20, 67 colours, 11% flat blocks
- Remake: Static frame: one held image is enough
#3 00:04.000–00:06.000 · static hold
- Probabilities: static hold 46%, code / template render 45%, screen recording / screenshot 5%(deterministic)
- Still source: unknown
- Material: to confirm; real or not, to confirm: photo / image
- Picture is almost entirely still: 100% of adjacent frames are pixel-identical, first-to-last frame difference 0.00
- Remake: Static frame: one held image is enough
Metadata clues
- Encoder:
Lavf62.12.100
Notes
- Deterministic forensics is reliable on motion, whole-frame pan/zoom, rendered texture and 24→30 fps conversion; telling live action from AI from 3D relies on the VLM and human review.
- Platform transcoding usually strips metadata; missing metadata proves nothing.
- The full data is in
breakdown.json; agents read the compact view withrea-video summary.