采样格式
定义:采样格式指的是音频样本数据的数字表示方式。常见的格式包括脉冲编码调制(PCM)格式,它们可以是浮点数(如32位浮点)或整数(如16位或24位)。
类型:
PCM S16LE/S16BE:16位有符号整数,小端/大端。这是CD音质的标准格式,提供足够的动态范围,文件大小适中。
PCM S24LE/S24BE:24位有符号整数,小端/大端。提供更宽的动态范围,常用于专业音频录制。
PCM F32LE/F32BE:32位浮点数,小端/大端。允许极其宽的动态范围,但文件大小也较大。
选择考量:选择合适的采样格式通常要平衡音质需求、存储空间限制和系统兼容性。
多声道系统
常见的多声道配置有
- 5.1 系统:包括前左、前右、中央、低频效果(LFE)、后左和后右六个声道。
- 7.1 系统:在 5.1 的基础上增加了两个侧面声道(侧左和侧右),以实现更全面的环绕声效果。
- 其他配置:如 9.1 系统等,根据不同的应用需求,可能会有更多的声道配置。
在这个部分引入音频帧的计算,方便我们下面进行pts、dts、cts分析
音频帧的数据量 = 采样率 * 采样位宽 * 声道数 * 时间
播放时间 = 总采样数/采样率总采样数 = 音频帧数据量/声道数
各种官方文档都对这一部分有规定,总采样数(samples)指的是一个声道的采样,帧(frame)指的是一个时间点的样本集合,包(packet)指的是多个frame的集合
FFmpeg对于音频重采样的处理
首先是配置上下文swr_alloc_set_opts;接下来对于swr_init初始化音频采样格式等基础信息;由swr_convert执行实际的重采样工作;最后由swr_free释放资源。