ffmpeg入门篇-滤镜的基本使用

滤镜

什么是滤镜?百度百科介绍说“滤镜主要是用来实现图像的各种特殊效果…”。

我们最早在ffmpeg是如何转码的一文中了解过滤镜,来回顾下当时的转码流程图。

image

从图中可以看到滤镜前后画的是虚线,表示可有可无,在术语中,滤镜指的是在编码之前针对解码器解码出来的原始数据(即音视频帧)进行处理的动作,我们还可以称它为过滤器。

ffmpeg内置了大概近400种滤镜,我们可以用 ffmpeg -filters 命令查看所有的滤镜,也可以用命令 ffmpeg -h filter=xxx 或者查看官方文档了解每一种滤镜。

实际在大部分音视频的处理过程中都离不开滤镜,所以你应该能明白其重要性。

多个滤镜可以结合在一起使用形成滤镜链或者滤镜图,在每一个滤镜中,不仅可以对输入源进行处理,A滤镜处理好的结果还可以作为B滤镜的输入参数,通过B滤镜继续处理。

针对滤镜的处理,ffmpeg提供了两种处理方式,简单滤镜和复杂滤镜。

简单滤镜
简单滤镜指的是只有一个输入和输出,而且保证输入和输出的流类型相同。

ffmpeg -i r3.mp4 -vf scale=272:480 -y filter.mp4

-vf 是 -filter:v 的简写,类似的我们还可以使用 -filter:a 或者 -af 针对音频流做处理。

-filter的语法规则:-filter[:stream_specifier] filtergraph ( output,per-stream)
stream_specifier流的类型我们一般用a表示音频,v表示视频,filtergraph表示具体的滤镜,这里用的是 scale滤镜

scale滤镜用于调整视频的大小,比如等比例缩放、等比例放大,不做等比例操作输出就变形了,变形结果我们一般不考虑。

因为我们知道原视频 r1ori.mp4 的分辨率是 544x960,所以等比例缩放一倍,上面的命令直接指定了 272x480,scale滤镜自带很多参数,我们介绍几个常用的。

in_w in_h 或者 iw ih 表示输入视频的宽高
out_w out_h 或者 ow oh 表示输出视频的宽高

当然不一定是视频,输入输出也可以是图片。

所以原视频缩放一倍我们还可以这样写:

ffmpeg -i r3.mp4 -vf scale=iw/2:ih/2 -y filter.mp4

问题一:如果我们要把原视频的宽度调整为300且保持原分辨率,怎么办?

列一个方程 544/960 = 300/x ,x=300x960/540,很麻烦,结果还不一定能整除,为此我们可以直接指定高度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值