FFPlay专辑

FFplay文档解读-50-多媒体过滤器四

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

前言

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

32.21 showspectrumpic

将输入音频转换为单个视频帧,表示音频频谱。

过滤器接受以下选项:

size,s

指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为4096x2048

mode

指定显示模式。

它接受以下值:

解释
combined 所有通道都显示在同一行中
separate 所有通道都显示在单独的行中

默认值是:‘combined’

color

指定显示颜色模式。

它接受以下值:

解释
channel 每个通道都以单独的颜色显示
intensity 每个通道使用相同的颜色方案显示
rainbow 使用彩虹配色方案显示每个通道
moreland 每个通道都使用更多的颜色方案显示
nebulae 使用星云颜色方案显示每个通道
fire 使用火焰色方案显示每个通道
fiery 每个通道都使用火热的配色方案显示
fruit 使用水果配色方案显示每个通道
cool 每个通道都使用炫酷的配色方案显示

默认值是:‘intensity’

scale

指定用于计算强度颜色值的比例。

它接受以下值:

解释
lin 线性
sqrt 平方根,默认
cbrt 立方根
log 对数的
4thrt 第4 root
5thrt 第5 root

默认值是:log

saturation

为显示的颜色设置饱和度修改器。 负值提供替代配色方案。 0根本没有饱和。 饱和度必须在[-10.0,10.0]范围内。 默认值为1

win_func

设置窗口功能。

它接受以下值:

rect
bartlett
hann
hanning
hamming
blackman
welch
flattop
bharris
bnuttall
bhann
sine
nuttall
lanczos
gauss
tukey
dolph
cauchy
parzen
poisson

默认值是:hann

orientation

设置时间与频率轴的方向。 可以是垂直的或水平的。 默认为垂直。

gain

设置用于计算强度颜色值的比例增益。 默认值为1

legend

绘制时间和频率轴和图例。 默认值已启用。

rotation

设置颜色旋转,必须在[-1.0,1.0]范围内。 默认值为0

32.21.1 示例

32.22 showvolume

将输入音频音量转换为视频输出。

过滤器接受以下选项:

rate,r

设置视频速率。

b

设置边框宽度,允许范围为[0,5]。 默认值为1

w

设置通道宽度,允许范围为[80,8192]。 默认值为400

h

设置通道高度,允许范围为[1,900]。 默认值为20

f

设置淡入淡出,允许范围为[0,1]。 默认值为0.95

c

设置音量颜色表达式。

表达式可以使用以下变量:

变量 解释
VOLUME 当前最大通道容量,以dB为单位
PEAK 当前的高峰
CHANNEL 当前频道编号,从0开始
t

如果设置,则显示通道名称。 默认值已启用。

v

如果设置,则显示音量值。 默认值已启用。

o

设置方向,可以是水平:h或垂直:v,默认为h

s

设置步长,允许范围为[0,5]。 默认值为0,表示禁用步骤。

p

设置背景不透明度,允许范围为[0,1]。 默认值为0

m

设置测光模式,可以是峰值:prms:r,默认为p

ds

设置显示比例,可以是线性的:linlog:log,默认是lin

dm

第二。 如果设置为> 0。则显示前一秒中最大级别的行。 默认为禁用:0

dmc

最大线的颜色。 当dm选项设置为> 0时使用。默认值为:orange

32.23 showwaves

将输入音频转换为视频输出,表示样本波。

过滤器接受以下选项:

size,s

指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为600x240

mode

设置显示模式。

可用值如下所示:

解释
point 为每个样本画一个点
line 为每个样本绘制一条垂直线
p2p 为每个样本绘制一个点,并在它们之间画一条线
cline 为每个样本绘制一条居中的垂直线

默认值是:point

n

设置在同一列上打印的样本数。 值越大,帧速率越低。 必须是正整数。 仅当未明确指定rate的值时,才能设置此选项。

rate,r

设置(近似)输出帧速率。 这可以通过设置选项n来完成。 默认值为25

split_channels

设置是否应单独绘制通道或重叠通道。 默认值为0

colors

设置以|分隔的颜色,这些颜色将用于绘制每个通道。

scale

设置幅度标度。

可用值如下所示:

解释
lin 线性
log 对数
sqrt 平方根
cbrt 立方根

默认值是:linear

draw

设置绘图模式。 这对于设置高n非常有用。

可用值如下所示:

解释
scale 缩放每个绘制样本的像素值
full 直接绘制每个样本

默认值是:scale

32.23.1 示例

32.24 showwavespic

将输入音频转换为单个视频帧,表示样本波。

过滤器接受以下选项:

size,s

指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为600x240

split_channels

设置是否应单独绘制通道或重叠通道。 默认值为0

colors

设置以|分隔的颜色,这些颜色将用于绘制每个通道。

scale

设置幅度标度。

可用值如下所示:

解释
lin 线性
log 对数
sqrt 平方根
cbrt 立方根

默认值是:linear

32.24.1 示例

32.25 sidedata, asidedata

删除帧边数据,或根据它选择帧。

此过滤器接受以下选项:

mode

设置过滤器的操作模式。

可用的值如下所示:

解释
select 选择具有类型的边数据的每个帧
delete 删除类型的边数据。 如果未设置type,则删除框架中的所有边数据
type

设置所有模式使用的边数据类型。 必须设置为选择模式。 有关帧边数据类型的列表,请参阅'libavutil / frame.h'中的AVFrameSideDataType枚举。 例如,要选择AV_FRAME_DATA_PANSCAN边数据,必须指定PANSCAN

32.26 spectrumsynth

2个输入视频频谱中合成音频,第一个输入流表示跨时间的幅度,第二个表示跨时间的相位。滤波器将从视频中显示的频域转换回音频输出中显示的时域。

此滤波器主要用于反转已处理的showpectrum滤波器输出,但也可以合成其他频谱图的声音。但是在这种情况下,如果相位数据不可用,结果将会很差,因为在这种情况下需要重新创建相位数据,通常只是从随机噪声中重新创建。为获得最佳效果,请使用仅灰色输出(显示光谱滤镜中的通道颜色模式)和对数视频的对数比例和相位视频的lin比例。要为第二个视频制作相位,请使用数据选项。输入视频通常应使用全帧幻灯片模式,因为这样可以节省解码视频所需的资源。

过滤器接受以下选项:

sample_rate

指定输出音频的采样率,生成频谱的音频采样率可能不同。

channels

设置输入视频频谱中表示的频道数。

scale

设置在生成幅度输入频谱时使用的比例。可以linlog。默认为log

slide

设置生成输入光谱时使用的幻灯片。可以是replacescrollfullframerscroll。默认为fullframe

win_func

设置用于再合成的窗口函数。

overlap

设置窗口重叠。在[0,1]范围内。默认值为1,表示将选择所选窗口函数的最佳重叠。

orientation

设置输入视频的方向。可以是垂直的或水平的。默认为垂直。

32.26.1 示例

32.27 split, asplit

将输入分成几个相同的输出。

asplit适用于音频输入,与视频分开。

过滤器接受一个指定输出数量的参数。 如果未指定,则默认为2

32.27.1 示例

32.28 zmq, azmq

接收通过libzmq客户端发送的命令,并将它们转发到filtergraph中的过滤器。

zmqazmq用作传递过滤器。必须在两个视频滤波器之间插入zmq,两个音频滤波器之间的azmq。两者都能够向任何过滤器类型发送消息。

要启用这些过滤器,需要安装libzmq库和标头,并使用--enable-libzmq配置FFmpeg

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

zmqazmq过滤器用作libzmq服务器,它接收通过'bind_address'(或缩写'b')选项定义的网络接口发送的消息。该选项的默认值为'tcp:// localhost:5555'。可能希望根据需要更改此值,但不要忘记转义任何符号(请参阅filtergraph转义)。

收到的消息必须采用以下格式:

TARGET COMMAND [ARG]

TARGET指定命令的目标,通常是过滤器类的名称或特定的过滤器实例名称。默认筛选器实例名称使用模式Parsed_ <filter_name> _ <index>,但您可以使用filter_name @ id语法覆盖它(请参阅Filtergraph语法)。

COMMAND指定目标过滤器的命令名称。

ARG是可选的,它指定给定COMMAND的可选参数列表。

在接收时,处理该消息并将相应的命令注入到过滤器图中。根据结果​​,过滤器将向客户端发送回复,采用以下格式:

ERROR_CODE ERROR_REASON
MESSAGE

MESSAGE是可选的。

32.28.1 示例

查看'tools / zmqsend'以获取zmq客户端的示例,该客户端可用于发送由这些过滤器处理的命令。

考虑ffplay生成的以下过滤器图。 在此示例中,最后一个覆盖过滤器具有实例名称。 所有其他过滤器都将具有默认实例名称。

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

要更改视频左侧的颜色,可以使用以下命令:

echo Parsed_color_0 c yellow | tools/zmqsend

改变右侧:

echo Parsed_color_1 c pink | tools/zmqsend

要改变右侧的位置:

echo overlay@my x 150 | tools/zmqsend
上一篇下一篇

猜你喜欢

热点阅读