FFPlay专辑

FFplay文档解读-24-音频过滤器九

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

前言

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

26.80 volume

调整输入音量。

它接受的参数如下:

volume

设置音量表达式。

输出值被剪切为最大值。

输出音量由关系式给出:

output_volume = volume * input_volume

音量的默认值为1.0

precision

此参数表示数学精度。

它确定允许哪些输入样本格式,这会影响音量缩放的精度。

样本格式 解释
fixed 8位定点; 这将输入样本格式限制为U8S16S32
float 32位浮点; 这将输入样本格式限制为FLT。 (默认)
double 64位浮点; 这会将输入样本格式限制为DBL
replaygain

选择在输入帧中遇到ReplayGain边数据时的行为

参数 解释
drop删除ReplayGain边数据,忽略其内容(默认)
ignore 忽略ReplayGain边数据,但将其保留在框架中
track 如果存在,则优先选择轨道增益
album 如果有专辑,则优先考虑专辑增益
replaygain_preamp

以dB为单位的预放大增益应用于所选的重放增益。

replaygain_preamp的默认值为0.0

eval

在计算音量表达式时设置。

它接受以下值:

参数 解释
once 仅在过滤器初始化期间或在发送volume命令时评估表达式
frame 计算每个传入帧的表达式

默认值为'once'

volume表达式可以包含以下参数:

n

帧号(从零开始)

nb_channels

频道数量

nb_consumed_samples

过滤器消耗的样本数

nb_samples

当前帧中的样本数

pos

文件中的原始帧位置

pts

PTS

sample_rate

采样率

startpts

PTS在流的开始

startt

流开始的时间

t

帧时间

tb

时间戳时基

volume

最后设定的音量值

请注意,当eval设置为once时,只有sample_ratetb变量可用,所有其他变量将计算为NAN

26.80.1 命令行

此筛选器支持以下命令:

volume

修改volum1e表达式。 该命令接受相应选项的相同语法。

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

replaygain_noclip

通过限制应用的增益来防止削波。

replaygain_noclip的默认值为1

26.80.2 示例

26.81 volumedetect

检测输入视频的音量。

过滤器没有参数。 输入未被修改。 达到输入流结束时,将在日志中打印有关卷的统计信息。

特别是它将显示平均体积(均方根),最大体积(基于每个样品),以及注册体积值的直方图的开始(从样本的最大值到累积的1/1000))。

所有体积均以相对于最大PCM值的分贝为单位。

26.81.1 示例

以下是输出的摘录:

[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409

这意味着:

均方能约为-27dB,或10^-2.7
最大样本为-4 dB,或更精确地介于-4 dB-5 dB之间。
4个样本,-4 dB62-5 dB286-6 dB等。
换句话说,将音量提高+4 dB不会导致任何削波,将其提高+5 dB会导致6个样本的削波等。

上一篇下一篇

猜你喜欢

热点阅读