ffmpeg
Complete, cross-platform solution to record, convert and stream audio and video.
Basic Conversion
Convert video to another format.
ffmpeg -i [input_file] [output_file]
Extract Audio
Extract audio from video.
ffmpeg -i [input_file] -vn -acodec copy audio.mp3
Convert Video Format
To MP4
ffmpeg -i [input_file] -codec copy [output_file].mp4
To WebM
ffmpeg -i [input_file] -c:v libvpx-vp9 -c:a libopus [output_file].webm
Video Quality
Set Bitrate
ffmpeg -i [input_file] -b:v 1M [output_file]
Constant Rate Factor (CRF)
Lower values = better quality (0-51, default 23).
ffmpeg -i [input_file] -crf 18 [output_file]
Resize Video
Scale to specific width (height auto).
ffmpeg -i [input_file] -vf scale=1280:-1 [output_file]
Scale to 720p.
ffmpeg -i [input_file] -vf scale=-1:720 [output_file]
Trim/Cut Video
Cut from start time for duration.
ffmpeg -i [input_file] -ss 00:00:30 -t 00:00:10 -c copy [output_file]
Cut from start to end time.
ffmpeg -i [input_file] -ss 00:00:30 -to 00:01:00 -c copy [output_file]
Concatenate Videos
Create a file list.txt:
file 'video1.mp4'
file 'video2.mp4'
Then:
ffmpeg -f concat -safe 0 -i list.txt -c copy [output_file]
Extract Frames
Extract one frame per second.
ffmpeg -i [input_file] -vf fps=1 frame_%04d.png
Extract specific frame at timestamp.
ffmpeg -i [input_file] -ss 00:00:10 -vframes 1 frame.png
Create GIF
ffmpeg -i [input_file] -vf "fps=10,scale=320:-1:flags=lanczos" [output_file].gif
Add Audio to Video
ffmpeg -i [input_file] -i audio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 [output_file]
Remove Audio
ffmpeg -i [input_file] -an [output_file]
Change Frame Rate
ffmpeg -i [input_file] -r 30 [output_file]
Change Audio Codec
To AAC
ffmpeg -i [input_file] -c:v copy -c:a aac -b:a 192k [output_file]
To MP3
ffmpeg -i [input_file] -c:v copy -c:a libmp3lame -b:a 192k [output_file]
Speed Up/Slow Down
Speed up 2x (video)
ffmpeg -i [input_file] -vf "setpts=0.5*PTS" [output_file]
Slow down 0.5x (video)
ffmpeg -i [input_file] -vf "setpts=2.0*PTS" [output_file]
Speed up audio
ffmpeg -i [input_file] -filter:a "atempo=2.0" [output_file]
Rotate Video
Rotate 90 degrees clockwise.
ffmpeg -i [input_file] -vf "transpose=1" [output_file]
Options:
0- 90 counter-clockwise1- 90 clockwise2- 90 counter-clockwise and flip3- 90 clockwise and flip
Add Watermark
ffmpeg -i [input_file] -i watermark.png -filter_complex "overlay=10:10" [output_file]
Stream Copy
Copy without re-encoding (fast).
ffmpeg -i [input_file] -c copy [output_file]
Get Video Info
ffmpeg -i [input_file]
Or use ffprobe:
ffprobe -i [input_file]
Convert Audio
To MP3
ffmpeg -i audio.wav -codec:a libmp3lame -qscale:a 2 audio.mp3
To AAC
ffmpeg -i audio.wav -c:a aac -b:a 192k audio.m4a
Common Options
| Option | Description |
|---|---|
-i | Input file |
-c or -codec | Codec selection |
-c copy | Stream copy (no re-encoding) |
-vn | Disable video |
-an | Disable audio |
-b:v | Video bitrate |
-b:a | Audio bitrate |
-r | Frame rate |
-s | Video size (resolution) |
-ss | Start time |
-t | Duration |
-to | End time |