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

前言

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

29.150 selectivecolor

将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds""yellows""greens""cyans",......)。 调整范围由颜色的"purity"定义(即,它已经是多么饱和)。

此过滤器类似于Adobe Photoshop Selective Color工具。

过滤器接受以下选项:

correction_method

选择颜色校正方法。

可用的值如下:

解释
absolute 指定的调整“按原样”应用(添加/减去原始像素组件值)
relative 指定的调整与原始组件值相关

默认值是:absolute

reds

红色像素的调整(红色成分最大的像素)

yellows

黄色像素的调整(蓝色成分最小的像素)

greens

绿色像素的调整(绿色成分最大的像素)

cyans

青色像素的调整(红色成分最小的像素)

blues

蓝色像素的调整(蓝色分量最大的像素)

magentas

品红色像素的调整(绿色成分最小的像素)

whites

白色像素的调整(所有组件都大于128的像素)

neutrals

除纯黑色和纯白色外的所有像素的调整

blacks

调整黑色像素(所有组件小于128的像素)

psfile

指定Photoshop选择性颜色文件(.asv)以从中导入设置。

所有调整设置('reds','yellows',...)[-1,1]范围内分别接受最多4个空格分隔的浮点调整值,以调整青色,品红色,黄色和黑色的数量 对于其范围的像素。

29.150.1 示例

  • 在每个绿色区域增加青色50%并减少黄色33%,在蓝色区域增加品红27%

      selectivecolor=greens=.5 0 -.33 0:blues=0 .27
    
  • 使用Photoshop选择性颜色预设:

      selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
    

29.151 separatefields

独立字段采用基于帧的视频输入,并将每个帧拆分为其组成字段,从而产生新的半高剪辑,帧速率为帧速率的两倍,帧数为两倍。

该过滤器在帧中使用字段优势信息来决定在输出中首先放置哪一对字段。 如果出错,请在单独的字段过滤器之前使用setfield过滤器。

29.152 setdar, setsar

setdar滤波器设置滤波器输出视频的显示宽高比。

这是通过根据以下等式更改指定的Sample(aka Pixel)纵横比来完成的:

DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR

请记住,setdar滤镜不会修改视频帧的像素尺寸。此外,由该滤波器设置的显示宽高比可以通过滤波器链中的后续滤波器来改变,例如,如果是缩放或者应用了另一个setdarsetsar过滤器。

设置滤波器为滤波器输出视频设置采样(aka Pixel)纵横比。

请注意,作为应用此滤波器的结果,输出显示宽高比将根据上面的等式改变。

请记住,由过滤链中的后续过滤器可以更改由setar过滤器设置的样本宽高比,例如,如果应用另一个setarsetdar过滤器。

它接受以下参数:

r,ratio,dar(仅限setdar),sar(仅限setsar)

设置过滤器使用的宽高比。

该参数可以是浮点数字符串,表达式或形式为num:den的字符串,其中numden是宽高比的分子和分母。如果未指定参数,则假定值为0。如果使用num:den形式,则应转义:字符。

max

设置当将表达的宽高比减少到合理时用于表示分子和分母的最大整数值。默认值为100

参数sar是一个包含以下常量的表达式:

E,PI,PHI

这些是数学常数e(欧拉数),pi(希腊语pi)和phi(黄金比例)的近似值。

w,h

输入的宽度和高度。

a

这些与w/h相同。

sar

输入样本宽高比。

dar

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

hsub,vsub

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

29.152.1 示例

  • 要将显示宽高比更改为16:9,请指定以下选项之一:

      setdar=dar=1.77777
      setdar=dar=16/9
    
  • 要将样本宽高比更改为10:11,请指定:

      setsar=sar=10/11
    
  • 要将显示宽高比设置为16:9,并在宽高比缩减中指定最大整数值1000,请使用以下命令:

      setdar=ratio=16/9:max=1000
    

29.153 setfield

输出视频帧的强制字段。

setfield过滤器标记输出帧的隔行扫描类型字段。 它不会更改输入帧,而只会设置相应的属性,这会影响后续过滤器(例如fieldorderyadif)处理帧的方式。

过滤器接受以下选项:

auto

可用值如下:

解释
bff 将帧标记为底场优先
tff 将帧标记为顶场优先
prog 将帧标记为渐进式

29.154 showinfo

显示包含每个输入视频帧的各种信息的行。输入视频未被修改。

显示的行包含表单键:值的一系列键/值对。

输出中显示以下值:

n

输入帧的(顺序)编号,从0开始。

pts

输入帧的Presentation TimeStamp,表示为多个时基单位。时基单位取决于滤波器输入焊盘。

pts_time

输入帧的Presentation TimeStamp,表示为秒数。

pos

帧在输入流中的位置,如果此信息不可用和/或无意义(例如在合成视频的情况下),则为-1

fmt

像素格式名称。

sar

输入帧的样本宽高比,以num/den的形式表示。

s

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

i

隔行扫描模式的类型(P表示progressivet”表示顶部字段,b表示底部字段优先)。

iskey

如果帧是关键帧,则为1,否则为0

type

输入帧的图像类型(对于I帧为I,对于P帧为P,对于B帧为B,对于未知类型为)。另请参阅AVPictureType枚举文档和'libavutil / avutil.h'中定义的av_get_picture_type_char函数的文档。

checksum

输入帧所有平面的Adler-32校验和(以十六进制打印)。

plane_checksum

输入帧每个平面的Adler-32校验和(以十六进制打印),以[c0 c1 c2 c3]的形式表示。

29.155 showpalette

显示每帧的256色调色板。 此过滤器仅与pal8像素格式帧相关。

它接受以下选项:

s

设置用于表示一个调色板颜色条目的框的大小。 默认值为30(对于30x30像素的盒子)。

29.156 shuffleframes

重新排序和/或复制和/或删除视频帧。

它接受以下参数:

mapping

设置输入帧的目标索引。 这是将输入帧映射到输出帧的空间或|分隔索引列表。 索引数量还设置每个索引可能具有的最大值。 -1索引具有特殊含义,即丢帧。

第一帧的索引为0。默认设置是保持输入不变。

29.156.1 Examples

  • 交换输入的每三帧的第二帧和第三帧:

      ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
    
  • 交换输入的每十帧的第10帧和第1帧:

      ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
    

29.157 shuffleplanes

重新排序和/或复制视频平面。

它接受以下参数:

map0

要用作第一个输出平面的输入平面的索引。

map1

要用作第二个输出平面的输入平面的索引。

map2

要用作第三个输出平面的输入平面的索引。

map3

要用作第四个输出平面的输入平面的索引。

第一个平面的索引为0。默认设置是保持输入不变。

29.157.1 示例

  • 交换输入的第二和第三个平面:

      ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
    

29.158 signalstats

评估有助于确定与模拟视频媒体数字化相关的问题的各种视觉指标。

默认情况下,过滤器将记录这些元数据值:

YMIN

显示输入框中包含的最小Y值。表达范围为[0-255]

YLOW

在输入框内显示10%百分位的Y值。表达范围为[0-255]

YAVG

显示输入框内的平均Y值。表达范围为[0-255]

YHIGH

在输入框内的90%百分位处显示Y值。表达范围为[0-255]

YMAX

显示输入框中包含的最大Y值。表达范围为[0-255]

UMIN

显示输入框中包含的最小U值。表达范围为[0-255]

ULOW

在输入框内显示10%百分位的U值。表达范围为[0-255]

UAVG

显示输入框内的平均U值。表达范围为[0-255]

UHIGH

在输入框内的90%百分位处显示U值。表达范围为[0-255]

UMAX

显示输入框中包含的最大U值。表达范围为[0-255]

VMIN

显示输入框中包含的最小V值。表达范围为[0-255]

VL​​OW

在输入框内显示10%百分位数的V值。表达范围为[0-255]

VAVG

显示输入框内的平均V值。表达范围为[0-255]

VHIGH

在输入框内的90%百分位处显示V值。表达范围为[0-255]

VMAX

显示输入框中包含的最大V值。表达范围为[0-255]

SATMIN

显示输入框中包含的最小饱和度值。表示范围为[0-~181.02]

SATLOW

在输入框内显示10%百分位数的饱和度值。表示范围为[0-~181.02]

SATAVG

显示输入框内的平均饱和度值。表示范围为[0-~181.02]

SATHIGH

在输入框内显示90%百分位数的饱和度值。表示范围为[0-~181.02]

SATMAX

显示输入框中包含的最大饱和度值。表示范围为[0-~181.02]

HUEMED

显示输入框内色调的中值。表示范围为[0-360]

HUEAVG

显示输入框架内色调的平均值。表示范围为[0-360]

YDIF

显示当前帧中Y平面的所有值与前一输入帧的对应值之间的样本值差异的平均值。表达范围为[0-255]

UDIF

显示当前帧中U平面的所有值与前一输入帧的对应值之间的样本值差异的平均值。表达范围为[0-255]

VDIF

显示当前帧中V平面的所有值与前一输入帧的对应值之间的样本值差异的平均值。表达范围为[0-255]

YBITDEPTH

显示当前帧中Y平面的位深度。表示范围为[0-16]

UBITDEPTH

显示当前帧中U平面的位深度。表示范围为[0-16]

VBITDEPTH

显示当前帧中V平面的位深度。表示范围为[0-16]

过滤器接受以下选项:

stat
out

'stat'指定另一种形式的图像分析。

'out'输出视频,突出显示指定类型的像素。

两个选项都接受以下值:

解释
tout 识别时间异常值像素。 时间异常值是与同一场的相邻像素不同的像素。 时间异常值的示例包括视频丢失,磁头阻塞或磁带跟踪问题的结果
vrep 识别垂直线重复。 垂直线重复包括帧内相似的像素行。 在天生数字视频中,垂直线重复很常见,但这种模式在从模拟信号源数字化的视频中并不常见。 当它出现在由模拟信号源数字化产生的视频中时,它可以指示丢失补偿器的隐藏
brng 识别超出合法广播范围的像素
color, c

设置'out'选项的高亮颜色。 默认颜色为黄色。

29.158.1 示例

  • 各种视频指标的输出数据:

      ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
    
  • 输出关于每帧Y平面的最小值和最大值的特定数据:

      ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
    
  • 播放视频,同时以红色突出显示广播范围之外的像素。

      ffplay example.mov -vf signalstats="out=brng:color=red"
    
  • 通过帧绘制信号状态元数据播放视频。

      ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
    

  命令中使用的signalstat_drawtext.txt的内容是:

time %{pts:hms}
Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
saturation maximum: %{metadata:lavfi.signalstats.SATMAX}

29.159 signature

计算MPEG-7视频签名。 过滤器可以处理多个输入。 在这种情况下,可以另外计算输入之间的匹配。 过滤器始终通过第一个输入。 每个流的签名可以写入文件。

它接受以下选项:

detectmode

启用或禁用匹配过程。

可用值包括:

解释
off 禁用匹配的计算(默认)
full 计算整个视频的匹配并输出整个视频是匹配还是仅匹配
fast 只计算直到找到匹配或视频结束。 在某些情况下应该更快
nb_inputs

设置输入数量。 选项值必须是非负整数。 默认值为1

filename

设置输出的写入路径。 如果有多个输入,则路径必须是原型,即必须包含%d%0nd(其中n是正整数),它将被输入数字替换。 如果未指定文件名,则不会写入任何输出。 这是默认值。

format

选择输出格式。

可用值包括:

解释
binary 使用指定的二进制表示(默认)
xml 使用指定的xml表示
th_d

设置阈值以检测一个单词是否相似。 选项值必须是大于零的整数。 默认值为9000

th_dc

设置阈值以检测所有单词是否相似。 选项值必须是大于零的整数。 默认值为60000

th_xh

设置阈值以检测帧类似。 选项值必须是大于零的整数。 默认值为116

th_di

在帧中设置序列的最小长度,以将其识别为匹配序列。 选项值必须是非负整数值。 默认值为0

th_it

设置最小关系,匹配帧到所有帧必须具有。 选项值必须是介于01之间的双精度值。默认值为0.5

29.159.1 示例

  • 要计算输入视频的签名并将其存储在signature.bin中:

      ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
    
  • 要检测两个视频是否匹配,并将签名以XML格式存储在signature0.xmlsignature1.xml中:

      ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容