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中几种"模糊"方法中最简单的一种。它可能只是取八边形像素的平均值。由于这种简单性,如果想"破坏图像并使其无法识别",接近所谓的马赛克处理,这可能是最好的。反过来说,它不适合"平滑漂亮"。
参数
sizeX: 水平半径大小
planes:设置那个平面需要过滤。默认所有平面都处理
sizeY:垂直半径大小,如果为0则跟sizeX一样,默认为0
实例一
ffmpeg.exe -i .\dogs_640x578.png -vf avgblur=sizeX=10 -y 1111.png
ffmpeg.exe -i .\dogs_640x578.png -vf avgblur=sizeX=10:planes=1 -y dog-1.png
实例二
bash
#! /bin/sh
ifn="Grape_Vineyard.mp4"
ifnb="`basename \"${ifn}\" .mp4`"
pref="`basename $0 .sh`"
#
radius=${radius:-10}
#
ffmpeg -y -i "${ifn}" -filter_complex "
[0:v]split[0v1][0v2];
[0v1]crop=900:500:30:580,setsar=1,
avgblur=sizeX=${radius}
,drawbox=c=blue[b];
[0v2][b]overlay=30:580[v]
" -map '[v]' -an "${pref}_${ifnb}.mp4"
backgroundkey
作用
将静态背景转换为透明
暂未找到使用方法
参数
bbox
作用
计算输入帧亮度平面中非黑色像素的边界框。
此过滤器计算包含亮度值大于最小允许值的所有像素的边界框。描述边界框的参数将打印在过滤器日志上。
参数
bilateral
作用
应用双边滤波器,空间平滑,同时保留边缘。
参数
实例
ffmpeg.exe -i .\dogs_640x578.png -vf bilateral=sigmaS=512:sigmaR=0.5:planes=1 -y bil.png
bilateral_cuda
作用
CUDA加速双边滤波器,一种边缘保持滤波器。由于使用了GPU加速,该滤波器在数学上是准确的。为了获得最佳输出质量,请使用一对一色度子采样,即yuv444p格式。
参数
实例
./ffmpeg -v verbose \ -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \ -init_hw_device cuda \ -filter_complex \ " \ [0:v]scale_cuda=format=yuv444p[scaled_video]; [scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \ -an -sn -c:v h264_nvenc -cq 20 out.mp4
bitplanenoise
作用
显示和测量位平面噪声。
参数
实例
ffmpeg.exe -i .\dogs_640x578.png -vf bitplanenoise=filter=1:bitplane=1 -y bit_1.png
blackdetect
作用
检测(几乎)完全为黑色的视频间隔。可用于检测章节转换、商业广告或无效录音。
参数
实例
检测视频中亮度低于0.10,时间间隔大于0.05s的视频段 ffmpeg -i ./VIDEO.mp4 -vf "blackdetect=d=0.05:pix_th=0.10" -an -f null - 2>&1 | grep blackdetect
可参考:使用FFMPEG的"BlackDetect"过滤器识别商业街区 - GDELT项目 (gdeltproject.org)
blackframe
作用
检测(几乎)完全为黑色的帧。可用于检测章节转换或商业广告。输出行包括检测到的帧的帧数、黑色百分比、文件中的位置(如果已知)或-1以及以秒为单位的时间戳。
为了显示输出行,您需要将loglevel至少设置为AV_LOG_INFO值。