我们正在尝试使用AVPlayer实现低延迟的音频流(只存在编码的音频数据,没有视频数据)。我们已经测试了HTTP和HLS等音频流协议,并观察到播放的最小延迟为3秒。在开始播放之前,AVPlayer是否要求设备上至少有3秒的输入缓冲区?
延时缩短与音频播放质量有关联吗?
我们能减少这种延迟吗?如果是,有什么建议或推荐的实践吗?
发布于 2020-05-29 04:45:24
使用音频单元可以最小化延迟,因为音频单元可以要求配置非常短的音频缓冲区,通常是20 mS到5 mS,甚至在一些苹果设备上甚至更少。可以使用具有MTU大小的UDP数据包在网络上流式传输数据,在这种情况下,网络缓冲和流量干扰可能是增加延迟的主要因素。您可能必须添加一些延迟(循环环形缓冲区填充级别),以应对更糟糕的网络计时抖动。然后,对于mp3压缩音频,添加最小mp3块大小以及您选择的mp3解码器所需的时间。
其他API和协议可能会增加大量开销和缓冲延迟。
发布于 2020-05-30 03:10:45
如果缓冲区(也称为loadedTimeRanges)足以满足延迟条件,您可以手动观察playerItem.loadedTimeRanges和play pause AVPlayer
https://stackoverflow.com/questions/62035968
复制相似问题