核心内容摘要
520886:数字的浪漫密码,诉说不止于“我爱你”的深情
音频延时是考量一个音频系统的重要指标。
假设系统音频数据能正常播放即播放无杂音等异常情况。
整个音频系统的所有buffer数据对应的时长就是延迟。
系统运行时判断延迟那么我们如何在系统运行前设置好系统buffer的大小起播阈值的大小使得系统的延迟能够按照我们的期望达成。
音频流我们可以分为实时现场直播和非实时的文件播放。
假设系统处理延时为0:也就是从一块buffer搬运到下一块buffer的时间为0。
那么系统的延时大致等于第一块buffer的起播阈值如果所有节点的起播阈值都一样的情况下。
如果起播阈值不一样的话等于最大那块buffer的延时。
假设音频系统每个节点处理(搬运)延时为Tn。
则总的延时为T1T2…Tn 最大起播阈值。
起播阈值和算法预处理攒数据的差别。
起播阈值假设为N当数据量达到N处理节点就可以马上释放这N个数据量。
算法预处理攒数据假设为N当输入数据量为N1时处理节点才可以释放1个数据量。
算法预处理攒数据对应的音频时长可以看作处理延时。
处理节点是否及时的问题每个节点处理音频数据的时间必须小于音频数据对应的播放时长。
如果出现空闲等待没数据处理会变相增加处理数据的时间。
所以优化延时的方法如下
减小处理链路最大的起播阈值。
减小节点处理带来的延时优化算法效率
减少节点空闲等待的时间。
各节点间的节奏匹配乒乓和搬运数据节奏一支减少睡眠时间