Intro to FFmpeg
- jeremy4123
- Nov 3, 2023
- 3 min read
FFmpeg is a powerful open-source multimedia framework that allows users to convert audio and video files with incredible precision and efficiency. Whether you're a video enthusiast, content creator, or a developer working on multimedia projects, understanding how to use FFmpeg can greatly enhance your capabilities.

1. What is FFmpeg and Why Should You Use It?
FFmpeg is a command-line tool that supports a wide range of audio and video formats. It enables users to perform various multimedia operations, such as transcoding, encoding, decoding, filtering, and streaming. Being open-source, it is available on multiple platforms and is constantly updated by a dedicated community of developers. By utilizing FFmpeg, you gain full control over your multimedia files and can create custom workflows tailored to your specific needs.
FFmpeg’s power comes in giving the user direct access to manipulating video at the basic stream level rather than abstracting it away behind a shiny UI. This means there is a learning curve, but the capabilities you have by taking on this challenge makes it worthwhile.
2. Installing FFmpeg
First things first, get FFmpeg installed on your system. The installation process varies depending on your operating system. Fortunately, FFmpeg has detailed installation guides on its official website for Windows, macOS, and Linux users.
3. Basic FFmpeg Commands
FFmpeg commands follow a straightforward syntax: `ffmpeg [input options] -i [input file] [output options] [output file]`. Here are some basic commands to get you started:
a. Converting Video Formats
ffmpeg -i input.avi output.mp4
This command converts an input AVI video to MP4 format.
b. Trimming Videos
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp4
This command extracts a 20-second segment from the input video, starting from the 10-second mark.
c. Resizing Videos
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
This command resizes the input video to a resolution of 1280x720 pixels.
d. Extracting Audio
ffmpeg -i input.mp4 -vn -acodec copy output.mp3
This command extracts the audio from the input video and saves it as an MP3 file.
4. Advanced Operations with FFmpeg Filters
FFmpeg filters offer advanced capabilities to manipulate audio and video streams. You can apply filters for resizing, cropping, adding watermarks, adjusting colors, and much more. For example:
ffmpeg -i input.mp4 -vf "crop=720:480:20:30" output.mp4
This command crops the input video to 720x480 pixels, starting from coordinates (20, 30).
5. Creating Video Thumbnails
ffmpeg -i input.mp4 -ss 00:00:05 -vframes 1 thumbnail.jpg
This command generates a thumbnail image from the input video at the 5-second mark.
6. Streaming with FFmpeg
FFmpeg enables live streaming by sending encoded video and audio directly to streaming platforms like YouTube or Twitch. This requires specific settings and a proper RTMP URL.
ffmpeg -stream_loop -1 -re -i input.mp4 -c:v libx264 -b:v 4000k -preset veryfast -c:a aac -ab 128k -ar 44100 -ac 2 -f flv rtmp://a.rtmp.youtube.com/live2/stream-key-here
7. Overlays
When testing live streams a current time clock is often needed.
ffmpeg -stream_loop -1 -re -i input.mp4 -c:v libx264 -b:v 4000k -vf drawtext="fontfile=monofonto.ttf: fontsize=96: box=1: boxcolor=black@0.75: boxborderw=5: fontcolor=white: x=(w-text_w)/2: y=((h-text_h)/2)+((h-text_h)/4): text='%{gmtime\:%H\\\\\:%M\\\\\:%S}'" -preset veryfast -c:a aac -ab 128k -ar 44100 -ac 2 -f flv rtmp://a.rtmp.youtube.com/live2/stream-key-here
This command overlays the current system time on the video.
8. Batch Processing:
To process multiple files at once, you can create batch scripts using FFmpeg commands. This allows for efficient, automated processing of large media libraries.
That's all for now. This very short introduction is a first step into encoding with open source tools. There is way more to try so dive in, experiment, and unleash your creativity.
At Four Rivers Consulting we have found ffmpeg to be an indispensable tool when creating, manipulating and debugging video. Every day we dive deeper and learn more. Follow us as we explore. @FourRiversInc