video-utils

VIDEO / LOCAL OPERATIONS

From source reel
to verified output.

Remux containers, encode viewing copies, inspect streams, and find picture or audio faults. Batch operations for the life of a video library.

FORMAT DESK

MATROSKA · MP4 · WEBM · FFV1 · H.264 · HEVC

WORK LOCALLY

Inspect first.
Write deliberately.

Clone the repository and install the required tools. Run this command to preview the work. Add --apply when the plan is right.

TERMINAL / PREVIEW
bin/video-utils video-to-h264 --output-dir ./viewing ./masters

Sources retained · Existing outputs refused

THE TOOL INDEX

Choose an operation

37 commands

libraryRead only

library-summary

Summarize file counts, byte sizes, empty files, and extensions without reading contents.

JSON to stdout
libraryRead only

library-dupes

Find exact SHA-256 duplicates without deleting files.

JSON to stdout
libraryRead only

hash-manifest

Print a JSON SHA-256 manifest for the input tree.

JSON to stdout
libraryRead only

hash-verify

Verify file presence and hashes against a JSON manifest.

JSON to stdout
libraryRead only

tree-diff

Compare file hashes and presence against another tree.

JSON to stdout
libraryRead only

path-audit

Report filename portability issues.

JSON to stdout
conversionCreates a copy

mp4-to-mkv

Copy all streams from MP4 to MKV without re-encoding.

--apply to write
conversionCreates a copy

mov-to-mkv

Copy all streams from MOV to MKV without re-encoding.

--apply to write
conversionCreates a copy

avi-to-mkv

Copy all streams from AVI to MKV without re-encoding.

--apply to write
conversionCreates a copy

webm-to-mkv

Copy all streams from WEBM to MKV without re-encoding.

--apply to write
conversionCreates a copy

ts-to-mkv

Copy all streams from TS to MKV without re-encoding.

--apply to write
conversionCreates a copy

mkv-to-mp4

Copy all streams from MKV to MP4 without re-encoding.

--apply to write
conversionCreates a copy

mov-to-mp4

Copy all streams from MOV to MP4 without re-encoding.

--apply to write
conversionCreates a copy

video-to-h264

Create an H.264/AAC MP4 viewing copy.

--apply to write
conversionCreates a copy

video-to-hevc

Create an HEVC/AAC MP4 viewing copy.

--apply to write
conversionCreates a copy

video-to-webm

Create a VP9/Opus WebM viewing copy.

--apply to write
conversionCreates a copy

video-to-ffv1

Create an FFV1/FLAC Matroska copy. Does not restore lost quality.

--apply to write
transformCreates a copy

video-trim

Re-encode a clip from a start time and duration.

--apply to write
transformCreates a copy

video-resize

Fit video inside a bounding box with even dimensions.

--apply to write
transformCreates a copy

video-mute

Copy the first video stream without audio.

--apply to write
transformCreates a copy

video-strip

Re-encode without global metadata or chapters.

--apply to write
transformCreates a copy

video-deinterlace

Apply the yadif deinterlacing filter.

--apply to write
transformCreates a copy

video-rotate

Rotate video 90 degrees clockwise.

--apply to write
transformCreates a copy

video-audio-extract

Extract the first audio stream to FLAC.

--apply to write
transformCreates a copy

video-poster

Export a PNG frame at a chosen time.

--apply to write
transformCreates a copy

video-contact-sheet

Export twelve sampled frames in a 4 by 3 PNG grid.

--apply to write
auditRead only

video-metadata

Report container, streams, tags, and chapters.

JSON to stdout
auditRead only

video-streams

List stream codec and format details.

JSON to stdout
auditRead only

video-chapters

List chapter time ranges and titles.

JSON to stdout
auditRead only

video-verify

Decode video and audio streams with errors treated as failures.

JSON to stdout
auditRead only

video-audio-audit

List audio tracks, codecs, and channel layouts.

JSON to stdout
auditRead only

video-hdr-audit

Report color signaling and HDR side data.

JSON to stdout
auditRead only

video-black-detect

Detect black intervals using FFmpeg thresholds.

JSON to stdout