29.70 gblur

应用高斯模糊滤镜。

过滤器接受以下选项:

sigma

设置水平西格玛,高斯模糊的标准偏差。 默认值为0.5

steps

设置高斯近似的步数。 默认值是1

planes

设置要过滤的平面。 默认情况下,将过滤所有平面。

sigmaV

设置垂直sigma,如果为负,它将与sigma相同。 默认值为-1

29.71 geq

过滤器接受以下选项:

lum_expr,lum

设置亮度表达式。

cb_expr,cb

设置色度蓝色表达式。

cr_expr,cr

设置色度红色表达式。

alpha_expr, a

设置alpha表达式。

red_expr,r

设置红色表达式。

green_expr,g

设置绿色表达式。

blue_expr,b

设置蓝色表达式。

根据指定的选项选择颜色空间。如果指定了'lum_expr','cb_expr''cr_expr'选项之一,则过滤器将自动选择YCbCr颜色空间。如果指定了'red_expr','green_expr''blue_expr'选项之一,它将选择RGB颜色空间。

学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~    

如果未定义其中一个色度表达式,则它会回落到另一个色度表达式上。如果未指定alpha表达式,则将评估为不透明值。如果没有指定色度表达式,它们将评估亮度表达式。

表达式可以使用以下变量和函数:

N

过滤帧的序号,从0开始。

XY

当前样本的坐标。

WH

图像的宽度和高度。

SWSH

宽度和高度比例取决于当前过滤的平面。它是相应的亮度平面像素数与当前平面数之间的比率。例如。对于YUV4:2:0,亮度平面的值为1,1,色度平面的值为0.5,0.5

T

当前帧的时间,以秒为单位表示。

p(x,y)

返回当前平面的位置(x,y)处的像素值。

lum(x,y)

返回亮度平面的位置(x,y)处的像素值。

cb(x,y)

返回蓝色差色度平面的位置(x,y)处的像素值。如果没有这样的plane,则返回0

cr(x,y)

返回红差色度平面的位置(x,y)处的像素值。如果没有这样的plane,则返回0。

r(x,y)g(x,y)b(x,y)

返回红色/绿色/蓝色分量的位置(x,y)处的像素值。如果没有这样的组件,则返回0

alpha(x,y)

返回alpha平面的位置(x,y)处的像素值。如果没有这样的plane,则返回0

对于函数,如果xy在区域之外,则该值将自动剪切到更近的边缘。

29.71.1 示例

  • 水平翻转图像:

      geq=p(W-X\,Y)
    
  • 生成具有角度PI/3100像素波长的二维正弦波:

      geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    
  • 产生一种奇特的神秘移动光线:

      nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    
  • 生成快速浮雕效果:

      format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    
  • 根据像素位置修改RGB分量:

      geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    
  • 创建与输入大小相同的径向渐变(另请参见vignette过滤器):

      geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
    

29.72 gradfun

通过截断到8位颜色深度来修复有时引入几乎平坦区域的条带伪影。插入应该位于乐队所在位置的渐变,并将它们抖动。

它仅用于播放。在有损压缩之前不要使用它,因为压缩往往会失去抖动并带回带。

它接受以下参数:

strength

滤镜将改变任何一个像素的最大量。这也是检测几乎平坦区域的阈值。可接受的值范围从.5164;默认值为1.2。超出范围的值将被剪切到有效范围。

radius

适合渐变的邻域。半径越大,渐变越平滑,但也会阻止滤镜修改详细区域附近的像素。可接受的值为8-32;默认值为16。超出范围的值将被剪切到有效范围。

或者,可以将选项指定为扁平字符串:strength [:radius]

29.72.1 示例

  • 使用强度为3.5,半径为8的过滤器:

      gradfun=3.5:8
    
  • 指定半径,省略强度(将回落到默认值):

      gradfun=radius=8
    

29.73 haldclut

Hald CLUT应用于视频流。

第一个输入是要处理的视频流,第二个输入是Hald CLUTHald CLUT输入可以是简单图像或完整视频流。

过滤器接受以下选项:

shortest

最短输入终止时强制终止。 默认值为0

repeatlast

在流结束后继续应用最后一个CLUT。 在达到CLUT的最后一帧后,值为0将禁用过滤器。 默认值为1

haldclut也有与lut3d相同的插值选项(两个滤波器共享相同的内部结构)。

29.73.1 Workflow 示例

29.73.1.1 Hald CLUT video stream

生成一个身份Hald CLUT流改变了各种效果:

ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut

注意:确保使用无损编解码器。

然后将它与haldclut一起使用,将其应用于一些随机流:

ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv

Hald CLUT将应用于10秒(clut.nut的持续时间),然后该CLUT流的最新图片将应用于mandelbrot流的剩余帧。

29.73.1.2 Hald CLUT with preview

Hald CLUT应该是Level * Level * Level by Level * Level * Level像素的平方图像。 对于给定的Hald CLUT,FFmpeg将从图片的左上角开始选择最大可能的正方形。 剩余的填充像素(底部或右侧)将被忽略。 此区域可用于添加Hald CLUT的预览。

通常,haldclut过滤器将支持以下生成的Hald CLUT

ffmpeg -f lavfi -i haldclutsrc=8 -vf "pad=iw+320 [padded_clut];smptebars=s=320x256, split [a][b];[padded_clut][a] overlay=W-320:h, curves=color_negative [main];[main][b] overlay=W-320" -frames:v 1 clut.png

它包含原始和CLUT效果的预览:SMPTE颜色条显示在右上方,并在颜色变化处理的相同颜色条下方。

然后,可以通过以下方式显示此Hald CLUT的效果:

ffplay input.mkv -vf "movie=clut.png, [in] haldclut"

29.74 hflip

水平翻转输入视频。

例如,要使用ffmpeg水平翻转输入视频:

ffmpeg -i in.avi -vf "hflip" out.avi

29.75 histeq

此滤镜在每帧的基础上应用全局颜色直方图均衡。

它可用于校正具有压缩像素强度范围的视频。滤波器重新分配像素强度以均衡它们在强度范围内的分布。它可以被视为"automatically adjusting contrast filter"(“自动调整对比度滤波器”)。此滤镜仅用于纠正降级或捕获不良的源视频。

过滤器接受以下选项:

strength

确定要应用的均衡量。随着强度的降低,像素强度的分布越来越接近输入帧的分布。该值必须是[0,1]范围内的浮点数,默认为0.200

intensity

设置可生成的最大强度并适当缩放输出值。应根据需要设定强度,然后如果需要可以限制强度以避免洗掉。该值必须是[0,1]范围内的浮点数,默认为0.210

antibanding

设置antibanding水平。如果启用,则滤波器将随机地改变输出像素的亮度一小部分,以避免直方图的条带化。可能的值为noneweakstrong。它默认为none

29.76 histogram

计算并绘制输入视频的颜色分布直方图。

计算出的直方图是图像中颜色分量分布的表示。

标准直方图显示图像中的颜色分量分布。 显示每个颜色分量的颜色图表。 根据输入格式显示当前帧中YUVARGB分量的分布。 在每个图下方,显示了颜色分量比例计。

过滤器接受以下选项:

level_height

设置关卡高度。 默认值为200。允许范围为[50,2048]

scale_height

设置色标高度。 默认值为12。允许范围为[0,40]

display_mode

设置显示模式。 它接受以下值:

解释
stack 每个颜色组件图放在彼此下方
parade 每个颜色分量图并排放置
overlay 除了表示颜色分量的图形直接叠加在彼此之外时,呈现与游行中的信息相同的信息

默认值是:stack

levels_mode

设置模式。 可以是线性的,也可以是对数的。 默认是线性的。

components

设置要显示的颜色组件。 默认值为7

fgopacity

设置前景不透明度。 默认值为0.7

bgopacity

设置背景不透明度。 默认值为0.5

29.76.1 示例

  • 计算并绘制直方图:

      ffplay -i input -vf histogram
    

29.77 hqdn3d

这是一款高精度/高质量的3d去噪滤波器。 它旨在减少图像噪声,产生平滑的图像并使静止图像真正静止。 它应该增强压缩性。

它接受以下可选参数:

luma_spatial

非负浮点数,指定空间亮度强度。 它默认为4.0

chroma_spatial

指定空间色度强度的非负浮点数。 默认为3.0 * luma_spatial / 4.0

luma_tmp

浮点数,指定亮度时间强度。 默认为6.0 * luma_spatial / 4.0

chroma_tmp

浮点数,指定色度时间强度。 它默认为luma_tmp * chroma_spatial / luma_spatial

29.78 hwdownload

将硬件帧下载到系统内存。

输入必须是硬件帧,输出是非硬件格式。 并非所有格式都支持输出 -可能需要在图表后面插入一个额外的‘format’过滤器,以便以支持的格式输出输出。

29.79 hwmap

将硬件帧映射到系统内存或其他设备。

该滤波器有几种不同的操作模式; 使用哪一个取决于输入和输出格式:

  • 硬件帧输入,正常帧输出。

  将输入帧映射到系统内存并将它们传递给输出。 如果稍后需要原始硬件框架(例如,在覆盖部分其他内容之后),则可以在下一个模式中再次使用hwmap过滤器来检索它。

  • 正常帧输入,硬件帧输出。

  如果输入实际上是软件映射的硬件帧,则取消映射 - 即返回原始硬件帧。

  否则,必须提供设备。 在该设备上为输出创建新的硬件表面,然后将它们映射回输入处的软件格式,并将这些帧提供给前面的过滤器。 这将像'hwupload'过滤器一样,但当输入已经是兼容格式时,可能能够避免额外的副本。

  • 硬件帧输入和输出。

  必须直接或使用'derive_device'选项为输出提供设备。 输入和输出设备必须是不同类型和兼容的 - 这的确切含义取决于系统,但通常意味着它们必须引用相同的底层硬件上下文(例如,参考相同的图形卡)。

  如果输入帧最初是在输出设备上创建的,则取消映射以检索原始帧。

  否则,将帧映射到输出设备 - 在输出上创建与输入帧相对应的新硬件帧。

接受以下附加参数:

mode

设置帧映射模式。 下面是一些组合:

组合 解释
read 映射的帧应该是可读的
write 映射的帧应该是可写的
overwrite 映射将始终覆盖整个帧。

在某些情况下,这可以改善性能,因为不需要加载帧的原始内容。

direct 映射不得涉及任何复制。

在某些情况下,会创建对帧副本的间接映射,在这种情况下,无法进行直接映射或者会出现意外的属性。 设置此标志可确保映射是直接的,如果不可能则会失败。

如果未指定,则默认为read+write

derive_device type

而不是使用初始化时提供的设备,而是从输入帧存在的设备派生类型类型的新设备。

reverse

在硬件到硬件映射中,反向映射 - 在接收器中创建帧并将它们映射回源。 在需要在一个方向上进行映射但在所使用的设备仅支持相反方向的某些情况下,这可能是必要的。

此选项很危险 - 如果对该过滤器的输出有任何其他约束,它可能会以未定义的方式破坏前面的过滤器。 如果不完全理解其使用的含义,请不要使用它。

FFplay文档解读-33-视频过滤器八相关推荐

  1. FFplay文档解读-41-视频过滤器十六

    29.150 selectivecolor 将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds","yellows","gree ...

  2. FFplay文档解读-22-音频过滤器七

    26.60 loudnorm EBU R128响度归一化.包括动态和线性归一化模式.支持单通道(直播,文件)和双通(文件)模式.该算法可以针对IL,LRA和最大真实峰值.为了准确地检测真实峰值,音频流 ...

  3. FFplay文档解读-43-视频过滤器十八

    29.170 telecine 将电视电影处理应用于视频. 此过滤器接受以下选项: first_field 选项 解释 top, t top field first bottom, b 底部字段优先默 ...

  4. FFplay文档解读-49-多媒体过滤器三

    32.14 sendcmd, asendcmd 将命令发送到filtergraph中的过滤器. 这些过滤器读取要发送到filtergraph中其他过滤器的命令. 必须在两个视频滤镜之间插入sendcm ...

  5. FFplay文档解读-16-音频过滤器一

    26. 音频过滤器 配置FFmpeg构建时,可以使用--disable-filters禁用任何现有过滤器. 配置输出将显示构建中包含的音频过滤器. 以下是当前可用音频过滤器的说明. 26.1 acom ...

  6. FFplay文档解读-47-多媒体过滤器一

    32. 多媒体过滤器 以下是当前可用的多媒体过滤器的说明. 32.1 abitscope 将输入音频转换为视频输出,显示音频位范围. 过滤器接受以下选项: rate,r 设置帧速率,表示为每秒帧数. ...

  7. FFplay文档解读-31-视频过滤器六

    29.50 elbg 使用ELBG(增强型LBG)算法应用海报效果. 对于每个输入图像,滤波器将根据码本长度(即不同输出颜色的数量)计算从输入到输出的最佳映射. 此过滤器接受以下选项. codeboo ...

  8. FFplay文档解读-20-音频过滤器五

    26.41 chorus 为音频添加合唱效果. 可以使单个声音听起来像合唱,但也可以应用于乐器. 合唱类似于具有短延迟的回声效果,但是对于回声,延迟是恒定的,伴随合唱,使用正弦或三角调制来改变它. 调 ...

  9. FFplay文档解读-39-视频过滤器十四

    29.130 prewitt 应用prewitt运算符输入视频流. 过滤器接受以下选项: planes 设置要处理的平面,将复制未处理的平面. 默认值为0xf,将处理所有平面. scale 设定值将与 ...

最新文章

  1. 第十五届全国大学生华南赛区线上比赛日期安排
  2. win8如何卸载mysql5.0_Win8如何卸载Windows的服务?卸载Windows的服务的方法和步骤
  3. linux安装oracle 操作系统内核参数 aio,Linux安装Oracle 11G过程(测试未写完)
  4. ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定
  5. GoogleClosureLibrary 中的Component 模型纪要
  6. 使用百度API进行关键点识别
  7. 学习Spring Boot:(十五)使用Lombok来优雅的编码
  8. linux查看进程调用接口,查看某个程序都调用哪些api函数
  9. stm32关定时器_STM32F103ZET6的基本定时器
  10. vue-devtoools 调试工具安装
  11. solid 设计原则 php,面向对象设计SOLID五大原则
  12. java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
  13. 器件基础知识——电感
  14. 黑鲨重装计算机安装无法继续,黑鲨装机大师怎么重装系统 一键装机方法
  15. c++中计算2得n次方_南大专转本 2020年计算机考前模拟(A)
  16. 事件相机模拟器rpg-esim环境搭建
  17. 武大计算机科学与技术弘毅学堂,武汉大学研究生精品课-百余新学子体验“弘毅学堂”...
  18. 期末入门题库-C#实现
  19. IDEA使用C3P0连接Mysql数据库
  20. ISO13485医疗器械体系认定意义

热门文章

  1. vue引入/使用阿里矢量图库
  2. Google开源依赖注入框架-Guice指南
  3. 学习算法,你需要掌握这些编程基础(包含JAVA和C++)
  4. python 读取合并单元格的excel_python 利用三方的xlrd模块读取excel文件,处理合并单元格...
  5. 美联航弄坏吉他后怎么办?——驾驭来自社交媒体的客户抱怨
  6. 2022年海南最新建筑八大员(标准员)模拟考试试题及答案
  7. Spring MVC 控制层model.addAllAttribute()和model.addAllAttributes()方法的区别
  8. mac 外接显示器 壁纸
  9. 什么是PA,与LNA的区别是什么
  10. 路由器,防火墙的角色