FFMPEG 视频类过滤器学习整理

 

addroi

作用

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

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

参数

FFMPEG 视频类过滤器学习整理_第1张图片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过滤器特别有用。

参数

FFMPEG 视频类过滤器学习整理_第2张图片

alphamerge

作用

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

参数

FFMPEG 视频类过滤器学习整理_第3张图片

实例一

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
 

你可能感兴趣的:(ffmpeg)