HTML5音频流:精确测量延迟?

我正在构建一个跨平台的Web应用程序,其中音频在服务器上即时生成,并且可能通过HTML5音频元素直播到浏览器客户端。在浏览器上,我将使用Javascript驱动的动画,必须与播放的音频精确同步。“精确”意味着音频和动画必须在彼此之间,并且希望在250ms内(想想唇形同步)。由于各种原因,我无法在服务器上进行音频和动画,并对生成的视频进行实时流式传输。

理想情况下,服务器上的音频生成和浏览器上的音频播放之间几乎没有或没有延迟,但我的理解是延迟将难以控制,并且可能在3-7秒范围内(浏览器,环境 - ,网络和月相依赖)。但是,我可以处理这个问题,如果我可以在运行中精确测量实际延迟,以便我的浏览器Javascript知道何时呈现正确的动画帧。

那么,我需要精确测量我将音频传输到流媒体服务器(Icecast?)和来自扬声器主机上扬声器的音频之间的延迟。一些蓝天的可能性:

  • 将元数据添加到音频流,并从播放音频中解析它(我知道使用标准音频元素是不可能的)

  • 为音频添加短暂的纯静音时段,然后在浏览器上检测它们(音频元素可以产生实际的音频样本吗?)

  • 查询服务器和浏览器的各种缓冲区深度

  • 在Javascript中解码流式音频,然后获取元数据

有关如何做到这一点的任何想法?



慕尼黑5688855
浏览 954回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP