FFPlay专辑

FFplay文档解读-30-视频过滤器五

2018-11-15  本文已影响15人  张芳涛

前言

Github地址:Github
简书地址:简书
专辑地址:FFplay专辑

29.40 detelecine

应用电视电影操作的精确倒数。 它需要使用pattern选项指定的预定义模式,该模式选项必须与传递给电视电影过滤器的模式选项相同。

此过滤器接受以下选项:

first_field
选项 解释
top, t top field first
bottom, b 底部字段优先默认值为top
pattern

一串数字,表示希望应用的下拉模式。 默认值为23

start_frame

表示第一帧相对于电视电影图案的位置的数字。 如果要切割流,则使用此选项。 默认值为0

29.41 dilation

将扩张效果应用于视频。

此过滤器将像素替换为本地(3x3)最大值。

它接受以下选项:

threshold0
threshold1
threshold2
threshold3

限制每个平面的最大变化,默认为65535.如果为0,则平面将保持不变。

coordinates

指定要参考的像素的标志。 默认值为255,即使用所有八个像素。

标志到本地3x3坐标映射如下:

1 2 3 4 5 6 7 8

29.42 displace

移位由第二和第三输入流指示的像素。

它需要三个输入流并输出一个流,第一个输入是源,第二个和第三个输入是位移图。

第二个输入指定沿x轴移动像素的程度,而第三个输入指定沿y轴移动像素的程度。 如果位移图流之一终止,则将使用来自该置换图的最后一帧。

请注意,一旦生成,位移贴图可以反复重复使用。

接下来的选项的描述如下:

edge

设置超出范围的像素的置换行为。

可用值包括:

解释
blank 丢失的像素被黑色像素替换
smear 相邻像素将展开以替换丢失的像素
wrap 超出范围的像素被包裹,因此它们指向另一侧的像素
mirror 超出范围的像素将替换为镜像像素

默认值是:smear

29.42.1 示例

29.43 drawbox

在输入图像上绘制一个彩色框。

它接受以下参数:

x
y

指定框左上角坐标的表达式。 它默认为0

width, w

height, h

指定框的宽度和高度的表达式; 如果为0,则将它们解释为输入宽度和高度。 它默认为0

color, c

指定要写入的框的颜色。 有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。 如果使用特殊值反转,则框边缘颜色与具有反转亮度的视频相同。

thickness, t

设置框边缘厚度的表达式。 填充值将创建一个填充框。 默认值为3

请参阅下面的可接受常数列表。

replace

如果输入具有alpha,则适用。 值为1时,绘制框的像素将覆盖视频的颜色和alpha像素。 默认值为0,它将框组合到输入上,使视频的alpha保持不变

x,y,wht的参数是包含以下常量的表达式:

dar

输入显示宽高比,与(w/h)* sar相同。

hsub
vsub

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

in_h, ih
in_w, iw

输入的宽度和高度

sar

输入样本宽高比。

x
y

绘制框的xy偏移坐标。

w
h

绘制框的宽度和高度。

t

拉框的厚度。

这些常量允许x,y,w,ht表达式相互引用,因此可以指定y = x / darh = w / dar

29.43.1 示例

29.44 drawgrid

在输入图像上绘制网格。

它接受以下参数:

x
y

指定网格交叉点某些点的坐标的表达式(用于配置偏移量)。 两者都默认为0

width, w

height, h

指定网格单元格的宽度和高度的表达式,如果为0,它们分别被解释为输入宽度和高度减去厚度,因此图像被加框。 默认为0

color, c

指定网格的颜色。 有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。 如果使用特殊值反转,则网格颜色与具有反转亮度的视频相同。

thickness, t

设置网格线粗细的表达式。 默认值为1

请参阅下面的可接受常数列表。

replace

如果输入具有alpha,则适用。 使用1时,绘制网格的像素将覆盖视频的颜色和alpha像素。 默认值为0,它将网格合成到输入上,使视频的alpha保持不变。

x,y,wht的参数是包含以下常量的表达式:

dar

输入显示宽高比,与(w / h)* sar相同。

hsub
vsub

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

in_h, ih
in_w, iw

输入网格单元的宽度和高度。

sar

输入样本宽高比。

x
y

网格交叉点某些点的xy坐标(用于配置偏移量)。

w
h

绘制单元格的宽度和高度。

t

拉伸细胞的厚度。

这些常量允许xywht表达式相互引用,因此可以指定y = x / darh = w / dar

29.44.1 示例

29.45 drawtext

使用libfreetype库从视频顶部的指定文件中绘制文本字符串或文本。

要启用此过滤器的编译,需要使用--enable-libfreetype配置FFmpeg。 要启用默认字体回退和字体选项,需要使用--enable-libfontconfig配置FFmpeg。 要启用text_shaping选项,需要使用--enable-libfribidi配置FFmpeg

29.45.1 语法

它接受以下参数:

box

用于使用背景颜色在文本周围绘制一个框。该值必须为1(启用)或0(禁用)。 box的默认值为0

boxborderw

使用boxcolor设置要在框周围绘制的边框宽度。 boxborderw的默认值为0

boxcolor

用于在文本周围绘制框的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

boxcolor的默认值为white

line_spacing

使用框设置要在框周围绘制的边框的行间距(以像素为单位)。 line_spacing的默认值为0

borderw

使用bordercolor设置要在文本周围绘制的边框宽度。 borderw的默认值为0

 bordercolor

设置用于在文本周围绘制边框的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

bordercolor的默认值为black

expansion

选择文本的展开方式。可以是nonestrftime(不建议使用)或normal(默认)。有关详情,请参阅下面的文本扩展部分。

basetime

设置计数的开始时间。值以微秒为单位。仅适用于弃用的strftime扩展模式。要在正常扩展模式下模拟,请使用pts函数,以第二个参数的形式提供开始时间(以秒为单位)。

fix_bounds

如果为true,请检查并修复文本坐标以避免剪裁。

fontcolor

用于绘制字体的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

fontcolor的默认值为black

fontcolor_expr

以与文本相同的方式展开的字符串,以获取动态fontcolor值。默认情况下,此选项具有空值,不会被处理。设置此选项后,它将覆盖fontcolor选项。

font

用于绘制文本的字体系列。默认为Sans

fontfile

用于绘制文本的字体文件。必须包含路径。如果禁用了fontconfig支持,则此参数是必需的。

alpha

绘制应用alpha混合的文本。该值可以是介于0.01.0之间的数字。表达式也接受相同的变量xy。默认值为1。请参阅fontcolor_expr

fontsize

用于绘制文本的字体大小。 fontsize的默认值为16

text_shaping

如果设置为1,则在绘制之前尝试对文本进行整形(例如,反转从右到左文本的顺序并加入阿拉伯字符)。否则,只需按照给定的方式绘制文本。默认为1(如果支持)。

ft_load_flags

用于加载字体的标志。

标志映射libfreetype支持的相应标志,并且是以下值的组合:

default
no_scale
no_hinting
render
no_bitmap
vertical_layout
force_autohint
crop_bitmap
pedantic
ignore_global_advance_width
no_recurse
ignore_transform
monochrome
linear_design
no_autohint

默认值是:default

有关更多信息,请参阅FT_LOAD_ * libfreetype标志的文档。

shadowcolor

用于在绘制文本后面绘制阴影的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法

shadowcolor的默认值为black

shadowx
shadowy

文本阴影位置相对于文本位置的xy偏移量。它们可以是正值或负值。两者的默认值均为0

start_number

n/frame_num变量的起始帧号。默认值为0

tabsize

用于呈现选项卡的空格数量的大小。默认值为4

timecode

将初始时间码表示设置为hh:mm:ss[:;.]ff格式。它可以与或不与文本参数一起使用。必须指定timecode_rate选项。

timecode_rate,rate,r

设置时间码帧速率(仅限时间码)。值将四舍五入为最接近的整数。最小值为1。帧速率3060支持丢帧时间码。

tc24hmax

如果设置为1,则时间码选项的输出将在24小时后回滚。默认值为0(禁用)。

text

要绘制的文本字符串。文本必须是UTF-8编码字符序列。如果未使用参数textfile指定文件,则此参数是必需的。

textfile

包含要绘制的文本的文本文件。文本必须是UTF-8编码字符序列。

如果未使用参数文本指定文本字符串,则此参数是必需的。

如果同时指定了texttextfile,则会引发错误。

reload

如果设置为1,则将在每个帧之前重新加载文本文件。请务必以原子方式更新,或者可以部分读取,甚至失败。

x
y

用于指定在视频帧内绘制文本的偏移的表达式。它们相对于输出图像的顶部/左侧边框。

xy的默认值为0

请参阅下面的可接受常量和函数列表。

xy的参数是包含以下常量和函数的表达式:

dar

输入显示宽高比,与(w / h) * sar相同

hsub
vsub

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

line_h,lh

每个文本行的高度

main_h,h,H

输入高度

main_w,w,W

输入宽度

max_glyph_a,ascent

对于所有渲染的字形,从基线到用于放置字形轮廓点的最高/上部网格坐标的最大距离。这是一个正值,因为网格的方向是y轴向上。

 max_glyph_d, descent

对于所有渲染的字形,从基线到用于放置字形轮廓点的最低网格坐标的最大距离。这是一个负值,由于网格的方向,y轴向上。

max_glyph_h

最大字形高度,即渲染文本中包含的所有字形的最大高度,相当于上升 - 下降。

max_glyph_w

最大字形宽度,即渲染文本中包含的所有字形的最大宽度

n

输入帧的数量,从0开始

rand(min, max)

返回minmax之间包含的随机数

sar

输入样本宽高比。

t

时间戳以秒表示,如果输入时间戳未知,则为NAN

text_h,th

渲染文本的高度

text_w,tw

渲染文本的宽度

x
y

绘制文本的xy偏移坐标。

这些参数允许xy表达式相互引用,因此可以指定y=x/dar

29.45.2 文字扩展

如果expansion设置为strftime,则过滤器会识别提供的文本中的strftime()序列并相应地展开它们。查看strftime()的文档。此功能已弃用。

如果expansion设置为none,则逐字打印文本。

如果expansion设置为normal(默认值),则使用以下扩展机制。

反斜杠字符'\',后跟任何字符,始终扩展为第二个字符。

形式%{...}的序列被扩展。大括号之间的文本是函数名称,可能后跟以':'分隔的参数。如果参数包含特殊字符或分隔符(':'或'}'),则应对其进行转义。

请注意,它们可能也必须作为filter参数字符串中'text'选项的值进行转义,并作为filtergraph描述中的filter参数进行转义,也可能对shell进行转义,最多可以转义为四个级别;使用文本文件可以避免这些问题。

可以使用以下功能:

expr, e

表达评估结果。

它必须使用一个参数来指定要计算的表达式,它接受与xy值相同的常量和函数。请注意,并非所有常量都应该使用,例如,在计算表达式时,文本大小是未知的,因此常量tex​​t_wtext_h将具有未定义的值。

expr_int_format,eif

将表达式的值和输出计算为格式化整数。

第一个参数是要计算的表达式,就像expr函数一样。第二个参数指定输出格式。允许的值为xXdu。它们的处理方式与printf函数完全相同。第三个参数是可选的,它设置输出所占的位置数。它可用于从左侧添加带零的填充。

gmtime

过滤器运行的时间,以UTC表示。它可以接受一个参数:strftime()格式字符串。

localtime

过滤器运行的时间,以本地时区表示。它可以接受一个参数:strftime()格式字符串。

metadata

帧元数据。需要一个或两个参数。

第一个参数是必需的,并指定元数据键。

第二个参数是可选的,它指定一个默认值,在找不到元数据键或空时使用。

n,frame_num

帧号,从0开始。

pict_type

当前图片类型的1个字符描述。

pts

当前帧的时间戳。它最多可能需要三个参数。

第一个参数是时间戳的格式;它默认以十进制数表示为十进制数,精确到微秒; hms代表格式化的[-]HH:MM:SS.mmm时间戳,精度为毫秒。 gmtime代表格式化为UTC时间的帧的时间戳; localtime代表格式化为本地时区时间的帧的时间戳。

第二个参数是添加到时间戳的偏移量。

如果格式设置为localtimegmtime,则可以提供第三个参数:strftime()格式字符串。默认情况下,将使用YYYY-MM-DD HH:MM:SS格式。

29.45.3 示例

  请注意,如果参数列表中未使用空格,则不需要双引号。

有关libfreetype的更多信息,请访问:http://www.freetype.org/

有关fontconfig的更多信息,请访问:http://freedesktop.org/software/fontconfig/fontconfig-user.html

有关libfribidi的更多信息,请访问:http://fribidi.org/

29.46 edgedetect

检测并绘制边缘。 过滤器使用Canny边缘检测算法。

过滤器接受以下选项:

low
high

设置Canny阈值算法使用的低和高阈值。

高阈值选择"strong"边缘像素,然后通过8连接与由低阈值选择的"weak"边缘像素连接。

必须在[0,1]范围内选择低阈值和高阈值,低值应小于或等于高。

low的默认值是20/255high的默认值是50/255

mode

定义绘图模式。

绘图模式 解释
wires 在黑背景画白色/灰色导线
colormix 混合颜色以创建油漆/卡通效果

默认值是:wires

29.46.1 示例

29.47 eq

设置亮度,对比度,饱和度和近似伽玛调整。

过滤器接受以下选项:

contrast

设置对比度表达式。该值必须是-2.02.0范围内的浮点值。默认值为1

brightness

设置亮度表达式。该值必须是-1.01.0范围内的浮点值。默认值为0

saturation

设置饱和度表达式。该值必须是0.03.0范围内的浮点数。默认值为1

gamma

设置gamma表达式。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_r

gamma表达式设置为红色。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_g

gamma表达式设置为绿色。该值必须是0.110.0范围内的浮点数。默认值为“1”。

gamma_b

gamma表达式设置为蓝色。该值必须是0.110.0范围内的浮点数。默认值为1

gamma_weight

设置gamma权重表达式。它可以用于降低高伽马值对明亮图像区域的影响,例如,防止它们变得过于简单,只是白色。该值必须是0.01.0范围内的浮点数。值0.0gamma校正完全降低,而1.0使其保持全部强度。默认值为1

eval

设置亮度,对比度,饱和度和gamma表达式的表达式时进行设置。

它接受以下值:

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

默认值是:init

表达式接受以下参数:

n

0开始的输入帧的帧数。

pos

输入文件中相应数据包的字节位置,如果未指定则为NAN

r

输入视频的帧速率,如果输入帧速率未知,则为NAN

t

时间戳以秒表示,如果输入时间戳未知,则为NAN

29.47.1 命令行

该过滤器支持以下命令:

contrast

设置对比度表达式。

brightness

设置亮度表达式。

saturation

设置饱和度表达式。

gamma

设置gamma表达式。

gamma_r

设置gamma_r表达式。

gamma_g

设置gamma_g表达式。

gamma_b

设置gamma_b表达式。

gamma_weight

设置gamma_weight表达式。

该命令接受相应选项的相同语法。

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

29.48 erosion

对视频应用侵蚀效果。

此过滤器将像素替换为本地(3x3)最小值。

它接受以下选项:

threshold0
threshold1
threshold2
threshold3

限制每个平面的最大变化,默认为65535。如果为0,则平面将保持不变。

coordinates

指定要参考的像素的标志。 默认值为255,即使用所有八个像素。

标志到本地3x3坐标映射如下:

1 2 3 4 5 6 7 8

29.49 extractplanes

将输入视频流中的颜色通道组件提取到单独的灰度视频流中。

过滤器接受以下选项:

planes

设置要提取的平面。

planes的可用值为:

‘y’
‘u’
‘v’
‘a’
‘r’
‘g’
‘b’

选择输入中不可用的平面将导致错误。 这意味着无法同时选择具有yuv平面的rgb平面。

29.49.1 示例

上一篇下一篇

猜你喜欢

热点阅读