首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用FFMPEG -filter_complex和-vf同时应用两个滤波器

在FFmpeg中,-filter_complex-vf(或-filter:v)都可以用来应用滤镜,但它们的使用场景有所不同。

-vf(Video Filter)用于处理简单的、线性的滤镜链,只能应用于一个输入到一个输出。

-filter_complex则用于处理复杂的滤镜图,可以处理多个输入和多个输出,以及更复杂的滤镜链。

如果你想要同时应用两个滤镜,你可以在一个-vf-filter_complex参数中指定它们,滤镜之间用逗号分隔。例如:

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "filter1=param1=option1:param2=option2,filter2=param1=option1:param2=option2" output.mp4

在这个例子中,filter1filter2是你要应用的滤镜,param1=option1:param2=option2是滤镜的参数。

如果你的滤镜链比较复杂,或者你需要处理多个输入或输出,你应该使用-filter_complex。例如:

代码语言:javascript
复制
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]filter1=param1=option1:param2=option2[v1];[1:v]filter2=param1=option1:param2=option2[v2]" -map "[v1]" output1.mp4 -map "[v2]" output2.mp4

在这个例子中,[0:v][1:v]是输入视频流,[v1][v2]是处理过的视频流,-map "[v1]"-map "[v2]"是将处理过的视频流映射到输出文件。

请注意,你不能同时使用-vf-filter_complex,因为它们都会设置滤镜图,后设置的会覆盖先设置的。如果你需要应用多个滤镜,你应该将它们都放在同一个-vf-filter_complex参数中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ffmpeg Documentation

| | | | | input | demuxer | encoded data | decoder | file | ———> | packets | —–+ |__| |____| | v ____ | | | decoded | | frames | |__| ___ ______ | | | | | | | output | <——– | encoded data | <—-+ | file | muxer | packets | encoder |__| |______| ffmpeg的调用了libavformat库(含分流器)来读取输入文件并获得含有从他们编码的数据包。 当有多个输入文件,ffmpeg试图保持同步通过在任何活动的输入流跟踪最低的时间戳。 编码的数据包然后被传递到解码器(除非复制音频流被选择用于流,见进一步的说明)。解码器产生的未 压缩帧(原始视频/PCM音频/…),它可以进一步通过过滤进行处理(见下一节)。过滤后,这些帧被传递到 编码器,其编码它们并输出编码的数据包。最后这些被传递到复用器,并写入编码数据包到输出文件。

01
  • 领券