Practical AI video guidance
Check an AI Video File Before Editing or Delivery
Inspect an AI video file with ffprobe: a real sample audit, resolution, frame rate, duration, audio and a reusable delivery manifest.
Updated
Create with VidVidA generation setting describes what you requested. A downloaded file tells you what you actually have to edit and deliver. Before comparing models or sending a clip to an editor, inspect the exact file for dimensions, frame rate, duration and audio streams, then keep that record with its version.
This guide includes a reproducible metadata inspection of one archived VidVid public sample. It is a file audit, not a new generation test or a model quality ranking. Metadata cannot establish visual fidelity, natural motion or usable sound; those still require playback review.
Inspect the file you will actually deliver
Keep the downloaded file separate from trimmed, resized and captioned exports. Give each a distinct filename. Otherwise a later export can silently replace the evidence you meant to inspect.
Use FFmpeg’s ffprobe, an external command-line tool installed on your computer. It is not a VidVid generator control. The official ffprobe source documentation describes stream and container inspection and JSON output. This command reads the media and prints selected fields without transcoding it:
ffprobe -v error -show_entries stream=index,codec_type,codec_name,width,height,avg_frame_rate,r_frame_rate,duration,nb_frames,sample_rate,channels:format=duration,size,format_name -of json -i "clip-original.mp4"
Replace the filename with your local file. To keep the output, append > clip-original.metadata.json, choosing a new output name so you do not overwrite an earlier record. If the command fails, retain the error and check the path and file before interpreting missing fields. Some formats do not report every field; an absent frame count is not a count of zero.
A real archived sample: command, output and limits
On October 22, 2026, we inspected the existing public sample file with ffprobe 8.0.1. The filename is an archive label; this inspection does not independently verify its original generation request or provider provenance. You can inspect the raw JSON output alongside the file.
| Field | Observed value | What this supports |
|---|---|---|
| Video stream | H.264, index 0 | The inspected video stream uses this codec |
| Encoded dimensions | 1344 × 768 | These are the reported encoded width and height |
| Average / reported base frame rate | 24/1 / 24/1 |
Both fields report 24 frames per second |
| Video duration / frame count | 5.166667 s / 124 | The reported duration and frame count of this video stream |
| Container duration | 5.167000 s | The duration reported for the containing file |
| Audio stream | AAC, 32000 Hz, 2 channels | An audio stream with these properties exists |
| Audio duration | 5.167000 s | The reported duration of the audio stream |
| File size | 743091 bytes | The size of the inspected file |
The sample’s SHA-256 is:
1f9822bb9838f42b57a5055fe4710a17513af4650050cd758cd7b11dc2eb0ec9
Use the hash to associate the record with those exact bytes. If your copy has a different hash, inspect that copy instead of assuming this table applies. A matching hash identifies the file; it does not establish ownership, generation provenance or quality.
Several conclusions would go beyond this evidence. The dimensions do not prove native detail or rule out upscaling. The two frame-rate fields do not prove constant frame timing, unique frames or smooth movement. An AAC track does not prove audible content, synchronization or lip sync. We did not make those measurements. This command also does not audit display rotation or sample aspect ratio, which can affect displayed geometry.
The small difference between video-stream and container duration should stay in the record as two values. It is not, by itself, evidence of a model failing its requested duration. Never read the audio stream’s 0/0 frame-rate entry as the video’s frame rate.
When requested settings and file properties differ
Before spending credits on another generation, identify which version you inspected and where the difference first appears. The following is an editorial troubleshooting workflow, not a promise about every provider’s output.
| Situation | Check next | Decision before regenerating |
|---|---|---|
| Export dimensions differ from the request | Compare the untouched download and the editor’s export | If only the export changed, correct the export settings first |
| File duration differs from your timeline | Compare container duration, video duration and timeline trim points | Record which duration the delivery requirement uses; inspect the ending in playback |
| Audio is listed but nothing is heard | Check playback, mute controls and the selected audio track | Track existence alone cannot justify an audio-quality claim |
| Frame rate is reported as expected but motion stutters | Play the clip and examine the affected time range | Investigate visual duplication or motion defects separately from nominal frame rate |
| The untouched download appears inconsistent with the saved request | Preserve the request, task reference, original bytes and probe output | Use the evidence to investigate; do not guess the cause from the filename |
For visual warping, flicker and identity drift, use the separate AI video artifacts guide. For camera and prompt comparisons, use the prompt iteration guide. A technically valid file can still fail either creative review.
Keep a file manifest with each handoff
Copy this template into your project notes. Fill it with observed values; leave unknown request details explicitly unknown. The fields are a suggested workflow, not an automatic VidVid export feature.
Project / shot:
File role: untouched download / edited export / delivery export
Filename and SHA-256:
Source task reference, if available:
Requested model and settings, if recorded:
Probe command / ffprobe version / inspection date:
Video stream index / codec / encoded dimensions:
Average frame rate / reported base frame rate:
Video duration / container duration:
Audio stream index / codec / sample rate / channels:
Visual and sound review: reviewer, time ranges, unresolved issues
Parent filename/hash and edit changes, for derived exports:
Delivery requirement and acceptance decision:
A replacement shot needs a fresh file record and a review of its neighboring cuts. See the storyboard and handoff workflow for the creative continuity checks. Keep original and delivery records together so an editor can trace which version was approved.
Does duration prove how many credits were charged?
No. File duration is a media property, not a billing receipt. Compare your saved request and the applicable pricing information with the actual transaction record. A trimmed export cannot establish the original generation settings or charge. This sample audit makes no billing or refund finding.
When choosing your next generation, review models by task, then use the VidVid workspace. Save the request settings before generation, inspect the downloaded file afterward, and approve delivery only after both technical and creative review.