FFMPEG的filter滤镜使用

前段时间研究了下ffmpeg的滤镜功能,效果还不错,部分滤镜的描述字符串,需要一些图像处理的的知识,如图像的伽马值、亮度、对比度等对图像的影响。

主要使用了部分滤镜:

const char *filter_mirror = "crop=iw/2:ih:0:0,split[left][tmp];[tmp]hflip[right]; \
												[left]pad=iw*2[a];[a][right]overlay=w";
const char *filter_watermark = "movie=test.jpg[wm];[in][wm]overlay=5:5[out]";
const char *filter_negate = "negate[out]";
const char *filter_edge = "edgedetect[out]";
const char *filter_split4 = "scale=iw/2:ih/2[in_tmp];[in_tmp]split=4[in_1][in_2][in_3][in_4];[in_1]pad=iw*2:ih*2[a];[a][in_2]overlay=w[b];[b][in_3]overlay=0:h[d];[d][in_4]overlay=w:h[out]";
const char *filter_vintage = "curves=vintage";//复古
const char *fileter_vignette = "vignette=PI/4";//光晕
const char *fileter_colorDown = "colorlevels=rimin=0.058:gimin=0.058:bimin=0.058";// 变暗
const char *fileter_colorUp = "fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'";// 增加对比度
const char *fileter_hqdn3d = "hqdn3d=luma_spatial=15.0";//降噪
const char *fileter_stron
### 使用多级滤镜FFmpeg 中,可以利用复杂的过滤器图来实现多级滤镜的效果。复杂过滤器图允许链接多个滤镜并创建更高级别的视频处理效果[^1]。 对于构建一个多级滤镜链的情况,语法如下: ```bash ffmpeg -i input.mp4 -vf "filter1, filter2, filter3" output.mp4 ``` 这里 `filter1`、`filter2` 和 `filter3` 是按顺序应用于输入流的一系列滤镜。各个滤镜之间通过逗号分隔表示依次执行。如果某个特定滤镜需要参数,则这些参数紧跟在其名称之后,并由等号连接。 当涉及到更加复杂的场景时——比如想要混合来自不同源的音频或视频流,或是希望某些部分平行处理而不是串行化——这时就需要采用更为灵活的方式定义过滤器图表。这通常涉及使用带有标签 `[in][out]` 的自定义描述符以及指定 `-filter_complex` 选项而非简单的 `-vf` 或者 `-af`: ```bash ffmpeg -i main_video.mp4 -i overlay_image.png \ -filter_complex "[0:v][1:v]overlay=25:25,scale=-1:720[out]" \ -map "[out]" scaled_output.mp4 ``` 上述例子展示了两个独立媒体文件之间的叠加操作(即图像覆盖到视频上),随后进行了缩放调整;最终结果被映射至输出文件中。 为了获取更多关于可用滤镜及其配置的帮助信息,可以通过下面这条指令查看官方文档提供的详尽说明[^2]: ```bash ffmpeg -filters ``` 此命令会打印出所有内置支持的音视频滤镜列表连同各自接受的参数形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值