Encode, inspect, analyze, and deliver in one app

Video Commander wraps FFmpeg, ffprobe, MediaInfo, VMAF, and an ISOBMFF parser in a single desktop workspace. Below is what each module does and which formats it reads.

App screenshot
Inspect
Open any local file, remote URL, or file in Amazon S3, Cloudflare R2 & MinIO and explore its full structure: container format, codec parameters, stream metadata, MP4 box hierarchy, hex dump, and frame-level sample tables.
Color & HDR
Read how a file signals colour: CICP primaries, transfer, and matrix, plus full or limited range. Classifies HDR10+ and Dolby Vision, reports MaxCLL, MaxFALL, and mastering display metadata, and falls back to the SPS VUI in the bitstream when the container carries no colr box.
Subtitles & Captions
Decode embedded tx3g, WebVTT, and TTML/IMSC cues with counts, timing, and language, and detect CEA-608/708 captions riding inside the video bitstream. Flags the common problems: missing language tags, null-padded 608 pairs, and caption dropouts.
Events
Find the ad-insertion markers in a stream. Decodes SCTE-35 from emsg boxes with splice points, break durations, and event IDs, shows segment-relative timing, and tells you when a splice command is encrypted rather than silently skipping it.
DRM
See which tracks are protected and how. Reports the per-track encryption scheme and version, separates clear tracks from encrypted ones, and decodes the pssh boxes to show which DRM systems a file is packaged for.
Remote Files
Browse your Amazon S3, Cloudflare R2 & MinIO buckets right inside the app and load any object into Inspect, Player, or Analyze without a full download. Sign in with your existing AWS profiles, and write finished encodes back to your bucket.
Convert
A clean FFmpeg front-end with full control over codec, resolution, bitrate, and stream mapping. Supports software encoders including SVT-AV1 for AV1, hardware encoders (VideoToolbox, NVENC, AMF, QSV), a full video filter pipeline, and shows the exact FFmpeg command before you run it.
Presets
Start from one of 30+ built-in presets, grouped by codec family and filtered as you type, including targets for YouTube, Vimeo, TikTok, Instagram Reels, X, and Discord. Save your own settings as a named preset, and import or export them as JSON to share with your team.
Batch
Queue multiple files for encoding in a single batch. Each file gets its own job with independent progress tracking, processed sequentially with shared encode settings. Set it up and walk away.
Filters
Build a video filter chain without touching FFmpeg arguments. Deinterlace, denoise, sharpen, deband, deshake, deflicker, crop, rotate, and adjust brightness, contrast, saturation, and gamma, each with configurable parameters.
Deliver
Package a master file into HLS or DASH adaptive bitrate output in one step. Configure rendition ladders, segment duration, and content encryption, and get a CDN-ready folder structure out.
Analyze
Score an encode against its source with VMAF v1 or v0.6.1, with HDR sources tone mapped to SDR. The Summary reports percentiles, harmonic mean, a score histogram, and the lowest-scoring moments, alongside PSNR, SSIM, MS-SSIM, and CAMBI. Save it as PNG or PDF, or export the data as CSV or JSON.
Compare
Put up to three VMAF analyses next to a baseline. A scorecard shows each run's change in mean, percentiles, minimum, bitrate, and size, and every run shares a per-frame chart with its difference from the baseline underneath. Runs scored with a different model or reference are flagged and kept off the charts.
Frame Comparison
Put any frame of a VMAF run next to its source. Drag a wipe across the two, read an amplified difference map, or blink between them in place. Jump straight to the worst-scoring frame, with zoom and pan locked across both images.
Themes
Thirteen themes, including light, dark, and a System option that follows macOS. Eleven community palettes ship alongside them: the four Catppuccin flavours, three Rosé Pine variants, three Tokyo Night variants, and Nord. Native file dialogs and context menus follow your choice.
Preview
Play back local files or remote streams directly in the app. Supports MP4, WebM, MOV, MKV, and adaptive streaming formats including HLS and DASH.
Jobs
All long-running tasks, from encodes to quality analysis to packaging, run as tracked jobs with live progress, elapsed time, and full log output. VMAF results and exports are accessible directly from the job detail view.
Manifests
Read HLS and DASH manifests as structure rather than raw text. Break a presentation into its periods, adaptation sets, and representations, with the codec, resolution, and bitrate behind every rendition, and drop to the underlying XML, JSON, or raw playlist whenever you need it.
Validate
Check HLS and DASH manifests for spec compliance and delivery issues. Detects missing segments, malformed playlists, codec inconsistencies, and more, with per-rendition filtering and optional URL reachability probing.
FFmpeg
Use the FFmpeg on your PATH, let the app install a verified build for you, or point at a custom path, and switch between them whenever you like. Every source verifies live and lists what that build actually supports: encoders, containers, hardware acceleration, and build flags.
Tools
Standalone utilities that do not need a file open. The PSSH decoder takes a base64 pssh box from a manifest, a packager log, or a bug report and tells you which DRM system it belongs to and what it contains.

Deep media inspection

Open any local file, remote URL, or file in Amazon S3, Cloudflare R2 & MinIO and explore its full structure: container format, codec parameters, stream metadata, MP4 box hierarchy, hex dump, and frame-level sample tables, down to HDR signalling, embedded captions, ad markers, and DRM protection.

Overview

  • Major brand & compatible brands
  • File size & bitrate
  • Duration & timescale
  • Fragmentation status
  • Faststart status & one-click remux
  • Timeline gap detection
  • Per-track stream table
  • Track ID, type, codec
  • Resolution & frame rate
  • Audio sample rate & channels
  • Encrypted-track flags
  • Language & sample count

Box Tree

  • Full ISOBMFF / MP4 box hierarchy
  • Box type, size, offset
  • Parsed field values per box type
  • Hex dump of raw box bytes
  • Expandable nested structure
  • Cross-link to Box Graph

Box Graph

  • Visual DAG of box relationships
  • Click-through to Box Tree
  • Container and leaf nodes
  • Zoomable & pannable canvas

Sample Tables

  • Frame-level sample index
  • Presentation timestamp (PTS)
  • Decode timestamp (DTS)
  • Sample size & file offset
  • Sync / keyframe flags
  • Hex preview of the sample bytes
  • Paginated for large tracks
  • Per-track selection

Color & HDR

  • CICP color primaries
  • Transfer characteristics
  • Matrix coefficients
  • Full / limited range
  • HDR10+ (ST 2094-40) detection
  • Dolby Vision profile & level
  • Dolby Vision layer configuration
  • MaxCLL / MaxFALL
  • Mastering display primaries
  • Mastering luminance range
  • Falls back to the SPS VUI with no colr box

GOP Structure

  • GOP count & length
  • Keyframe interval
  • Sync sample count
  • Frame types (I / P / B)
  • Sync verification
  • Broken sample detection
  • Paged across every GOP

Subtitles & Captions

  • tx3g, WebVTT & TTML / IMSC cues
  • Cue & sample counts
  • First / last cue timing
  • Track duration & language
  • Missing language tag warnings
  • Embedded CEA-608 / 708 detection
  • 608 fields & 708 DTVCC presence
  • Caption dropout warnings
  • Null-padding detection

Events

  • SCTE-35 ad-insertion markers
  • Splice points & out-of-network flags
  • Break duration
  • Event ID & splice event ID
  • Scheme ID URI
  • Segment-relative timing
  • emsg message size
  • Encrypted splice detection

DRM

  • Per-track encryption scheme
  • cenc & cbcs, with scheme version
  • Clear vs protected tracks
  • Decoded pssh boxes per DRM system
  • Protection findings
  • Standalone PSSH decoder in Tools

HLS & DASH Manifests

  • HLS master & media playlists
  • Variant stream table
  • Bandwidth, resolution, codecs
  • Segment list with durations
  • Encryption key info
  • DASH MPD periods & adaptation sets
  • Representation details
  • SegmentTemplate attributes

Sources

  • Local file paths
  • Remote http(s):// URLs
  • Amazon S3, Cloudflare R2 & MinIO (s3://)
  • HLS .m3u8 manifests
  • DASH .mpd manifests

Supported file formats

Every supported format opens directly: local file, remote URL, or file in Amazon S3, Cloudflare R2 & MinIO. Inspection views adapt automatically based on the container type.

Format
Overview
Tree
Graph
Samples
Color
GOP
Subtitles
Events
DRM
Manifest
Validator
.mp4MPEG-4
.movQuickTime
.m4viTunes Video
.mkvMatroska
.aviAVI
.webmWebM
.mkaMatroska Audio
.m3u8HLS Playlist
.m3uHLS (legacy)
.mpdDASH Manifest

Color, GOP, Subtitles, Events, and DRM read structures that only the ISOBMFF family carries, and each one appears when the file actually holds that data. A clip with no captions shows no Subtitles tab.

Comprehensive encoding control

Every significant FFmpeg encoding option is exposed through a structured UI, so there are no flags to memorise. See the exact command before you run it.

Video Codecs

  • H.264 (libx264)
  • H.265 (libx265)
  • VP9
  • AV1 (SVT-AV1)
  • AV1 4:2:2/4:4:4, 12-bit (libaom)
  • H.264 VideoToolbox
  • H.265 VideoToolbox
  • H.264 NVENC
  • H.265 NVENC
  • AV1 NVENC
  • H.264 AMF
  • H.265 AMF
  • H.264 QSV
  • H.265 QSV
  • AV1 QSV
  • Copy (passthrough)

Quality & Bitrate

  • CRF (constant quality)
  • Target VMAF
  • 1-pass
  • 2-pass
  • Target bitrate
  • Min / max rate
  • Buffer size
  • GOP size
  • Profile
  • Level
  • Preset
  • Tune
  • Hardware quality (VBR/CQ)

Resolution & Format

  • 4K (3840×2160)
  • 2K (2560×1440)
  • 1080p
  • 720p
  • 480p / 360p / 240p
  • Custom width × height
  • Aspect ratio
  • Frame rate
  • Pixel format
  • Scaling algorithm
  • MP4 fast start

Filters

  • Deinterlace
  • Denoise (hqdn3d / NLMeans)
  • Sharpen
  • Deband
  • Deshake
  • Deflicker
  • Dejudder
  • Crop
  • Rotate & flip
  • Brightness / contrast
  • Saturation / gamma

Audio

  • AAC
  • MP3
  • Opus
  • FLAC
  • Copy (passthrough)
  • Mono / stereo / 5.1 / 7.1
  • Bitrate
  • Sample rate
  • Audio delay
  • EBU R128 loudnorm
  • Audio contrast

Presets

  • 30+ built-in presets
  • Grouped by codec family
  • Searchable picker
  • Platform targets: YouTube, Vimeo
  • TikTok, Instagram Reels, X, Discord
  • Save your own presets
  • Import & export presets as JSON

FFmpeg

  • Use the build on your PATH
  • Or let the app install one for you
  • Or point at a custom path
  • Live path verification
  • Per-source capability listing
  • Video, audio & subtitle encoders
  • Containers (muxers)
  • Hardware acceleration support
  • Build configuration flags
  • Automatic install on macOS & Windows

Advanced

  • Container: MP4, MKV, MOV, AVI, WebM
  • Custom codec & container entry
  • Stream mapping
  • Trim (start / end)
  • Extra FFmpeg args
  • Live command preview
  • Preview encode before committing
  • Read from & write back to S3
  • Real-time progress
  • Full job log output

Flexible packaging options

Go from a master file to a delivery-ready package in one step. Configure rendition ladders, segment settings, and content protection without touching the command line.

Output Formats

  • HLS (.m3u8)
  • DASH (.mpd)
  • HLS + DASH simultaneously
  • Progressive MP4
  • CDN-ready folder structure
  • master.m3u8 / manifest.mpd

Adaptive Streaming

  • Multi-rendition ladder
  • 240p · 360p · 480p
  • 720p · 1080p · 1440p · 4K
  • Custom width × height
  • Per-rendition bitrate
  • Video codec: H.264, H.265, AV1
  • Audio codec: AAC, MP3, Opus

Segment Control

  • Segment duration (2–10 s)
  • VOD playlist type
  • Live playlist type
  • HLS version 6 / 7
  • DASH live profile
  • DASH on-demand profile

Progressive Download

  • Multi-quality MP4 output
  • Output name pattern
  • {name}, {quality}, {date} tokens
  • Auto-named from source file

Content Protection

  • AES-128 segment encryption
  • Key rotation interval
  • Custom key delivery URL

Workflow

  • Quick-start delivery presets
  • Web Streaming preset
  • Mobile Optimized preset
  • Progressive Download preset
  • Premium Streaming preset
  • Real-time packaging progress
  • Full job log output

HLS & DASH validation

Check manifests for spec compliance and delivery problems before they reach your CDN or players. Findings are surfaced with severity levels and per-rendition filtering, with optional URL reachability probing.

HLS Checks

  • HLS_001: no EXT-X-STREAM-INF renditions
  • HLS_002: missing BANDWIDTH attribute
  • HLS_003: missing CODECS attribute
  • HLS_004: differing CODECS across renditions
  • HLS_005: missing EXT-X-TARGETDURATION
  • HLS_006: segment duration exceeds TARGETDURATION
  • HLS_007: EXT-X-VERSION absent or < 3
  • HLS_008: EXT-X-PLAYLIST-TYPE not set
  • HLS_009: discontinuity without EXT-X-DISCONTINUITY-SEQUENCE
  • HLS_010: media playlist has zero segments

DASH Checks

  • DASH_001: missing mediaPresentationDuration
  • DASH_002: AdaptationSet has no Representations
  • DASH_003: Representation missing @codecs
  • DASH_004: Representation missing @bandwidth
  • DASH_005: SegmentTemplate missing @initialization or @media
  • DASH_006: period adjacency gap detected
  • DASH_007: minBufferTime not set
  • DASH_008: duplicate mimeType without @lang differentiation

Severity Levels

  • Error: spec violation, likely broken playback
  • Warning: non-fatal, may cause issues
  • Info: advisory, worth reviewing

URL Probing

  • HTTP reachability check per segment
  • HTTP status code reporting
  • Latency measurement (ms)
  • Unreachable segment detection
  • Sampled probe rate
  • Average latency summary

Manifest Tree

  • Visual manifest structure tree
  • Master → variant → segment hierarchy
  • DASH period → adaptation set → representation
  • Click to filter findings by node
  • Per-node finding indicators

Sources

  • Local .m3u8 and .mpd files
  • Remote http(s):// URLs
  • Auto-detected protocol (HLS / DASH)
  • Re-validate on demand

VMAF quality analysis

Score an encode against its source with Netflix's VMAF v1 or v0.6.1 models, including HDR sources tone mapped to SDR. The Summary reports percentiles, a score histogram, and the lowest-scoring moments, Compare puts up to three runs next to a baseline, and Frames puts any frame against its source to show what the score is reacting to.

Models

  • VMAF v1 1080p (3H)
  • VMAF v1 Phone (5H)
  • VMAF v1 4K (1.5H)
  • VMAF v1 4K TV (3H, scores to 110)
  • 50/60 fps variants
  • VMAF v0.6.1
  • VMAF v0 4K

Analysis Options

  • Reference video (source/mezzanine)
  • Distorted video (encoded output)
  • HDR to SDR tone mapping (BT.2390, Hable, Möbius, Reinhard)
  • HDR/SDR mismatch warning
  • PSNR, SSIM, MS-SSIM, CAMBI
  • Frame sampling (every 2nd, 4th, or 8th frame)
  • Trim: start & end time
  • Multi-core scoring
  • Scaling algorithm

Summary

  • Mean and harmonic mean
  • 1st and 5th percentile
  • Min, max, standard deviation
  • Score histogram
  • Lowest-scoring moments
  • Reference and encode properties
  • Save as PNG or PDF
  • CSV and JSON export

Compare

  • Up to three runs against a baseline
  • Scorecard with change from baseline
  • Bitrate and file size
  • Share of frames below 80
  • Shared per-frame VMAF chart
  • Change-from-baseline chart
  • Mismatched runs flagged

Frame Comparison

  • Side by side
  • Draggable wipe
  • Amplified difference map
  • A/B blink
  • Jump to worst frame
  • Locked zoom and pan
  • Per-frame VMAF score

Job History

  • Persistent job history
  • Reload previous results
  • Quick-select recent encode outputs
  • Full log output per run

Stop stitching together CLI tools.

Video Commander is free for personal use. For client and commercial work, Pro is $39. One payment, every future update included.

App screenshot