FFMPEG 视频类过滤器学习整理

针对FFMPEG提供视频过滤器进行了介绍,并提供使用实例

addroi

作用

在视频帧上标记一块感兴趣的区域。

帧数据被原封不动地传递,但元数据被附加到帧,指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。

参数

qoffset: 应用在此区域的量化偏移。

参数范围:-1 ~ +1  , 0表示不做处理,负值表示更好的质量(较低的量化),正值表示较差的质量(更高的量化)

例如:在10 bit 的H264的文件中,量化参数位于-12到51之间。如果qoffset 的值设为-1/10,则表示这个区域的编码质量应该比其他区域的质量好十分之一。如果视频帧的编码QP为30,则这个区域的QP在24左右(-1/10 * (51--12) = -6.3)。如果qoffset为极值-1,这表示这块区域应该使用最好的质量进行编码,也就是QP为-12。

clear:在添加新区域前清除所有已标记的区域

实例
标记1/4区域
addroi=iw/4:ih/4:iw/2:ih/2:-1/10

标记左边100像素宽的区域(以更低的质量编码)
addroi=0:0:100:ih:+1/5

alphaextract

作用

从输入中提取alpha组件作为灰度视频。这对于alphamerge过滤器特别有用。

参数

alphamerge

作用

用第二个输入的灰度值添加或替换主输入的alpha分量。这是为了与alphaextract过滤器一起使用,以允许以不支持alpha通道的格式传输或存储具有alpha的帧序列。

参数

实例一

ffmpeg -i "1.jpeg" -i "2.png" -filter_complex "[0]scale=200:200[ava];[1]scale=200:200,format=rgba,alphaextract[alfa];[ava][alfa]alphamerge" circle_ava.png

1.jpeg:位深24的,没有alpha,2.png位深32,有alpha

这里提取2.png的alpha通道叠加到1.jpeg图片上生成带有alpha通道的图片

示例二

生成带有alpha通道的视频

ffmpeg -i beautlWorld.mp4 -vf "lumakey=threshold=0:tolerance=0:softness=0.2" -pix_fmt rgba -vcodec rawvideo -f avi softness_rgba.avi

堆叠播放原视频和灰度视频

ffplay -i softness_rgba.avi -vf "split[0][1];[1]alphaextract[2];[0][2]hstack

将视频2的alpha通道叠加到视频1上生成新的视频

ffmpeg -y -i 1.avi -i 2.avi -filter_complex “[1:v]alphaextract[tmp];[0:v][tmp]alphamerge[outv]” -map [outv] alphamerge.avi
 

amplify

作用

放大连续视频帧之间的变化

参数

ass 

作用

使用libass库将ASS字幕渲染到输入视频上。

参数

atadenoise

作用

对视频输入应用自适应时间平均去噪器

参数

avgblur

作用

应用平均模糊过滤器。

该过滤器可能是ffmpeg中几种“模糊”方法中最简单的一种。它可能只是取八边形像素的平均值。由于这种简单性,如果想“破坏图像并使其无法识别”,接近所谓的马赛克处理࿰文章来源地址https://uudwc.com/A/GdEXG

原文地址:https://blog.csdn.net/yunxiaobaobei/article/details/133497862

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年10月31日 17:18
下一篇 2023年10月31日 18:18