plugins/ffmpeg-core/skills/ffmpeg-fundamentals-2025/SKILL.md
Complete FFmpeg core knowledge system for FFmpeg 7.1 LTS and 8.0.1 (latest stable, released 2025-11-20). PROACTIVELY activate for: (1) Basic transcoding and format conversion, (2) Command syntax questions, (3) Codec selection (H.264, H.265, VVC, AV1, VP9, APV), (4) Quality settings (CRF, bitrate, presets), (5) Video/audio filter chains, (6) Trimming, splitting, concatenating, (7) Resolution scaling and aspect ratios, (8) FFmpeg 8.0 features (Whisper AI, Vulkan codecs, APV, WHIP), (9) Version checking and update guidance. Provides: Command syntax reference, codec comparison tables, filter examples, format conversion recipes, probing commands, Whisper transcription examples, version checking commands. Ensures: Correct FFmpeg usage with 2025 best practices and latest stable version.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace ffmpeg-fundamentals-2025Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Foundational FFmpeg knowledge for 7.1 LTS and 8.0.1. This SKILL is a lean orchestrator; detailed recipes and tables live under references/.
Use for foundational FFmpeg operations:
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.
| Task | Command Pattern |
|------|-----------------|
| Convert format | ffmpeg -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 file | ffprobe -v error -show_format -show_streams file |
ffmpeg -version. Prefer the latest stable (8.0.1) or the 7.1 LTS.ffprobe to inspect codecs, container, resolution, and duration.-c copy) or transcode (specify encoders, quality).references/filter-essentials.md and references/frame-manipulation.md).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 | Encoder | Use Case | Quality | Speed | |-------|---------|----------|---------|-------| | H.264/AVC | libx264 | Universal compatibility | Excellent | Medium | | H.265/HEVC | libx265 | 4K, HDR, storage efficiency | Excellent | Slow | | H.266/VVC | libvvenc | Next-gen, 8K | Best | Very Slow | | AV1 | libsvtav1, libaom-av1 | Web streaming, royalty-free | Excellent | Slow-Medium | | VP9 | libvpx-vp9 | WebM, YouTube | Very Good | Slow | | ProRes | prores_ks | Professional editing | Lossless | Fast |
| Platform | H.264 | H.265 | AV1 | VVC | FFv1 | |----------|-------|-------|-----|-----|------| | NVIDIA | h264_nvenc | hevc_nvenc | av1_nvenc | - | - | | Intel | h264_qsv | hevc_qsv | av1_qsv | - | - | | AMD | h264_amf | hevc_amf | av1_amf | - | - | | Apple | h264_videotoolbox | hevc_videotoolbox | - | - | - | | Vulkan | h264_vulkan | hevc_vulkan | av1_vulkan (8.0+) | - | ffv1_vulkan (8.0+) |
| Platform | VVC/H.266 | VP9 | ProRes RAW | |----------|-----------|-----|------------| | VAAPI | vvc (8.0+) | Yes | - | | QSV | vvc_qsv (7.1+) | Yes | - | | Vulkan | - | vp9 (8.0+) | Yes (8.0+) |
| Codec | Encoder | Use Case | Bitrate Range | |-------|---------|----------|---------------| | AAC | aac, libfdk_aac | Universal, streaming | 96-320 kbps | | MP3 | libmp3lame | Legacy compatibility | 128-320 kbps | | Opus | libopus | VoIP, streaming, WebM | 32-256 kbps | | FLAC | flac | Lossless archival | ~900 kbps | | AC3 | ac3 | DVD, Blu-ray | 384-640 kbps | | EAC3 | eac3 | Streaming, Dolby Digital+ | 192-768 kbps |
# 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"
-threads 0 to auto-detect optimal thread count.-ss before -i for fast seeking (may be less accurate); after -i for frame-accurate seek.-c copy when possible to avoid re-encoding.-preset slow or slower for better compression.-tune options (film, animation, grain) when appropriate.-pix_fmt yuv420p for broad compatibility.-movflags +faststart for web MP4 files.-vtag hvc1 for HEVC on Apple devices.-report for detailed logging.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:
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 resourcesreferences/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 referencereferences/frame-manipulation.md - Frame rate, setpts, select, thumbnails, tiles, freezing, looping, reversingreferences/whisper-transcription.md - Whisper AI filter for speech recognition and subtitle generationreferences/vvc-h266-encoding.md - VVC/H.266 encoding with libvvenc plus hardware decodereferences/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.
development
Use for Clerk sessions, tokens, webhooks, orgs, and security. PROACTIVELY activate for session tokens, JWT templates, getToken(), custom claims, pending sessions, multi-session UX, organizations, roles, permissions, system vs custom permissions, features/plans, MFA/passkeys/password policy/bot protection, Clerk webhooks, Svix signatures, verifyWebhook(), user/org sync, retries/replays, environment variables, custom domains, secret rotation, logs, and auth security reviews. Provides token semantics, webhook idempotency, authorization defaults, and hardening checklist.
tools
Use for Clerk in Next.js. PROACTIVELY activate for @clerk/nextjs setup, App Router auth()/currentUser(), clerkMiddleware(), proxy.ts/middleware.ts, createRouteMatcher(), protected pages/layouts/Route Handlers/Server Actions/API routes/tRPC, auth.protect() role/permission/token checks, ClerkProvider placement, server-only clerkClient, Link prefetch, redirects, 401/404 auth failures, custom domains, __clerk proxy paths, and deployment gotchas. Provides file patterns, server/client boundary rules, matcher templates, and production checks.
development
Use for Clerk frontend auth flows. PROACTIVELY activate for React, JavaScript, Vue, Nuxt, Astro, Expo, React Router, TanStack React Start, or SPA setup; ClerkProvider and publishable-key wiring; SignIn/SignUp/UserButton/UserProfile/OrganizationSwitcher; custom useUser/useAuth/useClerk/useSignIn/useSignUp/useSession/useOrganization flows; multi-session UX; cross-origin getToken() fetches; loading states, redirects, routing, CORS/cookies, or hydration bugs. Provides SDK selection, UI patterns, token-fetch templates, and frontend gotchas.
development
Use for Clerk dev/prod readiness, deployment, and multi-language implementation planning. PROACTIVELY activate for environment variables, pk_test/sk_test vs pk_live/sk_live, local dev, preview/staging/prod instances, domains/DNS, redirects, OAuth credentials, custom domains/proxy, authorizedParties, CSP, CORS/cookies, webhooks/tunnels, Vercel/Netlify/Cloudflare/API gateways, monitoring/troubleshooting, and backends in Node/Express/Fastify, Python/FastAPI/Django/Flask, Go, Ruby/Rails, Java/Spring, .NET, PHP/Laravel. Provides checklists, rollout plans, and language-portable patterns.