AI Video Defect Scanner (Black, Frozen, Silent, Corrupted) avatar

AI Video Defect Scanner (Black, Frozen, Silent, Corrupted)

Pricing

from $5.00 / 1,000 scanned videos

Go to Apify Store
AI Video Defect Scanner (Black, Frozen, Silent, Corrupted)

AI Video Defect Scanner (Black, Frozen, Silent, Corrupted)

Check a batch of video URLs before you publish them. Find black frames, frozen frames, silent or missing audio, wrong resolution and corrupted data, with the exact second of each problem. Check loudness, true peak, frame rate and black bars. Made for AI-generated video.

Pricing

from $5.00 / 1,000 scanned videos

Rating

0.0

(0)

Developer

gaocun

gaocun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Security

Limited permissions

Share

AI Video Defect Scanner

What does AI Video Defect Scanner do?

AI Video Defect Scanner checks a batch of video URLs before you publish or deliver them. It finds black frames, frozen frames, silent or missing audio, wrong resolution, and corrupted files, and it gives the exact second of each problem. It also checks delivery specs: loudness, true peak, frame rate, and black bars.

Video models sometimes return a black clip, a frozen clip, a clip with silent audio, or a clip at the wrong size. A person who checks hundreds of clips by eye misses these defects. This Actor checks them automatically.

To try it, click Start. The prefilled example scans two short sample videos in a few seconds.

  • Eleven checks in one decode pass, with start and end seconds for each defect.
  • Delivery specs. Set a target loudness (for example -14 LUFS for YouTube) and a frame rate. The Actor measures loudness and true peak for each video.
  • Made for AI-generated video. The thresholds come from tests on real AI video output, so static shots are not reported as frozen.
  • Batch scans. Give hundreds of URLs in one run. The Actor downloads up to 4 videos at the same time.
  • Share links work. You can use Dropbox and Google Drive share links.
  • Fair billing. You pay only for videos that the Actor scanned. A link that does not open is free. A repeated link is scanned and charged once.
  • All Apify platform features: API access, schedules, webhooks, and integrations with Make, Zapier, and other tools.

Who uses AI Video Defect Scanner?

  • Teams that generate video with AI models and must reject broken clips before they edit or publish.
  • Agencies and studios that check delivered files before they send them to a client.
  • Developers who add a quality gate to a video pipeline through the API.

How to use AI Video Defect Scanner

  1. Put links to your video files in Video URLs, one link per line. Use a direct file link, or a Dropbox or Google Drive share link.
  2. Turn off Audio track is required if your videos have no sound on purpose.
  3. Optional: set Expected resolution, for example 1080x1920 or 720p.
  4. Optional: set the delivery specs: Target loudness, Expected frame rate, and Black bars are a defect.
  5. Click Start.
  6. When the run ends, open the Output tab. Filter for ok: false to see the broken videos.

How much does it cost to scan videos?

The Actor uses the pay per event + usage model:

  • $0.005 per scanned video (event video-scanned). 1,000 videos cost $5.
  • Platform usage for the run. The default run uses 2048 MB of memory. In our test, 3 short videos used 0.004 compute units. Longer videos take longer to decode and use more. The price of a compute unit depends on your Apify plan.

A URL that cannot be downloaded or opened is not charged.

What does the scanner find?

CodeMeaning
BLACK_FRAMESThe picture is black for 0.1 s or longer.
FROZEN_FRAMESIdentical frames repeat for 0.5 s or longer.
NO_AUDIOThe file has no audio track. You can turn off this check.
SILENT_AUDIOThe file has an audio track, but 95% or more of it is silent (below -50 dB). Off when requireAudio is false.
RESOLUTION_MISMATCHThe size is not the size you expect. This check is optional.
CORRUPTEDThe decoder stops on broken data.
NO_VIDEO_STREAMThe file has no video stream.
LOUDNESS_MISMATCHThe integrated loudness is more than 1 LU from the target. Only when you set targetLoudness.
TRUE_PEAK_HIGHThe true peak is above -1 dBTP. Only when you set targetLoudness.
FRAME_RATE_MISMATCHThe frame rate is not the rate you expect. Only when you set expectedFrameRate.
BLACK_BARSEvery frame has black bars on its edges (letterbox or pillarbox). Only when rejectBlackBars is true.

The thresholds come from tests on real AI video output:

  • A static shot (a still landscape, a person who stands still) is not reported as frozen. Its frames differ by sensor noise and compression. A real freeze repeats identical frames.
  • A black section is reported once, as BLACK_FRAMES, and not again as FROZEN_FRAMES.
  • Silent sections are measured and returned in silentSegments. Short silent sections do not fail a video, because quiet speech and pauses are normal. Only a track that is almost fully silent is SILENT_AUDIO.
  • A silent track is reported once, as SILENT_AUDIO, and not again as LOUDNESS_MISMATCH.
  • A frame rate of 24 also accepts 23.976, and 30 also accepts 29.97. The tolerance is 0.5%.
  • Black bars are reported only when they are on the edges of every frame and take 2% or more of the width or the height. A dark scene does not count.
  • A phone video with a rotation flag is measured upright. A portrait video shows as 1080x1920, not 1920x1080.

Input

FieldRequiredDescription
videoUrlsYesDirect http(s) links to video files (mp4, mov, webm, mkv, and other formats), or Dropbox and Google Drive share links. Maximum size is 2 GB per file. A repeated link is scanned and charged once.
requireAudioNoReport NO_AUDIO and SILENT_AUDIO. Default is true.
expectedResolutionNoFor example 1080x1920, 1920x1080, or 720p.
targetLoudnessNoIntegrated loudness in LUFS, for example -14 (YouTube, Spotify, TikTok), -16 (Apple), -23 (EBU R128), or -24 (ATSC A/85).
expectedFrameRateNoFrames per second, for example 24, 25, 30, or 60.
rejectBlackBarsNoReport BLACK_BARS. Default is false.
{
"videoUrls": [
"https://example.com/clip-017.mp4",
"https://example.com/clip-018.mp4"
],
"requireAudio": true,
"expectedResolution": "1080x1920",
"targetLoudness": -14,
"expectedFrameRate": 30
}

Output

The Actor writes one dataset item for each URL. Items can be in a different order than the input.

[
{
"url": "https://example.com/clip-017.mp4",
"ok": false,
"issues": [
{ "code": "LOUDNESS_MISMATCH", "detail": "Integrated loudness is -21.4 LUFS, expected -14 LUFS" },
{ "code": "FROZEN_FRAMES", "detail": "Identical frames for 2.04 s", "startSeconds": 0.96, "endSeconds": 3.0 }
],
"durationSeconds": 3.0,
"width": 1080,
"height": 1920,
"hasAudio": true,
"frameRate": 30.0,
"loudnessLufs": -21.4,
"truePeakDb": -3.2,
"blackSegments": [],
"frozenSegments": [{ "startSeconds": 0.96, "endSeconds": 3.0 }],
"silentSegments": []
},
{
"url": "https://example.com/clip-018.mp4",
"ok": null,
"error": "The server returned HTTP 404."
}
]
  • ok: true: no defect was found.
  • ok: false: see issues.
  • ok: null: the file could not be downloaded or opened. The error field gives the reason. This item is not charged.
  • loudnessLufs and truePeakDb are always measured when the video has audio. They are null for digital silence.

How does the scan work?

The Actor downloads each file and decodes it once with FFmpeg. The black, freeze, silence, and EBU R128 loudness filters run in the same pass. The black bar filter runs in that pass too, when you turn it on. The Actor downloads the file first, because a streamed MP4 with its index at the end can decode to nothing and still look clean. Downloads run in parallel, and the Actor decodes the videos one by one.

Other Actors from the same author

ActorWhat it does
Script to Subtitle AlignerMakes SRT/VTT subtitles from a script, timed to the real speech, and reports skipped and misread lines.

FAQ

Why is my screen recording reported as frozen?

Screen recordings and slideshows can contain identical frames on purpose. For this content, read FROZEN_FRAMES as information, not as a defect.

Which loudness target do I use?

Use the target of the platform that gets the video. YouTube, Spotify, and TikTok use about -14 LUFS. Apple uses -16 LUFS. European broadcast uses -23 LUFS (EBU R128), and US broadcast uses -24 LUFS (ATSC A/85). If you do not set a target, the Actor still measures the loudness and does not report a defect.

Why does a working video show ok: null?

The Actor could not download or open the file. Check that the link returns the video file itself, not a web page or a login page. For a Google Drive or Dropbox link, share the file with "Anyone with the link". Signed links can expire before the run starts.

Does the Actor keep my videos?

No. The Actor deletes each file after the scan.

Can I use the Actor from my own code?

Yes. Use the Apify API or the Apify client for JavaScript or Python. The API tab of this Actor shows ready-to-use code.

Where can I report a problem?

Open an issue in the Issues tab of this Actor. Include the run ID, so we can find the run log.