About This Site
FFmpeg Cookbook is a small, independently operated site that bundles free in-browser tools for common video tasks (compress, GIF, audio extract, SNS resize, etc.) with a reverse-lookup FFmpeg command reference. The goal is to help you finish video work as quickly and accurately as possible — whether you're a beginner or a daily FFmpeg user.
Site at a glance (June 2026)
These numbers move as articles are added or revised. The current state lives on the articles index and the tools index.
What this site offers
Who this is for
- People who want to shrink, convert, or resize videos for SNS without installing software
- Creators dealing with Discord, YouTube, TikTok, or Reels size and aspect-ratio limits
- Developers and engineers who need a quick FFmpeg command reference
- Anyone troubleshooting an FFmpeg error or unexpected output
How this site is built and how AI is used
FFmpeg Cookbook is operated by a single maintainer. Article research, drafting, and translation are AI-assisted (mainly ChatGPT, Claude, and GitHub Copilot for code), but every published article goes through a human editorial pass before it reaches the site.
Specifically, here is what AI does and doesn't do:
- AI does — first-draft outlines, paraphrasing, JA↔EN translation, FAQ generation, and explaining FFmpeg's official documentation in plainer language.
- The maintainer does — verifying commands against real FFmpeg output
(
scripts/verify-ffmpeg-commands.mjsruns the executablebashexamples on published articles against a real FFmpeg binary and flags any non-zero exit), reviewing the skipped environment-dependent cases, choosing which articles to publish, reviewing factual accuracy, and editing AI-drafted content before merging. - What we don't ship — we do not publish unverified AI-only content. Command
snippets that fail the verification script are fixed, converted to explanatory
text, or kept unpublished until reviewed. Articles where the maintainer has not done a manual review remain in thepublished: falsestate until reviewed.
Where benchmark numbers appear (file sizes, encoding speed comparisons, VMAF scores), they are presented as representative ranges based on documented libx264 behaviour and our own informal tests, not single-trial measurements. If you need exact numbers for your specific source, run the equivalent FFmpeg command locally — every browser-tool page shows it.
Runnable commands shown in bash blocks are executed against real FFmpeg by our
verification script (verify-ffmpeg-commands.mjs); font, LUT, and caption-file
examples are verified by substituting test fixtures. Commands that need a specific runtime
(GPU, network, OS-specific paths, shell features) and intentionally incorrect or deprecated
commands are shown in text blocks and classified as out of scope for those checks.
Editorial principles
📌 Primary sources first
FFmpeg official documentation, relevant RFCs (RFC 6381 codec parameters, RFC 7232 conditional requests, etc.), ITU-T H.264 / H.265 specs, Apple HLS specs, and Android MediaCodec API docs are referenced directly. Source URLs go into the article's primarySources frontmatter field so claims can be traced back to the spec, not to a secondary summary.
🔧 Runnable bash commands are verified against real FFmpeg
Bash code blocks in published articles are executed against a real FFmpeg binary by scripts/verify-ffmpeg-commands.mjs, which runs each command on a sample video and flags any non-zero exit; font, LUT, and caption-file examples are checked by swapping in test fixtures. Commands that need a specific runtime (GPU, network, OS-specific paths, shell features) are explicitly classified as out of scope. This prevents "copy-paste commands that don't actually work" from reaching production (last verified: June 2026).
📅 lastVerifiedAt makes freshness visible
Each article carries a lastVerifiedAt frontmatter field. When FFmpeg releases a new version, articles in scope are re-verified, starting with the oldest. The most recent of publishedAt / updatedAt / lastVerifiedAt is emitted as lastmod in sitemap.xml so Google sees fresh signals on refresh.
🚫 Deprecated commands stay in text blocks
Historically incorrect or no-longer-working examples are shown in text blocks (not bash) so CI doesn't run them. The prose explicitly states "this no longer works" to prevent accidental copy-paste.
🌱 Beginner-readable
Jargon is explained on first use; common pitfalls and fixes are listed alongside the happy path. Commands aren't dropped without context — the why and the failure modes are part of the article.
🇯🇵 JA-native, 🇬🇧 EN-native
JA and EN are written independently per language, not auto-translated from one to the other. The deep-dive sections on tool pages even cover different topics in each language, rather than being mirror translations.
Refresh & freshness policy
FFmpeg ships several minor versions per year and occasional major versions, sometimes changing filter behaviour or codec defaults. The freshness loop here is:
- New version released — when FFmpeg jumps a major version (6.x → 7.x, 7.x → 8.x), high-impact articles (codec, filter) are re-verified first.
- Quarterly — articles whose
lastVerifiedAtis more than 90 days old are pulled, re-checked in CI, and updated if needed. - Reader-reported errors — feedback through the contact form is typically reviewed within 1-3 business days. Reproducible reports are fixed and redeployed; the
updatedAtfield reflects the change. - Article retirement — when FFmpeg drops a feature or a better alternative replaces an article's premise, the article is moved back to
published: falserather than deleted, so existing inbound links don't 404 — and internal links to it are rewritten.
How files are processed (privacy)
Video / audio tools (compress, GIF, audio, etc.) run ffmpeg.wasm directly in your browser. Files are not uploaded — everything runs in your device's memory.
Anonymous analytics data (page views, sessions) may be collected via Google Analytics. See the Privacy Policy for details.
Independence and monetization
The site is operated by an individual. To help cover server costs, domain costs, and the time involved in re-verifying articles when FFmpeg releases new versions, it may use Google AdSense, Amazon Associates, A8.net, Gumroad, and similar affiliate programs.
Independence principles followed here:
- Article content does not depend on monetization presence. Commands, recommended settings, and "what to do when it breaks" are written the same way whether or not a page carries ads or affiliate links.
- Comparison articles aren't ordered by affiliate payout. Pieces that compare HandBrake / Cloudconvert / VEED to this site's tools rank options on technical merit, and may recommend the other tool when that fits the user's situation better.
- Ads and affiliate links are always labelled. AdSense placements carry their default labels; affiliate links use
rel="sponsored"or an explicit disclosure at the top of the article. - No affiliate-driven thin comparison pieces. Article count is not a goal in itself. The publication test is: does this solve a problem a reader actually has?
Operator & contact
This site is run under the "FFmpeg Chef" handle by a single individual, and was launched in 2026. The maintainer has an engineering background and uses FFmpeg routinely for video and audio work, both professionally and as a hobby. Article writing, editing, CI maintenance, and tool development are all done by one person — what you read here reflects the perspective of someone actually running the commands, not a team-aggregated take.
Response policy for contact form messages:
- Error reports — typically reviewed within 1-3 business days. Reproducible reports are fixed and redeployed immediately.
- Feature / command requests — prioritized by demand; many become articles or tools. Individual replies aren't guaranteed, but the implementation may end up published.
- Business / sponsored content — sponsored articles are not accepted. However, FFmpeg-related OSS projects or educational materials may be covered on editorial merit.
- Interview / guest post requests — capacity is limited; please include context in the initial message.