mcpField
F
ffmpeg-fundamentals-2025

ffmpeg-fundamentals-2025

github.com/josiahsiegelCreative & media5985 installsUpdated 19w ago
Repository

About ffmpeg-fundamentals-2025

ffmpeg-fundamentals-2025 is a foundational skill for people learning FFmpeg and handling common media tasks. It provides command references for transcoding, filters, and analysis, with detailed recipes in separate reference files.

Key features

  1. 01Common format conversion guidance
  2. 02Codec and quality settings
  3. 03Scale, crop, and rotate filters
  4. 04Media inspection with ffprobe
  5. 05Audio extraction and trimming
  6. 06Version and command capability checks

Use cases

  1. 01Convert between common video formats
  2. 02Adjust encoding quality or media dimensions
  3. 03Trim video and extract audio
  4. 04Check a file’s codecs and duration

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill ffmpeg-fundamentals-2025

After installing, type/ffmpeg-fundamentals-2025in Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
common-operations.md
filter-essentials.md
frame-manipulation.md
version-history.md
vulkan-compute-codecs.md
vvc-h266-encoding.md
whisper-transcription.md

Details

From the project README

FFmpeg Fundamentals (2025)

Foundational FFmpeg knowledge for 7.1 LTS and 8.0.1. This SKILL is a lean orchestrator; detailed recipes and tables live under references/.

When to Use This Skill

Use for foundational FFmpeg operations:

  • First-time FFmpeg users needing syntax help
  • Basic transcoding between formats (MP4, WebM, MKV, MOV)
  • Understanding codec options and quality settings
  • Simple filter operations (scale, crop, rotate)
  • File analysis with ffprobe

For specialized topics see related skills: hardware encoding -> ffmpeg-hardware-acceleration, streaming -> ffmpeg-streaming, Docker -> ffmpeg-docker-containers, advanced filter graphs -> ffmpeg-filter-complex-patterns.

Quick Reference

TaskCommand Pattern
Convert formatffmpeg -i input.ext output.ext
Set quality (CRF)-c:v libx264 -crf 23
Scale video-vf "scale=1920:1080"
Trim video-ss 00:00:10 -t 00:00:30
Extract audio-vn -c:a aac output.m4a
Probe fileffprobe -v error -show_format -show_streams file

Core Workflow

  1. Verify your FFmpeg version with ffmpeg -version. Prefer the latest stable (8.0.1) or the 7.1 LTS.
  2. Probe the input with ffprobe to inspect codecs, container, resolution, and duration.
  3. Decide whether to remux (-c copy) or transcode (specify encoders, quality).
  4. Pick encoders and quality settings (see Codec Reference below).
  5. Add filters as needed (see references/filter-essentials.md and references/frame-manipulation.md).
  6. Verify the output: re-probe, check duration, A/V sync, and pixel format.

Basic Command Syntax

ffmpeg [global_options] {[input_options] -i input} ... {[output_options] output} ...

Common examples:

# Basic transcode
ffmpeg -i input.mp4 output.mkv

# Specify codecs
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

# Copy streams without re-encoding (remux)
ffmpeg -i input.mkv -c copy output.mp4

# CRF quality mode
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

# Bitrate mode
ffmpeg -i input.mp4 -c:v libx264 -b:v 5M output.mp4

# Overwrite without prompting
ffmpeg -y -i input.mp4 output.mp4

# Show progress as parseable stats
ffmpeg -progress - -i input.mp4 output.mp4

For exhaustive option ordering rules, stream specifiers, and per-format option tables, see the ffmpeg-command-syntax skill.

Codec Reference (2025)

Video Codecs (Software)
CodecEncoderUse CaseQualitySpeed
H.264/AVClibx264Universal compatibilityExcellentMedium
H.265/HEVClibx2654K, HDR, storage efficiencyExcellentSlow
H.266/VVClibvvencNext-gen, 8KBestVery Slow
AV1libsvtav1, libaom-av1Web streaming, royalty-freeExcellentSlow-Medium
VP9libvpx-vp9WebM, YouTubeVery GoodSlow
ProResprores_ksProfessional editingLosslessFast
Hardware Encoders
PlatformH.264H.265AV1VVCFFv1
NVIDIAh264_nvenchevc_nvencav1_nvenc--
Intelh264_qsvhevc_qsvav1_qsv--
AMDh264_amfhevc_amfav1_amf--
Appleh264_videotoolboxhevc_videotoolbox---
Vulkanh264_vulkanhevc_vulkanav1_vulkan (8.0+)-ffv1_vulkan (8.0+)
Hardware Decoders (FFmpeg 8.0+)
PlatformVVC/H.266VP9ProRes RAW
VAAPIvvc (8.0+)Yes-
QSVvvc_qsv (7.1+)Yes-
Vulkan-vp9 (8.0+)Yes (8.0+)
Audio Codecs
CodecEncoderUse CaseBitrate Range
AACaac, libfdk_aacUniversal, streaming96-320 kbps
MP3libmp3lameLegacy compatibility128-320 kbps
OpuslibopusVoIP, streaming, WebM32-256 kbps
FLACflacLossless archival~900 kbps
AC3ac3DVD, Blu-ray384-640 kbps
EAC3eac3Streaming, Dolby Digital+192-768 kbps

Probing & Analysis

# Get media info as JSON
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

# Get duration
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4

# Get resolution
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 input.mp4

# Get codec
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.mp4

# Validate file
ffprobe -v error input.mp4 && echo "Valid" || echo "Invalid"

Best Practices

Performance
  1. Use -threads 0 to auto-detect optimal thread count.
  2. Place -ss before -i for fast seeking (may be less accurate); after -i for frame-accurate seek.
  3. Use -c copy when possible to avoid re-encoding.
  4. Use hardware acceleration when available.
Quality
  1. Prefer CRF over bitrate for single-pass encoding.
  2. Use -preset slow or slower for better compression.
  3. Use -tune options (film, animation, grain) when appropriate.
  4. Keep -pix_fmt yuv420p for broad compatibility.
Compatibility
  1. Use -movflags +faststart for web MP4 files.
  2. Use -vtag hvc1 for HEVC on Apple devices.
  3. Test on target devices before mass conversion.
  4. Provide fallback formats for older browsers.
Error Prevention
  1. Test commands on a sample file first.
  2. Use -report for detailed logging.
  3. Check output file size and duration.
  4. Verify A/V sync after conversion.

Capability Discovery

ffmpeg -encoders          # List encoders
ffmpeg -decoders          # List decoders
ffmpeg -formats           # List formats
ffmpeg -filters           # List filters
ffmpeg -hwaccels          # List hardware acceleration methods
ffmpeg -h encoder=libx264 # Encoder-specific options

Exit codes:

  • 0: success
  • 1: error (check stderr)
  • 255: interrupted (Ctrl+C)

Reference Map

Detailed recipes, option tables, and FFmpeg 8.0-specific guides:

  • references/version-history.md - Full FFmpeg 8.0 / 7.1 LTS feature lists, update strategy, official resources
  • references/common-operations.md - Format conversion, scaling, trimming, concat, audio, subtitles, Whisper recipe, image ops, output optimization (web/iOS/Android)
  • references/filter-essentials.md - Video filters (-vf), audio filters (-af), complex filtergraphs, filter_complex syntax reference
  • references/frame-manipulation.md - Frame rate, setpts, select, thumbnails, tiles, freezing, looping, reversing
  • references/whisper-transcription.md - Whisper AI filter for speech recognition and subtitle generation
  • references/vvc-h266-encoding.md - VVC/H.266 encoding with libvvenc plus hardware decode
  • references/vulkan-compute-codecs.md - Vulkan compute-based codecs (FFv1, AV1, VP9, ProRes RAW)

For deeper dives: ffmpeg-filter-complex-patterns, ffmpeg-hardware-acceleration, ffmpeg-streaming, ffmpeg-captions-subtitles, ffmpeg-audio-processing.

Comments

Markdown supported