ffmpeg文档35-音频源

35 音频源

下面介绍当前可用的音频源

abuffer

缓冲音频帧,作为滤镜链图中有效的组成(起点)

它主要编程使用,特别是通过libavfilter/asrc_abuffer.h中的接口进行调用。

接受如下参数:

  • time_base

    用于提交帧的时间戳时基。是浮点数或者分数形式。

  • sample_rate

    进入音频缓冲的采样率。

  • sample_fmt

    进入音频缓冲的采样格式。libavutil/samplefmt.hAVSampleFormat枚举值中的一个格式名称或者对应的整数

  • channel_layout

    进入音频缓冲的通道布局。为libavutil/channel_layout.c中的channel_layout_map定义的布局名称或者libavutil/channel_layout.hAV_CH_LAYOUT_*类宏(对应的整数表示)

  • channels

    进入缓冲的通道数。如果channelschannel_layout同时被设置,则二者必须一致。

abuffer例子

abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo

会用来指出源接受16位(信号)立体声(采样率44100Hz)。sample_fmts16p6channel_layoutstereo,即0x3sample_rate44100,它等效于

abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3

aevalsrc

按表达式生成一个音频信号(信号发生器)

它接受一个或者多个表达式(每个对应一个通道),根据表达式计算产生相应的音频信号。

接受如下的选项:

  • exprs

    由’|’分隔的表达式列表,每个表达式对应一个通道。以防channel_layout没有指定选项,选中的通道布局取决于提供的数量表达式。否则最后指定表达式应用于剩下的输出通道。

  • channel_layout, c

    设置通道布局。这里的通道数必须等于表达式数量。

  • duration, d

    设置源音频持续时间。参考ffmpeg-utils工具集手册(ffmpeg-utils(1))中的持续时间章节内容以了解语法。注意由此生成的音频持续时间可能会超过这里指定的时间,因为生成的音频最少是一个完整的帧内容。

    如果不指定,或者指定一个非负数,表面会持续生成音频信号。

  • nb_samples, n

    设置每个输出帧中每个通道的样例数量,默认1024。

  • sample_rate, s

    指定采样频率,默认44100.

每个表达式可以包含下面的常量:

  • n

    评估样本的数量,从0开始计数

  • t

    样本时间表示,从0开始计时

  • s

    样本采样率

aevalsrc例子

  • 生成静音(无声):

    aevalsrc=0

  • 生成频率为440Hz的正弦波,采样频率8000Hz:

    aevalsrc="sin(4402PI*t):s=8000"

  • 生成双路信号,这里指定为(中前和中后),表达式为:

    aevalsrc="sin(4202PIt)|cos(4302PIt):c=FC|BC"

  • 生成白噪声:

    aevalsrc="-2+random(0)"

  • 生成一个振幅调制信号:

    aevalsrc="sin(102PIt)sin(8802PI*t)"

  • 生成2.5赫兹双耳节拍在360赫兹的载体:

    aevalsrc="0.1sin(2PI*(360-2.5/2)t) | 0.1sin(2PI(360+2.5/2)*t)"

anullsrc

null(空)音频源会产生未处理的音频帧。它一般用于分析/调试,或作为滤镜可忽略的输入源(例如sox合成滤镜)

这个源接受下面选项:

  • channel_layout, cl

    指定通道布局,可以是整数或对应的短语,默认为"stereo".

    检查定义在libavutil/channel_layout.c了解短语和数字值对应关系。

  • sample_rate, r

    指定采样率,默认 44100.

  • nb_samples, n

    设置每帧中样例数量

anullsrc例子

  • 以采样率48000 Hz ,单声道(AV_CH_LAYOUT_MONO).

    anullsrc=r=48000:cl=4

  • 同上的效果(采样短语定义布局):

    anullsrc=r=48000:cl=mono

所有选项参数都必须明确定义。

flite

使用libflite库合成声音话语

编译选项是--enable-libflite

注意flite库不是线程安全的。

接受如下选项:

  • list_voices

    如果为1,列出有效的语音并退出,默认0.

  • nb_samples, n

    设置每个帧最大样例数量,默认512.

  • textfile

    设置要朗读的文件名

  • text

    设置要朗读的文本

  • voice, v

    设置语音合成的声音,默认kal. 参考list_voices选项

flite例子

  • 从文件speech.txt读,使用标准声音合成:

    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

  • 播放合成语音:

    ffplay -f lavfi flite=text=‘No more be grieved for which that thou hast done.‘

关于libflite库的更多信息,确认http://www.speech.cs.cmu.edu/flite/

sine

生成一个音频信号的振幅的正弦波1/8

是一个bit-exact音频信号(脉冲?)

接受如下选项:

  • frequency, f

    设置载波频率,默认 440 Hz.

  • beep_factor, b

    每个beep_factor倍载波频率周期产生一个beep,默认为0,表示beep被禁止

  • sample_rate, r

    指定采样率,默认44100.

  • duration, d

    指定产生音频持续时间

  • samples_per_frame

    设置每帧样例数,默认1024

sine例子

  • 产生440Hz的sine波Generate a simple 440 Hz sine wave:

    sine

  • 产生220Hzsine波,且880Hz产生一个beep,持续5秒:

    sine=220:4:d=5
    sine=f=220:b=4:d=5
    sine=frequency=220:beep_factor=4:duration=5

时间: 2024-08-06 09:17:40

ffmpeg文档35-音频源的相关文章

ffmpeg文档38-视频源

38 视频源 下面是当前有效的视频源 buffer 缓冲视频帧,其可以作为滤镜链图的环节 它通常用于编程,特别是通过libavfilter/vsrc_buffer.h的接口. 接受如下参数: video_size 指定视频尺寸,(同时指定width 和 height).语法同于ffmpeg-utils手册中的视频尺寸章节. width 输入视频宽 height 输入视频高 pix_fmt 像素格式描述,可以是一个表征像素格式的号码或者名称 time_base 指定时间戳时基 frame_rate

ffmpeg文档41-多媒体源

41 多媒体源 下面是目前可用的多媒体源的描述 amovie 它同于movie源,除了它选择一个默认音频流. movie 从影片内容中读取音频和/或视频流 接受下面的参数: filename 要被读取的资源名(不限于文件,可以是设备或者一些协议下的流). format_name, f 对要读取的影片指定格式,可以是容器或者输入设备,如果没有指定,将从影片名中猜测. seek_point, sp 指定定位点,单位秒.表示输出的开始点.这个参数与av_strtod评估,所以数字可能后缀一个IS后缀.

ffmpeg文档43-开发者

43 开发者 是FFmpeg的开发者 关于作者的详细信息,可以观看项目(git://source.ffmpeg.org/ffmpeg)的Git历史,或者项目中目录中使用命令git log了解,或者浏览在线的源码(http://source.ffmpeg.org) 源代码树中维护者文件(MAINTAINERS)列出了特定组件的维护人员 另本文档英文版本由makeinfo于2015年6月16日生成 汉化翻译补充说明 由xdsnet(xdsnet at gmail dot com)在2015年6月16

ffmpeg文档27-输出设备

27 输出设备 输出设备是可配置用于ffmpeg写入多媒体数据的元素,其附加到系统的输出设备. 在编译配置ffmepg时,所有支持的输出设备都被默认允许.你可以使用配置选项–list-outdevs了解有哪些设备. 你可以通过–disable-outdevs禁止编译所有输出设备,然后再通过–enable-outdev=OUTDEV以支持个别的设备,也可以通过默认配置,再添加–disable-outdev=OUTDEV来禁用个别设备. 在ff*工具集中,-devices可以显示当前允许的输出设备.

ffmpeg文档26-输入设备

26 输入设备 FFmpeg中的输入设备配置元素用来启用对附加到您的系统一个多媒体设备访问数据. 当编译时,默认会支持所有的输入设备.你可以通过在配置脚本执行时附加–list-indevs了解到支持的设备. 可以通过–disable-indevs在编译时禁用所有输入设备,也可以在此基础上通过–enable-indev=INDEV允许个别设备,或者在默认支持基础上通过–disable-indev=INDEV禁用个别设备支持达到类似的目的. 在ff*工具集中,使用-devices可以获取当前支持的设

ffmpeg文档16-音频编码器

16 音频编码器 介绍当前可用的音频编码器 aac AAC(Advanced Audio Coding )编码器 当前原生(内置)编码器还处于实验阶段,而且只能支持AAC-LC(低复杂度AAC).要使用这个编码器,必须选择 ‘experimental’或者'lower' 因为当前还处于实验期,所以很多意外可能发生.如果需要一个更稳定的AAC编码器,参考libvo-aacenc,然而它也有一些负面报告. aac选项 b 设置码率,单位是bits/s,是自动恒定比特率(CBR)模式的码率 q 设置为

ffmpeg文档05-选项

5 选项 所有的数值选项,如果没有特殊定义,则需要一个接受一个字符串代表一个数作为输入,这可能跟着一个单位量词首字母,例如"k","m"或"G" 如果i是附加到SI单位的首字母,完整的字母将被解释为一个2的幂数单位,这是基于1024而不是1000的,添加B的SI单位则是再将此值乘以8.例如KB,MiB,G和B 对于选项中不带参数的布尔选项,即把相应的值设置为true,它们可以添加no设置为false,例如nofoo就相当于foo false .

ffmpeg文档34-音频滤镜

34 音频滤镜 当你配置编译FFmpeg时,先采用--disable-filters可以禁止所有的滤镜,然后显式配置想要支持的滤镜. 下面是当前可用的音频滤镜 adelay 延迟一个或者多个音频通道 它接受如下选项: delays 参数是以|分隔的列表字符串,分别用于指明对应各个通道延迟的微秒(milliseconds)数.应提供至少一个大于0的延迟.未使用的延迟将被静默忽略.如果延迟值数量小于通道数量,则剩余通道不会被延迟. adelay例子 第一通道延迟1.5秒,第三通道0.5秒(其它通道均

ffmpeg文档17-视频编码器

17 视频编码器 介绍一些当前有效的视频编码器 libtheora libtheora的封装 编译需要头和库文件,还需要利用--enable-libtheora在配置中允许 更多信息参考http://www.theora.org/ libtheora选项 下面是映射给libtheora的全局选项,它们对品质和码率产生影响. b 对CBR(固定码率编码)设置码率,单位bit/s,在VBR(动态码率编码)模式下本选项被忽略. flags 设置是否允许qscale标志(恒定质量模式——VBR模式下)在