I want to use multiple filters in one go but confused about how to do it. I searched on the internet and get to know about -vf filter but didn’t get success while using the command. Can someone please help me with this?
Welcome back !
You are right, to apply multiple filters in FFmpeg, you can use the -vf (video filtergraph) option multiple times. Each instance of -vf will apply a separate filter.
Here’s an example of how you can apply two filters in FFmpeg:
ffmpeg -i input.mp4 -vf filter1,filter2 output.mp4
Can’t we right-write the filters in a separate file and then include that file in the command?
You can use @ symbol to include the file in the command:
ffmpeg -i input.mp4 -vf @filters.txt output.mp4Where filters.txt contains the filtergraph description, with one filter per line.
For example, the filters.txt file might look like this:
You can also specify multiple -vf options in the command line to apply multiple filtergraphs:
ffmpeg -i input.mp4 -vf filter1 -vf filter2 output.mp4This will apply filter1 followed by filter2 to the input video.
Is there any order in which the filters will apply?
It’s possible to specify the order in which the filters are applied by using the -filter_complex option instead of -vf.
This option allows you to specify the input and output streams for each filter, so you have more control over the order in which the filters are applied.
ffmpeg -i input.mp4 -filter_complex “[0:v]filter1[temp];[temp]filter2[v]” -map “[v]” output.mp4As per the above example, this will apply filter1 to the input video and save the result to a temporary stream called temp, and then apply filter2 to the temp stream and save the result to the output stream v. The -map option specifies that the output stream v should be used as the video for the output file.