| name | media-processing |
| description | Media processing utilities for images, audio, and video using FFmpeg and ImageMagick. Use when working with media conversion, optimization, or batch processing tasks. |
Media Processing
Tools and workflows for working with images, audio, and video in a repeatable, scriptable way using standard CLI tools (FFmpeg, ImageMagick) and Python helpers.
When to Use
- Working with image batches (thumbnails, resizing, format conversion)
- Converting media between formats (video ↔ audio ↔ image)
- Optimizing video size while maintaining acceptable quality
- Preparing assets for web, mobile, or archival use
- Designing or refining CLI workflows around FFmpeg/ImageMagick
Key Principles
- CLI-first workflows: Prefer command-line tools (FFmpeg, ImageMagick) and scripts that can be automated in CI or local tooling.
- Deterministic scripts: Scripts should be safe to run repeatedly with predictable output paths and options.
- Non-destructive defaults: Default to writing outputs to new files/directories rather than overwriting originals.
- Cross-platform friendly: Keep examples and scripts usable on Linux, macOS, and Windows where possible.
- Agent-agnostic: Guidance should work with any coding agent (Cursor, Claude, Copilot, etc.), not one specific environment.
Capabilities
-
Image workflows
- Batch resize and thumbnail generation
- Aspect-ratio–aware resizing (fit, fill, cover, exact)
- Optional watermarking
- Format conversion (e.g., PNG → WebP, JPEG)
-
Media conversion
- Detects media type (video, audio, image) from extension
- Uses FFmpeg for video/audio, ImageMagick for images
- Quality presets for
web, archive, and mobile use cases
- Batch conversion with dry-run and verbose modes
-
Video optimization
- Resolution and frame-rate adjustments
- Single-pass (CRF) or two-pass encoding
- Audio bitrate tuning
- Basic before/after comparison (size, bitrate, resolution, FPS)
Scripts
Scripts live in scripts/ and are intended to be run directly from a shell:
-
batch_resize.py
- Batch image resizing with multiple strategies (
fit, fill, cover, exact, thumbnail)
- Optional watermark overlay
- Supports parallel processing and dry-run mode
-
media_convert.py
- Unified conversion tool for video, audio, and images
- Automatically picks FFmpeg or ImageMagick
- Uses quality presets (
web, archive, mobile)
- Supports batch conversion and format changes (e.g.,
.mov → .mp4, .wav → .mp3)
-
video_optimize.py
- Focused on video size/quality trade-offs
- Resolution caps, FPS reduction, CRF tuning, optional two-pass encoding
- Optional comparison summary between original and optimized outputs
See scripts/requirements.txt for environment expectations (Python 3.10+, FFmpeg, ImageMagick) and system installation hints.
Usage Guidelines
References
For deeper tool-specific notes (placeholders for now, extend as needed), see:
references/ffmpeg-encoding.md – FFmpeg encoding patterns and flags
references/ffmpeg-filters.md – Common filter graphs (scale, crop, audio filters)
references/ffmpeg-streaming.md – Streaming-friendly settings and HLS/DASH tips
references/format-compatibility.md – Container/codec compatibility notes (web, mobile, desktop)
references/imagemagick-batch.md – Batch image processing patterns with ImageMagick
references/imagemagick-editing.md – Image editing operations (crop, resize, composite, text, etc.)