FFmpeg on Windows: Install, Test, and Reuse Commands

Install FFmpeg on Windows, read its command structure, test changes on short clips, and save commands that work.

đź’ˇ
Checked 16 August 2026. The video was recorded in 2021. FFmpeg still uses the same input → options → output model. The current Windows install route is shorter with WinGet. The manual setup shown in the video still works, although page layouts and build names can change.

https://www.youtube.com/watch?v=c3bT-VuVoUA

FFmpeg turns media files into other media files. A useful workflow needs four things:

  • a working install;
  • a clear command structure;
  • short test runs; and
  • a place to save commands that worked.

Install and verify

Get FFmpeg working before building commands.

Install FFmpeg on Windows

Use WinGet

Open PowerShell or Windows Terminal and run:

winget install "FFmpeg (Essentials Build)"

The package comes from Gyan’s Windows builds. The essentials build covers common video, image-sequence, and audio work.

Open a new terminal after installation, then check both tools:

ffmpeg -hide_banner -version
ffprobe -hide_banner -version

A version response confirms that Windows can find the programs.

If WinGet cannot find that name, search the current package list:

winget search ffmpeg

Keep the portable option

FFmpeg publishes source code and links to Windows builds on its download page. The video uses Gyan’s portable ZIP build. The 2021 screen below shows the build choice; the current page can look different.

  1. Download the current release essentials ZIP.
  2. Extract it to a durable folder outside Downloads.
  3. Open the extracted bin folder. It contains ffmpeg.exe, ffplay.exe, and ffprobe.exe.
  4. Copy the full path to bin.
  5. Open Edit the system environment variables → Environment Variables → Path → Edit → New.
  6. Paste the bin path and confirm the dialogs.
  7. Open a new terminal and run ffmpeg -hide_banner -version.

PATH is the Windows list of folders searched when you type a command. Adding bin lets you run FFmpeg from any project folder.

Open a new terminal after changing PATH. Existing terminals will not see the update.

Build a safe command

Read the structure, protect the source, and test a short clip.

Read a command from left to right

The basic structure is:

ffmpeg input_options -i input_file output_options output_file
  • ffmpeg starts the program.
  • -i input_file points to the source file.
  • Output options describe the new file.
  • The final path names the output and helps select its container — the file structure represented by extensions such as .mp4 and .mov.

The smallest conversion is:

ffmpeg -n -i "input.mov" "output.mp4"

FFmpeg chooses several settings automatically. This command makes a common H.264 delivery file explicit:

ffmpeg -n -i "input.mov" -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 192k -pix_fmt yuv420p -movflags +faststart "output.mp4"
  • -n stops if the output file already exists.
  • -c:v libx264 uses the H.264 video codec — the format used to compress and decode the video stream.
  • -crf 20 sets the Constant Rate Factor for x264. Lower values usually give higher quality and larger files. Range is 0 to 51.
  • -preset medium balances encoding time and compression.
  • -c:a aac -b:a 192k creates AAC audio at 192 kbit/s.
  • -pix_fmt yuv420p sets a pixel layout accepted by common players and web services.
  • -movflags +faststart moves the MP4 index to the beginning so playback can start before the whole file downloads.

Protect the source and test first

Quote every Windows path that may contain spaces:

ffmpeg -n -i "C:\projects\client film\input.mov" "C:\projects\client film\output.mp4"

Render ten seconds before processing a long file:

ffmpeg -n -i "input.mov" -t 10 -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 192k -pix_fmt yuv420p "test-10s.mp4"

Use -n while testing. Use -y only when replacing an existing output is intentional.

Keep useful commands

Reuse known-good commands and inspect AI-generated drafts.

Commands worth keeping

Make an H.264 MP4 at 1920 pixels wide

ffmpeg -n -i "input.mov" -vf "scale=1920:-2" -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 192k -pix_fmt yuv420p -movflags +faststart "output-1920.mp4"

-2 makes FFmpeg calculate an even height while preserving the source aspect ratio.

Remove audio without encoding the video again

ffmpeg -n -i "input.mp4" -map 0:v:0 -c:v copy -an "output-silent.mp4"

-map 0:v:0 selects the first video stream. -c:v copy copies its compressed data. -an leaves audio out.

Turn a PNG sequence into a review movie

ffmpeg -n -framerate 24 -start_number 1 -i "render.%04d.png" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p "preview.mp4"

%04d matches four-digit frame numbers such as 0001, 0002, and 0003. Change -start_number and the padding to match the files.

Inspect a file before changing it

ffprobe -hide_banner "input.mov"

FFprobe reports the container, streams, codecs, frame size, frame rate, and audio layout without changing the file.

Ask an AI assistant for a draft

An AI assistant is useful when the request states the input, output, limits, delivery target, and test method. Paste a prompt like this:

Write an FFmpeg command for Windows PowerShell.

Input: input_path_and_format
Output: output_path_and_format
Keep or change: properties_to_keep_or_change
Delivery target: delivery_target
Priority: priority

Explain every option.
Use -n and a new output filename.
Provide a second command that processes only the first 10 seconds.

Check the draft before using it:

  1. Quote all paths.
  2. Keep input and output filenames different.
  3. Identify which streams will be encoded and which will be copied.
  4. Run the ten-second test.
  5. Read the terminal output for warnings and errors.
  6. Check unfamiliar options in the FFmpeg command documentation.
  7. List the installed encoders or filters when a command fails:
ffmpeg -hide_banner -encoders
ffmpeg -hide_banner -filters

Build a reference

Save the reason, inputs, outputs, and fixes with every command.

Save commands with context

The original mind map is a visual library of commands collected around the 2021 video. Treat it as a historical reference and check each command before reuse.

A full preview of the original mind map is included below.

Download the original mind-map pack — PDF, text, and SimpleMind source

Store each proven command with:

  • the problem it solves;
  • a known-good input example;
  • the expected output;
  • the platform and shell;
  • the FFmpeg version or last check date; and
  • one note about the result or failure.

This turns a one-off command into a small production tool.

Fix common failures

«ffmpeg is not recognized»

Open a new terminal. For a manual install, make sure the PATH entry points to the folder that contains ffmpeg.exe.

«Unknown encoder» or «No such filter»

Builds include different external libraries. Run ffmpeg -encoders or ffmpeg -filters, then use an installed option or choose a build that includes the required library.

The output is stretched

A fixed width and height can change the aspect ratio. Use a scale expression such as scale=1920:-2 when FFmpeg should calculate one dimension.

A common player rejects the output

For a general H.264 MP4, use H.264 video, AAC audio, and yuv420p. Check the final platform requirements before delivery.

Sources