FFMPEG commands

Here I come with a compilation of some of the most used commands of ffmpeg. Some of you could refer to this as some of the most used ffmpeg options. You can use this page as a quick reference guide for your ffmpeg operations.

Get video information

ffmpeg -i input_video.avi

You can read more about getting video information with ffmpeg or getting information using ffprobe which can be better.

Extract all images from a video

ffmpeg -i input_video.avi frame%04d.jpg

Here we extract all the frames from a video and save them as frame0000.jpg, frame0001.jpg, frame0002.jpg etc...

Read more about ffmpeg frame extraction.

Extract one image from a video

ffmpeg -i input_video.avi -ss 00:00:07.000 -vframes 1 image.jpg

With this command we extract one frame in the second 7 ofthe video.

As with the prior operation, you can read more about frame extraction here.

Convert images to a video

ffmpeg -i frame%04d.jpf output_video.avi

Here ffmpeg will take all image files in the form frame0000.jpg, frame0001.jpg, frame0002.jpg etc and it will make a video with them.

Change video resolution

ffmpeg -i input_video.avi -vf scale=640:360 output_video.avi

With this command we have resized the video to a resolution of 640 pixels (width) and 360 pixels (height).

Read more about the ffmpeg scale option, and how to use it.

Change video aspect ratio

ffmpeg -i input_video.avi -vf scale=180:320,setsar=1:1 output_video.avi

Here we have resized the input_video to a resolution of 180 pixels (width) and 320 pixels (height) no matter that the aspect ratio gets distorted from the original file.

In this article you can read more about how to change the aspect ratio of a video using ffmpeg.

Cut a video

ffmpeg -i input_video -ss 00:00:00:05.000 -t 8 output_video.avi

With this command we cut the video from the second 5 and a duration of 8 seconds (up to second 13 of the video) and save it as output_video.avi

Crop a video

ffmpeg -i input_video.avi -filter:v “crop=160:90:100:50” output_video.avi

With this command we get the rectangle from position (100,50) and with a width of 160 pixels and height of 90 pixels, and crop it.

Read more about ffmpeg crop operation.

Extract the sound from a video

ffmpeg -i input_video.avi output_audio.m4a

Remove the sound from a video

ffmpeg -i input_video.avi -an output_video.avi

Here we have removed the audio stream from the video file.

Read more about ffmpeg audio removal.

Convert video to mp4

ffmpeg -i input_video.avi output_video.mp4

It is simple to convert from any supported video file to mp4 file. You just need to use the mp4 extension in the output file. Ffmpeg will convert using default options. If you want to specify some of this options you can use:

ffmpeg -i input_video.avi -f mp4 -vcodec libx264 -preset fast -profile:v main -acodec aac output_video.mp4

With any of this you can convert avi to mp4 which is one of the most popular video transformations. Read more about ffmpeg convert to mp4.

Convert video to gif (animated gif)

ffmpeg -i input_video.avi output_file.gif

Like the prior operation, we specify the extension, in this case the output file has .gif extension. You can convert any video type supported to gif including avi to gif conversion and mp4 to gif conversion.

Read more about ffmpeg video conversion to gif and some of its options.

Convert video to 3gp

ffmpeg -i input_video.avi output_video.3gp

Again, we specify 3gp as the extension of the output file to convert any video to 3gp format with default options. If you want to know more about 3gp video conversion click here.

Convert video to webm

ffmpeg -i input_video.avi output_video.webm

Like in the operations before, if we specify the webm extension in the output file it will be enough to transform a video to webm with default options. In this case it can be useful to use some additional options:

ffmpeg -i input_video.avi -f webm -c:v libvpx -b:v 1M -acodec libvorbis output_video.webm

With this command we will convert the video using libvpx library (which encodes in VP8 codec) with a video bitrate of 1 Meg, and using libvorbis as the audio encoder (encodes audio using Vorbis)

Read more about ffmpeg webm coversion.

Convert video to mkv

ffmpeg -i input_video.avi output_video.mkv

And again like in all the transformations before it can be enough using the mkv extension in the output file. But if we want to use some options:

ffmpeg -i input_video.avi -f matroska -vcodec vp8 -acodec libvorbis output_video.mkv

Here we will be converting the video to mkv format using a VP8 video encoder, and encoding the audio using Vorbis.

Read more about ffmpeg mkv conversion.

Concatenate various videos

ffmpeg -i input_video1.avi input_video2.avi -filter_complex “[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]” -map “[v]” - map “[a]” output_video.avi

With this command we will be concatenating two videos (input_video1.avi and input_video2.avi) and saving the result as output_video.avi.

    Did you find this article helpful?