FFplay文档解读-25-音频源,音频接收器
27. 音频源
以下是当前可用音频源的说明。
27.1 abuffer
缓冲音频帧,并使其可用于过滤器链。
该源主要用于编程用途,特别是通过'libavfilter / asrc_abuffer.h'
中定义的接口。
它接受以下参数:
time_base
将用于提交帧的时间戳的时基。它必须是浮点数或分子/分母
形式。
sample_rate
传入音频缓冲区的采样率。
sample_fmt
传入音频缓冲区的样本格式。来自'libavutil/samplefmt.h'
中的枚举AVSampleFormat
的样本格式名称或其对应的整数表示
channel_layout
传入音频缓冲区的通道布局。 'libavutil/channel_layout.c'
中channel_layout_map
的通道布局名称或'libavutil/channel_layout.h'
中AV_CH_LAYOUT_ *
宏的相应整数表示
channels
传入音频缓冲区的通道数。如果指定了channels
和channel_layout
,则它们必须一致。
27.1.1 示例
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
将指示信号源接受44100Hz
的平面16
位有符号立体声。 由于名称为s16p
的样本格式对应于数字6
而"stereo"
通道布局对应于值0x3
,因此这相当于:
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
27.2 aevalsrc
生成由表达式指定的音频信号。
该源在输入中接受一个或多个表达式(每个通道一个),其被评估并用于生成相应的音频信号。
此来源接受以下选项:
exprs
为每个单独的通道设置'|'
分隔表达式列表。如果未指定'channel_layout'
选项,则所选通道布局取决于提供的表达式的数量。否则,最后指定的表达式将应用于其余输出通道。
channel_layout,c
设置通道布局。指定布局中的通道数必须等于指定表达式的数量。
duration, d
设置源音频的最短持续时间。请参阅(ffmpeg-utils
)接受语法的持续时间语法。请注意,结果持续时间可能大于指定的持续时间,因为生成的音频始终在完整帧的末尾被剪切。
如果未指定,或者表达的持续时间为负,则应该永久生成音频。
nb_samples,n
设置每个输出帧的每个通道的采样数,默认为1024
。
sample_rate,s
指定采样率,默认为44100
。
exprs
中的每个表达式都可以包含以下常量:
n
评估样本的编号,从0
开始
t
评估样本的时间以秒为单位,从0
开始
s
采样率
27.2.1 示例
生成静音:
aevalsrc=0
产生频率为
440 Hz
的sin
信号,将采样率设置为8000 Hz
:aevalsrc="sin(440*2*PI*t):s=8000"
生成双通道信号,明确指定通道布局(
Front Center + Back Center
):aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
产生
white noise
:aevalsrc="-2+random(0)"
生成调幅信号:
aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
在
360 Hz
载波上生成2.5 Hz
双耳节拍:aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
27.3 anullsrc
空音频源,返回未处理的音频帧。 它主要用作模板并用于分析/调试工具,或作为忽略输入数据的过滤器的源(例如sox合成滤波器)。
此来源接受以下选项:
channel_layout,cl
指定通道布局,可以是整数或表示通道布局的字符串。 channel_layout
的默认值是stereo
。
检查'libavutil / channel_layout.c'
中的channel_layout_map
定义,了解字符串和通道布局值之间的映射。
sample_rate,r
指定采样率,默认为44100
。
nb_samples,n
设置每个请求帧的样本数。
27.3.1 示例
将采样率设置为
48000 Hz
,将通道布局设置为AV_CH_LAYOUT_MONO
。anullsrc=r=48000:cl=4
使用更明显的语法执行相同的操作:
anullsrc=r=48000:cl=mono
所有参数都需要明确定义。
27.4 flite
使用libflite
库合成语音话语。
要启用此过滤器的编译,您需要使用--enable-libflite
配置FFmpeg
。
请注意,2.0
之前的flite
库的版本不是线程安全的。
过滤器接受以下选项:
list_voices
如果设置为1
,请列出可用语音的名称并立即退出。 默认值为0
。
nb_samples,n
设置每帧的最大样本数。 默认值为512
。
textfile
设置包含要发言的文本的文件名。
text
设置要发言的文本。
voice, v
设置用于语音合成的语音。 默认值为kal
。 另请参见list_voices
选项。
27.4.1 示例
从文件
'speech.txt'
中读取,并使用标准的flite
语音合成文本flite=textfile=speech.txt
读取选择
slt
语音的指定文本:flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
输入文本到
ffmpeg
:ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
使用
flite
和lavfi
设备让'ffplay'
说出指定的文本:ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
27.5 anoisesrc
生成噪声音频信号。
过滤器接受以下选项:
sample_rate,r
指定采样率。 默认值为48000 Hz
。
amplitude, a
指定生成的音频流的幅度(0.0 - 1.0
)。 默认值为1.0
。
duration, d
指定生成的音频流的持续时间。 不指定此选项会产生无限长度的噪音。
color, colour, c
指定噪音的颜色。 可用的噪音颜色有白色,粉红色,棕色,蓝色和紫罗兰色。 默认颜色为白色。
seed, s
指定用于为PRNG
设定seed
的值。
nb_samples, n
设置每个输出帧的样本数,默认为1024
。
27.5.1 示例
产生
60
秒的粉红噪声,采样率为44.1 kHz
,幅度为0.5
:anoisesrc=d=60:c=pink:r=44100:a=0.5
27.6 hilbert
生成奇数抽头希尔伯特变换FIR
系数。
得到的流可以与afir
滤波器一起使用,用于将信号相移90
度。
这用于许多矩阵编码方案和分析信号生成。 该过程通常被写为虚数单元i
(或j
)的乘法。
过滤器接受以下选项:
sample_rate,s
设置采样率,默认为44100
。
taps,t
设置FIR
滤波器的长度,默认为22051
。
nb_samples,n
设置每帧的样本数。
win_func,w
设置生成FIR
系数时使用的窗口函数。
27.7 sine
生成由幅度为1/8
的正弦波构成的音频信号。
音频信号是精确的。
过滤器接受以下选项:
frequency, f
设置载波频率。 默认值为440 Hz
。
beep_factor,b
每秒发出一次周期性的蜂鸣声,频率为beep_factor
乘以载波频率。 默认值为0
,表示禁用蜂鸣声。
sample_rate,r
指定采样率,默认为44100
。
duration, d
指定生成的音频流的持续时间。
samples_per_frame
设置每个输出帧的样本数。
表达式可以包含以下常量:
常量 | 解释 |
---|---|
n | 输出音频帧的(顺序)编号,从0开始 |
pts | 输出音频帧的PTS(Presentation TimeStamp),以TB为单位表示 |
t | 输出音频帧的PTS,以秒为单位表示 |
TB | 输出音频帧的时基 |
默认值是: 1024
。
27.7.1 示例
生成一个简单的
440 Hz
正弦波:sine
产生
220 Hz
正弦波,每秒发出880 Hz
蜂鸣声,持续5
秒:sine=220:4:d=5sine=f=220:b=4:d=5sine=frequency=220:beep_factor=4:duration=5在* `1602,1601,1602,1601,1602 NTSC`模式之后生成`1 kHz`正弦波:
28. 音频接收器
以下是当前可用音频接收器的说明。
28.1 abuffersink
缓冲音频帧,并使其可用于过滤器链的末尾。
此接收器主要用于程序化使用,特别是通过libavfilter/buffersink.h
或选项系统中定义的接口。
它接受一个指向AVABufferSinkContext
结构的指针,该结构定义传入缓冲区的格式,作为opaque
参数传递给avfilter_init_filter
进行初始化。
28.2 anullsink
空音频接收器; 对输入音频一无所知。 它主要用作模板和用于分析/调试工具。
FFplay文档解读-25-音频源,音频接收器相关推荐
- FFplay文档解读-46-视频源,视频接收器
30. 视频源 以下是当前可用视频源的说明. 30.1 buffer 缓冲视频帧,并使其可用于过滤器链. 该源主要用于编程用途,特别是通过'libavfilter/vsrc_buffer.h'中定义的 ...
- FFplay文档解读-13-设备选项,输入设备一
17.设备选项 libavdevice库提供与libavformat相同的接口. 即,输入设备被视为分路器,输出设备如复用器,接口和通用设备选项与libavformat相同(参见ffmpeg-form ...
- FFplay文档解读-22-音频过滤器七
26.60 loudnorm EBU R128响度归一化.包括动态和线性归一化模式.支持单通道(直播,文件)和双通(文件)模式.该算法可以针对IL,LRA和最大真实峰值.为了准确地检测真实峰值,音频流 ...
- FFplay文档解读-16-音频过滤器一
26. 音频过滤器 配置FFmpeg构建时,可以使用--disable-filters禁用任何现有过滤器. 配置输出将显示构建中包含的音频过滤器. 以下是当前可用音频过滤器的说明. 26.1 acom ...
- FFplay文档解读-21-音频过滤器六
26.50 equalizer 应用双极峰值均衡(EQ)滤波器. 利用该滤波器,可以增加或减少所选频率处和附近的信号电平,同时(与带通和带阻滤波器不同)在所有其他频率处不变. 为了产生复杂的均衡曲线, ...
- FFplay文档解读-41-视频过滤器十六
29.150 selectivecolor 将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds","yellows","gree ...
- FFplay文档解读-6-解码器,视频解码器,音频解码器,字幕解码器
7. 解码器 解码器是FFmpeg中配置的元素,允许解码多媒体流. 配置FFmpeg构建时,默认情况下会启用所有受支持的本机解码器. 必须通过相应的--enable-lib选项手动启用需要外部库的解码 ...
- FFplay文档解读-47-多媒体过滤器一
32. 多媒体过滤器 以下是当前可用的多媒体过滤器的说明. 32.1 abitscope 将输入音频转换为视频输出,显示音频位范围. 过滤器接受以下选项: rate,r 设置帧速率,表示为每秒帧数. ...
- FFplay文档解读-49-多媒体过滤器三
32.14 sendcmd, asendcmd 将命令发送到filtergraph中的过滤器. 这些过滤器读取要发送到filtergraph中其他过滤器的命令. 必须在两个视频滤镜之间插入sendcm ...
最新文章
- mysql 5.7 安装错误提示总结
- NYOJ 645 骰子
- Chrome 控制台console的用法
- Java中String类、字符串常量池、字符串常用方法
- npm安装vue_零基础入门vue开发
- 热议创新 众专家再谈 “中国企业如何创造”
- swift 对象转换_Swift类型转换–照原样,任何对象
- uva 436(floyd变形)
- Word文档怎么添加删除线
- Unity中的第一种签到方式的源码?
- 简单js模仿浏览器crtl+f功能
- AAAI 2022 | MAVEx—基于知识的视觉问答方法
- RBP as a streaming server(一)
- 什么的出现标志着电子计算机的到来,20世纪四五十年代以来,人类在原子能、计算机、航天技术、电力机械等方面取得了重大突破,标志着新的科学技术革命的到来。——青夏教育精英家教网——...
- 【连载】大学物理笔记——第一章末+第二章质点动力学
- 微信小程序MQTT模拟器 阿里云物联网平台测试
- 怎么看手机计算机的记录表,教您如何查看6个月前的通话记录,包括中国联通手机!...
- 最大流之Dinic 算法
- 帝国、PHPCMS及织梦三款CMS比较
- 服务器安装 OpenStack —— Newton 实践指南(零)
热门文章
- 计算机开机键鼠无法识别,终于发现电脑重启不能识别usb鼠标键盘
- VS2013 Windows7(X64被测试)安装方法 离线安装
- connectify-me破解
- VMware虚拟机的官网下载和安装激活(简单易懂)
- 一个c语言程序的开发环境,C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序...
- SkeyeVSS综合安防监控录像回放控制之自定义可拖动时间轴组件
- 什么是java虚拟机所支持的指令,含小米、腾讯、阿里
- AdvantEdge-刀具材料和涂层分析
- 高效上云?智能升级?就靠百度智能云专有云ABC Stack!
- FLAC在Linux中安装-Please install ‘flac’ on ALL worker nodes