音频重采样注意事项--软件层面

为什么要对音频重采样?

1.设备标准化:对于不同的设备 所需要的采样率不同,所以此时需要对原始音频重新采样

2.格式标准化:

复制代码
MP3: 通常 44.1 kHz
AAC: 多种采样率,但需要统一
视频容器: 通常要求固定采样率
直播流: 需要特定采样率以节省带宽

3.带宽与存储优化

复制代码
// 高保真音乐:保持高质量
目标采样率 = 48000 Hz  // 专业质量

// 语音通话:节省带宽  
目标采样率 = 16000 Hz  // 语音清晰且文件小

// 低带宽网络:进一步压缩
目标采样率 = 8000 Hz   // 基本可懂度
复制代码
原始音频: 48 kHz, 3分钟, 立体声 ≈ 33 MB
重采样后: 22.05 kHz, 3分钟, 立体声 ≈ 15 MB  // 节省50%空间!

4.音视频同步等等

如何对音频重采样

首先如果一个视频,我需要对里面的音频进行重采样 ,那么为了保证视频重采样后,视频依旧同步,那么需要保证 时间同步。 为了保证时间同步,那么最重要的就是原本视频的每一帧数据依旧对应上音频的每一帧数据,而一帧数据又有多个采样点。
所以我们可以推出以下公式

已知 原数据采样率 ,一帧数据有多少采样点,以及目标音频的采样率。
src_samples / src_sample_ratio = dst_samples / dst_sample_ratio

所以我们就可以推出 转换后一帧需要多少个采样点

dst_samples = ( src_samples / src_sample_ratio )*dst_sample_ratio

对于重采样分为两种

低频->高频 : 此时一帧需要的采样点数量会变多

高频->低配:此时一帧需要的采样点数量会少

那么 这时候可能会有两个问题

对于低频到高频 原数据的采样点根本就不够 高频需要的那么多个采样点?

这时候就需要对原本的数据进行信号重建

任何带宽受限的连续信号,都可以用离散样本完美重构,只要:

复制代码
采样频率 > 2 × 信号最高频率

通过重构的信号进行重新采样。

对于高频到低频 原数据的采样点有冗余 那么低频如何处理多出来的采样点?

高频输入 → 抗混叠低通滤波 → 抽取降采样 → 低频输出

但是还有一个问题对于pts(即显示时间戳,用于指示音频或视频帧应该在什么时候被呈现(播放)。在音视频同步中,PTS非常重要。) 为0的情况 ,我们可以通过以上公式算出固定的一帧的采样数

但是如果原始数据的pts 比如 为 10000的时候,此时计算显示时间 pts/src_sample_dts(22k)

pts/dst_sample_dst(44.1k)

可以看到第一帧的pts出现了偏移所以我们为了解决这个问题

我们需要通过进行时间轴缩放

将pts* ratio(src_sample_ratio/dst_sample_ratio)

此时的pts才是正确的pts

相关推荐
TechVoyager_824611 小时前
HDMI信号进来,音视频出去:IT66021FN的全链路解析
音视频·音视频处理·it66021·hdmi接收芯片·hdmi1.4b·硬件方案·音视频全链路
ValueHD14 小时前
视频会议终端是什么,有哪几种类型?
后端·音视频·视频编解码·腾讯会议
redfred14 小时前
HandBrake 使用教程:开源视频压缩工具 视频太大压缩 MKV转MP4 批量转码 硬件加速 Windows/macOS/Linux
windows·开源·音视频
老余说AI14 小时前
告别机械音与音画脱节:2026 AI视频翻译与配音工具深度测评与工程选型指南
人工智能·音视频·视频翻译·视频配音
阿童木写作14 小时前
自动智能抠图工具推荐:跨马翻译批量处理图片与视频字幕,跨境电商高效翻译
大数据·人工智能·python·音视频
乐橙开放平台14 小时前
把工地遮挡和掉线接进项目部:setMessageCallback 订 alarm 与 deviceStatus
笔记·后端·物联网·自动化·音视频·智能家居
纽格立科技17 小时前
埋在地下的那张铜网
车载系统·音视频·信息与通信·传媒
极客猴子17 小时前
iPhone免费版支持思维导图导出的会议APP推荐:导出能力对照
人工智能·智能手机·音视频·机器翻译
硅谷秋水18 小时前
Zero-WAM:基于人类视频的上下文世界-动作建模,用于开放式任务泛化
人工智能·深度学习·计算机视觉·语言模型·机器人·音视频
芒果作者18 小时前
视频审核助手
人工智能·音视频