VideoAnalyzer – FFmpeg-Based Video Intelligence for .NET

A .NET 9 video toolchain on FFmpeg/ffprobe: probing, proxies and keyframes, broadcast QC, transcription, 360° stitching, social reframing and AI search embeddings — deterministic across machines.

Overview

VideoAnalyzer is the video counterpart to AudioAnalyzer: one shared .NET 9 library and CLI that wraps a current FFmpeg/ffprobe build, replacing a set of legacy DirectShow-based tools whose behaviour depended on whichever codec packs happened to be installed on a machine. Every probe, extraction and transcode now behaves identically on every host.

Capabilities

Probing & proxies

  • Container, codec, resolution, frame rate, bitrate and duration — including MXF, which the legacy toolchain could not read at all
  • Single-frame keyframe grabs and scene-detected multi-keyframe extraction for storyboards and chapter markers
  • MP4/H.264 proxy transcodes with fixed presets, ready for browser playback and editing

Quality control in a single pass

  • Black-frame, frozen-frame and silent-audio detection with start/end/duration
  • EBU R128 loudness (integrated, range, true peak)
  • Interlace and letterbox/pillarbox detection to drive transcode-profile decisions
  • Reference-slate/leader detection, shot-length and cut-rate statistics

Content understanding

  • Whisper spoken-language identification and timecoded transcription, plus a scene-level transcript ("what was said during each shot?")
  • Burned-in caption and timecode OCR
  • Per-keyframe CLIP embeddings and zero-shot classification — the building blocks for text-to-video search
  • Perceptual-hash near-duplicate detection and SHA-256 integrity checksums
  • Container metadata extraction with GPS privacy handling

Derivatives

  • Contact sheets and animated GIF previews for asset lists and hover previews
  • Dual-fisheye 360° stitching
  • Social-media reframing to 9:16, 1:1 and 4:5

Engineering highlights

  • "Run the real tool, parse its real output" — no reimplemented codecs, no hidden behaviour
  • FFmpeg build fetched on demand rather than checked into source control
  • Results emitted as routed JSON under a fixed persistence contract, shared with AudioAnalyzer and ImageAnalyzer
  • Verified against real and synthetic samples in an xUnit suite

Ready to Start Your Project?

Get in touch to discuss your software development or IT consulting needs.

Contact Us