FFmpeg Reports 0% Freeze: Does Your Short Actually Move?
A zero freeze ratio does not prove that the subject moves enough or that a Short is interesting. It means the detector counted no frozen time under the conditions you selected. This is an English edition of our existing test notes. The measurements below were made on October 3 and October 6, 2026; this language update does not represent a new video test.
Two final exports, the same detection settings
On October 3 we checked the final edited sea-cucumber and dumbo-octopus MP4 files made from NOAA footage. Both were 20.00 seconds at 1080×1920, with no audio stream. We checked the exports after editing and captions, rather than treating the source footage as the final file.
| Final export | Duration | Detected frozen time | Ratio |
|---|---|---|---|
| Swimming sea cucumber | 20.00 s | 0.00 s | 0.0% |
| Dumbo octopus | 20.00 s | 0.00 s | 0.0% |
Both analysis commands completed with exit code 0 and produced no freeze_start, freeze_duration or freeze_end events. These checks used n=0.003:d=1.5. That result applies to these files and settings. It does not measure watch time, factual accuracy, enjoyment or subscriber conversion.
A controlled test: a long threshold can miss short freezes
On October 6 we generated three test files: six seconds of a moving test pattern followed by a cloned final frame held for one, four or six seconds. All three used freezedetect=n=-40dB:d=5. The one-second and four-second holds produced no start event. The six-second hold produced one event, starting at 5.9 seconds.
| Designed ending hold | Actual file length / frames | Freeze start events |
|---|---|---|
| 1 s | 7.0 s / 70 | 0 |
| 4 s | 10.0 s / 100 | 0 |
| 6 s | 12.0 s / 120 | 1, at 5.9 s |
The recorded setup was FFmpeg 9.0.1, 320×568, 10 fps, H.264/yuv420p and no audio. Each analysis completed successfully. The last original frame belongs to the repeated sequence, explaining the 5.9-second start. These files used a five-second notification threshold; do not directly compare their figures with the earlier 1.5-second checks.
To reproduce the four-second hold, the first command creates a separate test video. The second only analyzes it:
ffmpeg -f lavfi -i "testsrc2=s=320x568:r=10:d=6" -vf "tpad=stop_mode=clone:stop_duration=4" -c:v libx264 -pix_fmt yuv420p -an "freeze-4s.mp4"
ffmpeg -hide_banner -nostats -i "freeze-4s.mp4" -vf "freezedetect=n=-40dB:d=5" -map 0:v:0 -f null -
The threshold's dB value concerns video-frame differences, not audio dBFS. A hold that reaches the end of a file may have no freeze_end event. Counting start events alone therefore does not establish the frozen-time ratio.
Analyze the exact file you plan to upload
ffmpeg -hide_banner -nostats -i "export.mp4" -vf "freezedetect=n=0.003:d=1.5" -map 0:v:0 -f null -
Replace export.mp4 with your final file name. Keep the quotes for names containing spaces. This command selects the first video stream and discards the analysis output; it does not save a repaired video, cut freezes or add motion. Check that the input opened, the filter ran and the process completed. Missing event lines after a failed command are not a valid zero result.
Record the conditions before comparing exports
The filter's n controls noise tolerance and d the duration before a freeze notification. Our 0.003 and 1.5-second values are chosen test settings. Comparing one file checked with a two-second threshold against another checked with 1.5 seconds mixes conditions.
Our ratio is a separate calculation: detected frozen seconds divided by total file duration, multiplied by 100. For example, four detected seconds in a 20-second file would be 20%; that is an illustration, not a measured result from the two exports above. Note how you handle a frozen segment that reaches the final frame.
Watch the subject after reading the number
This is an editing interpretation, rather than a quality score from FFmpeg. Pixel changes can come from the subject, captions, transitions or background. A number alone does not distinguish those sources.
- At the beginning, check that the intended subject and action are visible.
- In the middle, compare the actual action with the caption's promise.
- At the end, check for a long last-frame hold, black frame or missing sound.
After changing a crop, caption, shot order or ending, export again and check that new file. The previous file's passing result does not belong to the revision.
Common questions
Does a ratio below 15% mean YouTube approves the video?
No. The 15% limit used in the earlier internal check is our own threshold, not an FFmpeg quality standard or a YouTube approval rule. Content quality, rights and platform checks remain separate.
Can a silent file pass this video filter?
Yes: our two silent files completed the video analysis. That does not clear an audio problem in a video that needs sound.
Sources checked
Official freezedetect filter documentation · Official FFmpeg command documentation · Official ffprobe documentation. The original footage comes from NOAA's sea-cucumber video and NOAA's dumbo-octopus video. The controlled files are our own synthesized test patterns. AI tools assisted with writing and this English language update.
Related checks
Start with the free commands we run before an upload. Then see our seven-second test with a frozen background and moving captions. No affiliate links are included in this article.
Comments
Post a Comment