在做视频特效的时候,很多特效其实不用自己写,FFmpeg的视频滤镜里面提供了很丰富的滤镜特效。这里翻译了一下FFmpeg官方文档的所有视频滤镜的介绍,供大家参考。由于很多地方概念比较生疏,翻译的可能不恰当,欢迎反馈修改意见。
滤镜名称 | 滤镜介绍 |
---|---|
addroi | 在视频帧中标记感兴趣的区域 |
alphaextract | 从输入中提取 alpha 分量作为灰度视频。 |
alphamerge | 用第二个输入的灰度值添加或替换主输入的 alpha 分量。 |
amplify | 放大当前像素与同一像素位置的相邻帧的像素之间的差异 |
ass | 与字幕过滤器相同,它仅限于 ASS字幕文件 |
atadenoise | 将自适应时间平均降噪器应用于视频输入 |
avgblur | 应用平衡模糊滤镜 |
backgroundkey | 将静态背景变为透明 |
bbox | 计算输入帧亮度平面中非黑色像素的边界框 |
bilateral | 应用双边滤波器,空间平滑,同时保留边缘 |
bilateral_cuda | CUDA 加速双边滤波器,一种边缘保持滤波器 |
bitplanenoise | 显示和测量位平面噪声 |
blackdetect | 检测全黑的视频间隔。可用于检测章节转换、广告或无效录音。 |
blackframe | 检测全黑的帧。可用于检测章节转换或广告。 输出行由检测到的帧的帧号、黑度百分比、文件中的位置和时间戳组成。 |
blend | 将两个视频帧相互混合 |
blockdetect | 在不改变输入帧的情况下确定帧的块度 |
blurdetect | 在不改变输入帧的情况下确定帧的模糊度 |
bm3d | 使用块匹配 3D 算法去噪帧 |
boxblur | 矩形模糊算法 |
bwdif | 对输入视频进行去隔行扫描 |
cas | 将对比度自适应锐化滤镜应用于视频流 |
chromahold | 删除除某些颜色之外的所有颜色的所有颜色信息 |
chromakey | YUV色彩空间色彩/色度键控 |
chromakey_cuda | CUDA加速 YUV 颜色空间颜色/色度键控 |
chromanr | 减少色度噪音 |
chromashift | 水平/垂直移动色度像素 |
ciescope | 显示 CIE 颜色图,其上覆盖有像素 |
codecview | 可视化某些编解码器导出的信息 |
colorbalance | 修改输入帧的原色(红色、绿色和蓝色)的强度 |
colorcontrast | 调整 RGB 组件之间的颜色对比度 |
colorcorrect | 有选择地为黑色和白色调整颜色白平衡。此滤镜在 YUV 颜色空间中运行 |
colorchannelmixer | 通过重新混合颜色通道来调整视频输入帧 |
colorize | 在视频流上叠加纯色 |
colorkey | RGB 颜色空间颜色键控 |
colorhold | 删除所有 RGB 颜色的所有颜色信息,除了某些颜色 |
colorlevels | 使用级别调整视频输入帧 |
colormap | 将自定义颜色图应用于视频流 |
colormatrix | 转换颜色矩阵 |
colorspace | 转换色彩空间、传输特性或原色。输入视频需要有一个均匀的大小 |
colorspace_cuda | 色彩空间过滤器的CUDA加速实现 |
colortemperature | 调整视频中的色温以模拟环境色温的变化 |
convolution | 应用3x3、5x5、7x7或水平/垂直最多 49 个元素的卷积 |
convolve | 使用第二个流作为脉冲在频域中应用视频流的2D卷积 |
copy | 将输入视频源原封不动地复制到输出。这主要用于测试目的 |
coreimage | 在OSX上使用Apple的CoreImage API 在 GPU 上进行视频过滤 |
cover_rect | 覆盖一个矩形物体 |
crop | 将输入视频裁剪为给定尺寸 |
cropdetect | 自动检测裁剪尺寸 |
cue | 延迟视频过滤,直到给定的挂钟时间戳。 |
curves | 使用曲线应用颜色调整 |
datascope | 视频数据分析过滤器 |
dblur | 应用方向模糊滤镜 |
dctdnoiz | 使用 2D DCT(频域滤波)去噪帧 |
deband | 从输入视频中删除条带伪影。它通过用参考像素的平均值替换带状像素来工作 |
deblock | 从输入视频中去除块状伪影 |
decimate | 定期丢弃重复的帧 |
deconvolve | 使用第二个流作为脉冲在频域中应用视频流的 2D 反卷积 |
dedot | 减少视频中的交叉亮度(点爬行)和交叉颜色(彩虹) |
deflate | 对视频应用放气效果 |
deflicker | 移除时间帧亮度变化 |
dejudder | 消除部分交错电视电影内容产生的抖动 |
delogo | 通过周围像素的简单插值来抑制电视台标志 |
derain | 通过应用基于卷积神经网络的 derain 方法去除输入图像/视频中的雨水 |
deshake | 尝试修复水平和/或垂直偏移的微小变化。 |
despill | 去除由绿屏或蓝屏的反射颜色引起的对前景颜色的不必要污染 |
detelecine | 应用电视电影操作的精确逆运算。 |
dilation | 对视频应用膨胀效果 |
displace | 如第二个和第三个输入流所示置换像素 |
dnn_classify | 使用基于边界框的深度神经网络进行分类 |
dnn_detect | 使用深度神经网络进行对象检测 |
dnn_processing | 使用深度神经网络进行图像处理 |
drawbox | 在输入图像上绘制一个彩色框 |
drawgraph | 使用输入视频元数据绘制图形 |
drawgrid | 在输入图像上绘制网格 |
drawtext | 从视频顶部的指定文件中绘制文本字符串或文本 |
edgedetect | 检测并绘制边缘。该过滤器使用 Canny 边缘检测算法 |
elbg | 使用ELBG(增强 LBG)算法应用分色效果 |
entropy | 测量视频帧颜色通道直方图中的灰度熵 |
epx | 应用专为像素艺术设计的EPX放大滤镜 |
eq | 设置亮度、对比度、饱和度和近似伽玛调整 |
erosion | 对视频应用侵蚀效果 |
estdif | 对输入视频进行去隔行扫描 |
exposure | 调整视频流的曝光 |
extractplanes | 从输入视频流中提取颜色通道分量到单独的灰度视频流中 |
fade | 淡入淡出效果 |
feedback | 反馈过滤器 |
fftdnoiz | 使用 3D FFT(频域滤波)对帧进行去噪。 |
fftfilt | 将任意表达式应用于频域中的样本 |
field | 使用步幅算法从隔行扫描图像中提取单个字段以避免浪费CPU 时间。 输出帧被标记为非隔行扫描 |
fieldhint | 通过从提示文件以数字形式提供的周围帧复制顶部和底部字段来创建新帧 |
fieldmatch | 逆电视电影的场匹配滤波器 |
fieldorder | 转换输入视频的场序 |
fifo,afifo | 缓冲输入图像并在请求时发送它们 |
fillborders | 填充输入视频的边框,不改变视频流尺寸。 |
find_rect | 找到一个矩形对象 |
floodfill | 具有相同像素分量值和另一个值的泛滥区域 |
format | 将输入视频转换为指定的像素格式之一。 |
fps | 通过根据需要复制或丢弃帧将视频转换为指定的恒定帧速率 |
framepack | 将两个不同的视频流打包成立体视频 |
framerate | 通过从源帧插入新的视频输出帧来挂起帧速率 |
framestep | 每第 N 帧选择一帧 |
freezedetect | 检测冻结的视频 |
freezeframes | 冻结视频帧 |
frei0r | 对输入视频应用 frei0r 效果 |
fspp | 应用快速简单的后处理。它是 spp 的更快版本 |
gblur | 应用高斯模糊滤镜 |
geq | 将通用方程应用于每个像素 |
gradfun | 修复有时通过截断到 8 位颜色深度而引入近乎平坦区域的条带伪影 |
graphmonitor | 显示各种过滤图统计信息 |
grayworld | 基于灰色世界假设应用颜色校正的颜色恒常性过滤器 |
greyedge | 一种颜色恒常变化滤波器 它通过灰度边缘算法估计场景照明并相应地校正场景颜色 |
guided | 应用引导滤波器进行保边平滑、去雾等 |
haldclut | 将 Hald CLUT 应用到视频流 |
hflip | 水平翻转输入视频 |
histeq | 此过滤器在每帧基础上应用全局颜色直方图均衡 |
histogram | 计算并绘制输入视频的颜色分布直方图 |
hqdn3d | 这是一个高精度/高质量的 3d 去噪滤波器 |
hwdownload | 将硬件帧下载到系统内存 |
hwmap | 将硬件帧映射到系统内存或另一个设备 |
hwupload | 将系统内存帧上传到硬件表面 |
hwupload_cuda | 将系统内存帧上传到 CUDA 设备 |
hqx | 应用专为像素艺术设计的高质量放大滤镜 |
hstack | 水平堆叠输入视频 |
hsvhold | 将某个 HSV 范围转换为灰度值 |
hsvkey | 将某个 HSV 范围转换为透明度 |
hue | 修改输入的色调和/或饱和度 |
huesaturation | 对输入视频流应用色相饱和度调整 |
hysteresis | 通过连接组件将第一个流变成第二个流。这使得构建更强大的边缘掩码成为可能 |
iccdetect | 从嵌入的 ICC 配置文件(如果存在)中检测色彩空间,并相应地更新帧的标签 |
iccgen | 生成 ICC 配置文件并将它们附加到框架 |
identity | 获取两个输入视频之间的身份分数 |
idet | 检测视频隔行扫描类型 |
il | 去交错或交错字段 |
inflate | 对视频应用充气效果 |
interlace | 来自渐进内容的简单隔行过滤器 |
kerndeint | 通过应用 Donald Graft 的自适应内核去交错对输入视频进行去交错处理。 |
kirsch | 应用 kirsch 算子输入视频流 |
lagfun | 慢慢更新较暗的像素 |
lenscorrection | 校正径向镜头畸变 |
lensfun | 通过 lensfun 库应用镜头校正 |
libplacebo | 基于libplacebo的灵活 GPU 加速处理过滤器 |
libvmaf | 计算输入视频的参考/失真对的VMAF分数 |
limitdiff | 使用第二个和可选的第三个视频流应用有限差分过滤器 |
limiter | 将像素分量值限制在指定范围内 |
loop | 循环视频帧 |
lut1d | 将 1D LUT 应用于输入视频 |
lut3d | 将 3D LUT 应用到输入视频 |
lumakey | 将某些亮度值转换为透明度 |
lut, lutrgb, lutyuv | 计算用于将每个像素分量输入值绑定到输出值的查找表 并将其应用于输入视频 |
tlut2 | 接受两个输入流并输出一个流 |
maskedclamp | 用第二个输入和第三个输入流钳制第一个输入流 |
maskedmax | 使用第二输入流和第一输入流之间的绝对差以及 第三输入流和第一输入流之间的绝对差将第二和第三输入流合并为输出流 |
maskedmerge | 使用第三个输入流中的每像素权重将第一个输入流与第二个输入流合并 |
maskedmin | 使用第二输入流和第一输入流之间的绝对差以及 第三输入流和第一输入流之间的绝对差将第二和第三输入流合并为输出流。 |
maskedthreshold | 选取像素比较固定阈值的两个视频流的绝对差 |
maskfun | 从输入视频创建蒙版 |
mcdeint | 应用运动补偿去隔行扫描 |
median | 从由半径定义的某个矩形中选择中值像素 |
mergeplanes | 合并来自多个视频流的颜色通道分量 |
mestimate | 使用块匹配算法估计和导出运动矢量。 运动矢量存储在帧侧数据中以供其他过滤器使用 |
midequalizer | 使用两个视频流应用 Midway Image Equalization 效果 |
minterpolate | 使用运动插值将视频转换为指定的帧速率 |
mix | 将多个视频输入流混合为一个视频流 |
monochrome | 使用自定义滤色器将视频转换为灰色 |
morpho | 该过滤器允许应用主形态灰度变换、腐蚀和扩张 以及在第二个输入流中设置的任意结构 |
mpdecimate | 丢弃与前一帧差别不大的帧以降低帧速率 |
msad | 获取两个输入视频之间的 MSAD(绝对差的平均和) |
multiply | 将第一视频流像素值与第二视频流像素值相乘 |
negate | 反转输入视频。 |
nlmeans | 使用非局部均值算法去噪帧 |
nnedi | 使用神经网络边缘定向插值对视频进行去隔行扫描 |
noformat | 强制 libavfilter 不使用任何指定的像素格式作为下一个过滤器的输入 |
noise | 在视频输入帧上添加噪声 |
normalize | 标准化 RGB 视频(又名直方图拉伸、对比度拉伸) |
null | 不做处理 |
ocr | 光学文字识别 |
ocv | 使用 libopencv 应用视频转换 |
oscilloscope | 2D 视频示波器 |
overlay | 将一个视频叠加在另一个视频之上 |
overlay_cuda | 将一个视频叠加在另一个视频之上 |
owdenoise | 应用过完备小波去噪器 |
pad | 向输入图像添加填充,并将原始输入放置在提供的 x、y 坐标处 |
palettegen | 为整个视频流生成一个调色板 |
paletteuse | 使用调色板对输入视频流进行下采样 |
perspective | 未垂直于屏幕录制的视频的正确视角 |
phase | 将隔行扫描视频延迟一个场时间,以便场序发生变化 |
photosensitivity | 减少视频中的各种闪烁,从而帮助癫痫患者 |
pixdesctest | 像素格式描述符测试过滤器,主要用于内部测试。输出视频应该等于输入视频 |
pixelize | 将像素化应用于视频流 |
pixscope | 显示颜色通道的样本值。主要用于检查颜色和级别。 支持的最低分辨率为 640x480 |
pp | 启用指定的后处理子过滤器链 |
pp7 | 应用后处理过滤器 |
premultiply | 使用第二个流的第一个平面作为 alpha将alpha预乘效果应用于输入视频流 |
prewitt | 应用prewitt算子输入视频流 |
pseudocolor | 使用伪色更改视频中的帧颜色 |
psnr | 获取两个输入视频之间的平均、最大和最小PSNR |
pullup | 下拉反转滤镜 |
qp | 更改视频量化参数 |
random | 将内部帧缓存中的视频帧刷新为随机顺序 |
readeia608 | 从视频帧的顶行读取隐藏式字幕 |
readvitc | 从视频帧的顶行读取垂直间隔时间码(VITC)信息 |
remap | 使用 2nd: Xmap 和 3rd: Ymap 输入视频流重新映射像素 |
removegrain | 用于渐进式视频的空间降噪器 |
removelogo | 抑制电视台徽标,使用图像文件来确定徽标由哪些像素组成 |
repeatfields | 此过滤器使用视频 ES 标头中的 repeat_field 标志,并根据其值硬重复字段 |
reverse | 反转视频剪辑 |
rgbashift | 水平和/或垂直移动 R/G/B/A 像素 |
roberts | 应用罗伯茨交叉算子输入视频流 |
rotate | 以弧度表示的任意角度旋转视频 |
sab | 应用形状自适应模糊 |
scale | 使用 libswscale 库缩放(调整大小)输入视频 |
scale_cuda | 使用cuda内核加速视频缩放 |
scale_npp | 使用在 CUDA 视频帧上执行缩放和/或像素格式转换 |
scale2ref | 根据参考视频缩放(调整大小)输入视频 |
scale2ref_npp | 使用 NVIDIA libnpp根据参考视频缩放(调整大小)输入视频 |
scharr | 应用 scharr 算子输入视频流 |
scroll | 以恒定速度水平和/或垂直滚动输入视频 |
scdet | 检测视频场景变化 |
selectivecolor | 此滤镜类似于 Adobe Photoshop 可选颜色工具。 |
separatefields | 基于帧的视频输入并将每个帧拆分为其组件场 生成一个新的半高剪辑,帧速率和帧数是其两倍 |
setdar, setsar | 过滤器设置过滤器输出视频的显示纵横比 |
setfield | 输出视频帧的力场 |
setparams | 输出视频帧的强制帧参数 |
sharpen_npp | 使用 NVIDIA libnpp通过边界控制执行图像锐化 |
shear | 对输入视频应用剪切变换 |
showinfo | 显示包含每个输入视频帧的各种信息的一行。 输入视频未修改 |
showpalette | 显示每帧的 256 色调色板。 此过滤器仅与 pal8 像素格式帧相关 |
shuffleframes | 重新排序和/或复制和/或删除视频帧 |
shufflepixels | 重新排列视频帧中的像素 |
shuffleplanes | 重新排序和/或复制视频平面 |
signalstats | 评估有助于确定与模拟视频媒体数字化相关的问题的各种视觉指标 |
signature | 过滤器可以处理多个输入。 在这种情况下,可以额外计算输入之间的匹配。 过滤器总是通过第一个输入。 每个流的签名可以写入一个文件。 |
siti | 计算视频的空间信息 (SI) 和时间信息 (TI) 分数 |
smartblur | 在不影响轮廓的情况下模糊输入视频 |
sobel | 将 sobel 算子应用于输入视频流 |
spp | 应用一个简单的后处理过滤器 |
sr | 通过应用一种基于卷积神经网络的超分辨率方法来缩放输入 |
ssim | 获取两个输入视频之间的 SSIM |
stereo3d | 在不同的立体图像格式之间转换 |
streamselect astreamselect |
选择视频或音频流 |
subtitles | 使用 libass 库在输入视频上绘制字幕 |
super2xsai | 使用像素艺术缩放算法将输入缩放2倍并平滑 |
swaprect | 交换视频中的两个矩形对象 |
swapuv | 交换uv平面 |
tblend | 混合连续的视频帧 |
telecine | 对视频应用电视电影处理 |
thistogram | 计算并绘制输入视频随时间变化的颜色分布直方图 |
threshold | 对视频流应用阈值效应 |
thumbnail | 在给定的连续帧序列中选择最具代表性的帧 |
tile | 将几个连续的帧平铺在一起 |
tinterlace | 执行各种类型的时间场交错 |
tmedian | 从几个连续的输入视频帧中选取中值像素 |
tmidequalizer | 应用时间中途视频均衡效果 |
tmix | 混合连续的视频帧 |
tonemap | 来自不同动态范围的色调映射颜色 |
tpad | 临时填充视频帧 |
transpose | 转置输入视频中的行和列,并可选择翻转它 |
transpose_npp | 转置输入视频中的列和行,并可选择翻转它。 |
trim | 修剪输入,使输出包含输入的一个连续子部分 |
unpremultiply | 使用第二个流的第一个平面作为 alpha 将 alpha unpremultiply 效果应用于输入视频流 |
unsharp | 锐化或模糊输入视频 |
untile | 将由平铺图像组成的视频分解为单个图像 |
uspp | 应用超慢/简单的后处理过滤器 |
v360 | 在各种格式之间转换 360 视频 |
vaguedenoiser | 应用基于小波的降噪器 |
varblur | 通过使用第二个视频流设置模糊半径来应用可变模糊过滤器 |
vectorscope | 在二维图形(称为矢量示波器)中显示2个颜色分量值 |
vidstabdetect | 分析视频稳定/去抖动 |
vidstabtransform | 视频稳定/去抖动 |
vflip | 垂直翻转输入视频 |
vfrdet | 检测可变帧率视频 |
vibrance | 提高或改变饱和度 |
vif | 获取两个输入视频之间的平均 VIF(视觉信息保真度) |
vignette | 制作或反转自然渐晕效果 |
vmafmotion | 获取视频的平均 VMAF 运动分数 |
vstack | 垂直堆叠输入视频 |
w3fdif | 去隔行输入视频 |
waveform | 视频波形监视器 |
doubleweave | 编织采用基于场的视频输入并将每两个连续场连接成单个帧 从而产生帧速率和帧数减半的新双倍高度剪辑 |
xbr | 应用专为像素艺术设计的 xBR 高质量放大滤镜 |
xcorrelate | 在第一和第二输入视频流之间应用归一化互相关 |
xfade | 将一个输入视频流的淡入淡出应用于另一个输入视频流 |
xmedian | 从多个输入视频中选取中值像素 |
xstack | 将视频输入堆叠到自定义布局中 |
yadif | 去隔行输入视频 |
yadif_cuda | 使用 yadif 算法对输入视频进行去隔行扫描 |
yaepblur | 在保留边缘的同时应用模糊滤镜 |
zoompan | 应用缩放和平移效果 |
zscale | 缩放(调整大小)输入视频 |