热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FFplay文档解读40视频过滤器十五

29.140removegrainremovegrain滤镜是渐进式视频的空间降噪器。m0设置第一个平面的模式。m1设置第二个平面的模式。m2设置第三个平面的模式。m3设

29.140 removegrain

removegrain滤镜是渐进式视频的空间降噪器。

m0

设置第一个平面的模式。

m1

设置第二个平面的模式。

m2

设置第三个平面的模式。

m3

设置第四个平面的模式。

模式范围为024。每种模式的描述如下:

0

保持输入平面不变。默认。

1

使用8个相邻像素的最小值和最大值剪切像素。

2

使用8个相邻像素的第二个最小值和最大值来剪切像素。

3

使用8个相邻像素的第三个最小值和最大值来剪切像素。

4

使用第8个相邻像素的第四个最小值和最大值来剪切像素。这相当于中值滤波器。

5

线敏感剪辑给出最小的变化。

6

行敏感剪辑,中间。

7

行敏感剪辑,中间。

8

行敏感剪辑,中间。

9

邻居像素最接近的行上的行敏感剪辑。

10

用最近的邻居替换目标像素。

11

[1 2 1]水平和垂直内核模糊。

12

与模式11相同。

13

Bob模式,从邻近像素最接近的行插入顶部字段。

14

Bob模式,从邻近像素最接近的行插入底部字段。

15

Bob模式,插入顶部字段。与13相同,但插值公式更复杂。

16

Bob模式,插入底部字段。与14相同,但插值公式更复杂。

17

以最小值和最大值分别对应每对相邻像素的最大值和最小值来剪切像素。

18

使用相对邻居的线敏感剪辑,其与当前像素的最大距离最小。

19

8个邻居的平均值替换像素。

20

平均9个像素([1 1 1]水平和垂直模糊)。

21

使用相对邻居的平均值来剪切像素。

22

与模式21相同,但更简单,更快捷。

23

小边缘和光晕去除,但声称无用。

24

类似于23



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




29.141 removelogo

使用图像文件抑制电视台徽标,以确定哪些像素包含徽标。它的工作原理是用相邻像素填充构成徽标的像素。

过滤器接受以下选项:

filename,f

设置过滤器位图文件,该文件可以是libavformat支持的任何图像格式。图像文件的宽度和高度必须与正在处理的视频流的宽度和高度相匹配。

提供的位图图像中值为零的像素不被视为徽标的一部分,非零像素被视为徽标的一部分。如果您使用白色(255)作为徽标而使用黑色(0)作为其余部分,那么您将是安全的。为了制作滤镜位图,建议拍摄带有徽标可见的黑框的屏幕截图,然后使用阈值滤镜,然后使用侵蚀滤镜一次或两次。

如果需要,可以手动修复少量斑点。请记住,如果未覆盖徽标像素,过滤器质量将大大降低。将太多像素标记为徽标的一部分并不会造成太大的伤害,但它会增加覆盖图像所需的模糊量,并会破坏超出必要的信息,而额外的像素会减慢大徽标的速度。


29.142 repeatfields

此过滤器使用Video ES标头中的repeat_field标志和基于其值的硬重复字段。


29.143 reverse

反转视频片段。

警告:此过滤器需要内存来缓冲整个剪辑,因此建议进行剪裁。


29.143.1 示例


  • 取一个剪辑的前5秒,并将其反转。

    trim=end=5,reverse


29.144 roberts

应用roberts cross运算符输入视频流。

过滤器接受以下选项:

planes

设置要处理的平面,将复制未处理的平面。 默认值为0xf,将处理所有平面。

scale

设定值将与过滤结果相乘。

delta

设置将添加到筛选结果的值。


29.145 rotate

以弧度表示的任意角度旋转视频。

过滤器接受以下选项:

下面是可选参数的描述。

angle, a

设置一个表达式,用于顺时针旋转输入视频的角度,表示为弧度数。负值将导致逆时针旋转。默认情况下,它设置为0

针对每个帧评估该表达式。

out_w,ow

设置输出宽度表达式,默认值为iw。在配置期间仅对此表达式求值一次。

out_h, oh

设置输出高度表达式,默认值为ih。在配置期间仅对此表达式求值一次。

bilinear

如果设置为1,则启用双线性插值,值0表示禁用。默认值为1

fillcolor,c

设置用于填充旋转图像未覆盖的输出区域的颜色。有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。如果选择特殊值"none",则不打印背景(例如,如果从不显示背景,则非常有用)。

默认值为"black"

角度和输出大小的表达式可以包含以下常量和函数:

n

输入帧的序号,从0开始。在第一帧被过滤之前,它始终为NAN

t

输入帧的时间(以秒为单位),配置过滤器时设置为0。在过滤第一帧之前,它始终为NAN

hsub
VSUB

水平和垂直色度子样本值。例如,对于像素格式yuv422phsub2vsub1

in_w,iw
in_h, ih

输入视频的宽度和高度

out_w,ow
out_h, oh

输出宽度和高度,即宽度和高度表达式指定的填充区域的大小

rotw(a)
roth(a)

完全包含由弧度旋转的输入视频所需的最小宽度/高度。

这些仅在计算'out_w''out_h'表达式时可用。


29.145.1 示例


  • 顺时针旋转PI/6弧度输入:

    rotate=PI/6

  • 逆时针旋转PI/6弧度输入:

    rotate=-PI/6

  • 顺时针旋转输入45度:

    rotate=45*PI/180

  • PI/3角度开始应用周期T的恒定旋转:

    rotate=PI/3+2*PI*t/T

  • 使输入视频旋转以T秒的周期和A弧度的幅度振荡:

    rotate=A*sin(2*PI/T*t)

  • 旋转视频,选择输出大小,以便整个旋转输入视频始终完全包含在输出中:

    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'

  • 旋转视频,减小输出大小,以便不显示任何背景:

    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none


29.145.2 命令行

该过滤器支持以下命令:

a, angle

设置角度表达式。 该命令接受相应选项的相同语法。

如果指定的表达式无效,则保持其当前值。


29.146 sab

应用形状自适应模糊。

过滤器接受以下选项:

luma_radius,lr

设置亮度模糊滤镜强度,必须是0.1-4.0范围内的值,默认值为1.0。值越大,图像越模糊,处理速度越慢。

luma_pre_filter_radius,lpfr

设置luma预滤波器半径,必须是0.1-2.0范围内的值,默认值为1.0

luma_strength,ls

设置luma最大像素之间的差异仍然要考虑,必须是0.1-100.0范围内的值,默认值是1.0

chroma_radius,cr

设置色度模糊滤镜强度,必须是-0.9-4.0范围内的值。值越大,图像越模糊,处理速度越慢。

chroma_pre_filter_radius,cpfr

设置色度预滤波器半径,必须是-0.9-2.0范围内的值。

'chroma_strength,cs'
设置仍然要考虑的像素之间的色度最大差异,必须是-0.9-100.0范围内的值。

如果未明确指定,则每个色度选项值都设置为相应的亮度选项值。


29.147 scale

使用libswscale库缩放(调整大小)输入视频。

通过更改输出样本宽高比,缩放滤镜强制输出显示宽高比与输入相同。

如果输入图像格式与下一个过滤器请求的格式不同,则缩放过滤器会将输入转换为请求的格式。


29.147.1 选项

过滤器接受以下选项,或libswscale缩放器支持的任何选项。

有关缩放器选项的完整列表,请参阅(ffmpeg-scaler)scaler_options

width, w
height, h

设置输出视频维度表达式。 默认值是输入维度。

如果widthw值为0,则输入宽度用于输出。 如果heighth值为0,则输入高度用于输出。

如果其中一个且只有一个值为-nn> = 1,则比例过滤器将使用一个值,该值保持输入图像的纵横比,从另一个指定的维度计算。 之后,它将确保计算出的尺寸可被n整除,并在必要时调整该值。

如果两个值都是-nn> = 1,则行为将与之前详细设置为0的两个值相同。

请参阅下面的维度表达式中使用的已接受常量列表。

eval

指定何时评估宽度和高度表达式。 它接受以下值:


解释
init仅在过滤器初始化期间或处理命令时计算表达式一次
frame评估每个传入帧的表达式

默认值是:‘init’

interl

设置隔行扫描模式。 它接受以下值:


解释
1强制隔行扫描意识缩放
0不要应用隔行扫描缩放
-1根据源帧是否标记为隔行扫描,选择隔行扫描感知缩放

默认值是:‘0’

flags

设置libswscale缩放标志。 有关完整的值列表,请参阅(ffmpeg-scaler)sws_flags。 如果未明确指定,则过滤器应用默认标志。

param0,param1

为需要它们的缩放算法设置libswscale输入参数。 有关完整文档,请参阅(ffmpeg-scaler)sws_params。 如果未明确指定,则过滤器应用空参数。

size,s

设置视频大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法

in_color_matrixout_color_matrix

设置/输出YCbCr颜色空间类型。

这允许覆盖自动检测的值,并允许强制用于输出和编码器的特定值。

如果未指定,则颜色空间类型取决于像素格式。

可能的值如下:


解释
auto自动选择
bt709符合国际电信联盟(ITU)建议书BT.709的格式
fcc设置符合美国联邦通信委员会(FCC)联邦法规(CFR)标题47(2003)73.682(a)的色彩空间
bt601设置符合以下条件的色彩空间:

1:国际电联无线电通信部门(ITU-R)建议书BT.601

2:ITU-R Rec。 BT.470-6(1998)系统B,B1G

3:电影电视工程师协会(SMPTE)ST 170:2004
smpte240m设置符合SMPTE ST 240:1999的色彩空间

in_range
out_range

设置/输出YCbCr样本范围。

这允许覆盖自动检测的值,并允许强制用于输出和编码器的特定值。 如果未指定,则范围取决于像素格式。 可能的值:


解释
auto/unknown自动选择
jpeg/full/pc设置全范围(8位亮度时为0-255
mpeg/limited/tv设置MPEG范围(8位亮度时为16-235

force_original_aspect_ratio

如有必要,启用减小或增加输出视频宽度或高度以保持原始高宽比。 可能的值如下:


解释
disable按指定缩放视频并禁用此功能
decrease如果需要,输出视频尺寸将自动减小
increase如果需要,输出视频尺寸将自动增加

此选项的一个有用实例是,当您知道特定设备的最大允许分辨率时,可以使用此选项将输出视频限制为该值,同时保留纵横比。 例如,设备A允许1280x720播放,的视频为1920x800。 使用此选项(将其设置为减小)并将1280x720指定到命令行会使输出1280x533

请注意,这与为'w''h'指定-1不同,仍需要指定此选项的输出分辨率才能工作。

'w''h'选项的值是包含以下常量的表达式:

in_w
in_h

输入的宽度和高度。

iw
ih

这些与in_win_h相同。

out_w
out_h

输出(缩放)宽度和高度。

ow
oh

这些与out_wout_h相同。

a

iw/ih一样。

sar

输入样本宽高比。

dar

输入显示宽高比。 从(iw / ih)* sar计算。

hsub
vsub

水平和垂直输入色度子样本值。 例如,对于像素格式yuv422phsub2vsub1

ohsub
ovsub

水平和垂直输出色度子样本值。 例如,对于像素格式yuv422phsub2vsub1


29.147.2 示例


  • 将输入视频缩放到200x100的大小:

    scale=w=200:h=100

  这相当于下面方法:


  • scale=200:100

  或者如下:


  • scale=200x100

  • 指定输出大小的大小缩写:

    scale=qcif

  也可以写成:


  • scale=size=qcif

  • 将输入缩放为2x

    scale=w=2*iw:h=2*ih

  • 以上内容与:

    scale=2*in_w:2*in_h

  • 使用强制隔行缩放将输入缩放到2x

    scale=2*iw:2*ih:interl=1

  • 将输入缩放到一半大小:

    scale=w=iw/2:h=ih/2

  • 增加宽度,并将高度设置为相同的大小:

    scale=3/2*iw:ow

  • 寻找Greek harmony:

    scale=iw:1/PHI*iwscale=ih*PHI:ih

  • 增加高度,并将宽度设置为高度的3/2

    scale=w=3/2*oh:h=3/5*ih

  • 增加大小,使大小为色度子样本值的倍数:

    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"

  • 将宽度增加到最大500像素,保持与输入相同的宽高比:

    scale=w='min(500\, iw*3/2):h=-1'

  • 通过组合scalesetsar使像素成为正方形:

    scale='trunc(ih*dar):ih',setsar=1/1

  • 通过组合scalesetsar使像素成为方形,确保结果分辨率均匀(某些编解码器需要):

    scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1


29.147.3 命令行

此筛选器支持以下命令:


  • width, w
    height, h

设置输出视频维度表达式。 该命令接受相应选项的相同语法。

如果指定的表达式无效,则保持其当前值。


29.148 scale_npp

使用NVIDIA Performance Primitives(libnpp)CUDA视频帧上执行缩放和/或像素格式转换。 设置输出宽度和高度的工作方式与缩放滤镜的工作方式相同。

接受以下附加选项:


  • format

输出CUDA帧的像素格式。 如果设置为字符串same(默认值),则将保留输入格式。 请注意,硬件帧尚不支持自动格式协商和转换


  • interp_algo

用于调整大小的插值算法。 算法如下:


算法解释
nn最近的邻居
linear
cubic
cubic2p_bspline2-parameter cubic (B=1, C=0)
cubic2p_catmullrom2-parameter cubic (B=0, C=1/2)
cubic2p_b05c032-parameter cubic (B=1/2, C=3/10)
super超级采样
lanczos

29.149 scale2ref

根据参考视频缩放(调整大小)输入视频。

有关可用选项的比例过滤器,scale2ref支持相同但使用参考视频而不是主输入作为基础。 scale2ref还支持'w''h'选项的以下附加常量:


  • main_w
    main_h

主输入视频的宽度和高度


  • main_a

main_w/main_h相同


  • main_sar

主输入视频的样本宽高比


  • main_dar,mdar

主输入视频的显示宽高比。 从(main_w/main_h)* main_sar计算。


  • main_hsub
    main_vsub

主输入视频的水平和垂直色度子样本值。 例如,对于像素格式“yuv422p”hsub2vsub1


29.149.1 示例


  • 在覆盖之前缩放字幕流(b)以匹配主视频(a)的大小。

    'scale2ref[b][a];[a][b]overlay'


推荐阅读
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
author-avatar
北达学院树洞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有