Skip to content
Edit & repurpose

FFmpeg: the free command-line toolkit under most video automation

A free command-line tool that converts, filters and transcodes audio and video, under the LGPL 2.1+ with optional GPL parts [2][1].

Does
Converting, cropping, joining and subtitling video in scripts
Best for
Creators automating repetitive video jobs
Cost
Free (LGPL 2.1+; GPL if GPL parts are built in) [1]
Runs
Locally, command line
Updated 2 Nov 2026

Not AI, but many AI tools depend on it: OpenAI Whisper needs it [6], PySceneDetect splits videos with it [7], and Remotion bundles its own build [8]. ffprobe and ffplay are documented alongside ffmpeg [2].

What it does

Licence
LGPL 2.1+; if the optional GPL parts are used, the GPL covers all of FFmpeg [1]
Joining clips
Concat demuxer, for files with the same streams, codecs and time base [3][4]
Cropping
crop filter; centres the crop if x and y are not set [5]
Burned-in subtitles
subtitles filter draws an SRT onto the picture; needs a build with --enable-libass [5]
Data tracks
Camera telemetry and other data streams are not selected automatically; -dn drops them [2]
Install
Homebrew, apt, pacman, Chocolatey or Scoop [6]

Integrations

InterfaceStatusDetail
MCP serverMCP · CommunityCommunity wrappers exist
Command lineCLI · Built inOfficial project CLI
API / libraryAPI · Built inLibrary APIs

Requirements and setup

  • A terminal and an FFmpeg build. Windows: choco install ffmpeg or scoop install ffmpeg [6].
  • libass, for burned-in subtitles [5].

Licence, cost and privacy

  • No proprietary or commercial licence exists [1].
  • The project's compliance checklist covers software that links to and distributes the FFmpeg libraries [1].
  • Remotion's bundled build is GPLv2+, as x264 and x265 are GPL [8].

Limitations

  • -c copy joins need matching codecs and time base; otherwise re-encode [3].
  • Absolute paths in the list file need -safe 0; relative paths do not [3].
  • Builds differ: subtitles and other filters need their libraries, and GPL parts change the licence [5][1].
Quick start

Quick start

Install and concat lines are from the docs; the crop and subtitle lines are assembled from documented filters.

Copied from the documentation · macOS · source [6]
brew install ffmpeg
Copied from the documentation · Windows · source [6]
choco install ffmpeg
Copied from the documentation · Linux (Ubuntu, Debian) · source [6]
sudo apt update && sudo apt install ffmpeg
Copied from the documentation · macOS, Linux · source [3]
printf "file '%s'\n" *.wav > mylist.txt
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.wav
Copied from the documentation · Windows (CMD) · source [3]
(for %i in (*.wav) do @echo file '%i') > mylist.txt
Assembled from documented options, not printed in the docs · macOS, Linux · source [3]
printf "file '%s'\n" *.MP4 > mylist.txt
ffmpeg -f concat -i mylist.txt -c copy joined.mp4
Assembled from documented options, not printed in the docs · source [5]
ffmpeg -i video.mp4 -vf "crop=ih*9/16:ih" vertical.mp4
Assembled from documented options, not printed in the docs · source [5]
ffmpeg -i video.mp4 -vf subtitles=sub.srt captioned.mp4

The crop keeps the full height and a centred 9:16 slice [5], so an off-centre presenter gets cut off; adjust x [5].

Uses for vloggers

  • Join a day of action-camera clips before editing [3].
  • Convert audio to 16 kHz WAV for whisper.cpp [9].
  • Vertical versions of horizontal clips [5].
  • Burned-in subtitles on a Short [5].
  • Strip GoPro GPMF telemetry and other data tracks from a copy [2][10].

Workflows that use it

Some setupAI travel vlog edit

Detect shots in raw GoPro or phone clips, choose the story order, join the clips with FFmpeg, and keep GPS and faces under your control.

PySceneDetectFFmpeg / ffprobeAI video editing skill (znyupup)whisper.cpp
Some setupLocal AI subtitles

Turn vlog speech into SRT and VTT subtitle files on your own computer, with an app or the command line, then check every name.

Buzz transcriptionAuto Subs (tmoroney)whisper.cppFFmpeg / ffprobe

Alternatives

Edit & repurposePySceneDetect

Detect hard cuts and scene boundaries in footage

Free codeOn your computerDeveloperBSD-3-Clause licence
MCP · CommunityCLI · Built inAPI · Built in
Design & thumbnailsRemotion

Create repeatable data-driven video templates with React

Source available, licence limitsOn your computer · CloudDeveloperCustom licence
CLI · Built inAPI · Built inAgent skill
Edit & repurposeVEED OpenEdit

Use agent skills to programmatically edit video timeline and render

Free codeOn your computer · CloudDeveloperApache-2.0 licence
CLI · Built inAPI · Built inAgent skill

Sources

  1. FFmpeg License and Legal Considerations fetched 2 Nov 2026
  2. ffmpeg Documentation fetched 2 Nov 2026
  3. Concatenate – FFmpeg fetched 2 Nov 2026
  4. FFmpeg Formats Documentation fetched 2 Nov 2026
  5. FFmpeg Filters Documentation fetched 2 Nov 2026
  6. raw.githubusercontent.com/openai/whisper/main/README.md fetched 2 Nov 2026
  7. raw.githubusercontent.com/Breakthrough/PySceneDetect/main/README.md fetched 2 Nov 2026
  8. FFmpeg license | Remotion fetched 2 Nov 2026
  9. raw.githubusercontent.com/ggml-org/whisper.cpp/master/README.md fetched 2 Nov 2026
  10. GoPro Open Sources Video Metadata | GoPro fetched 2 Nov 2026