[英]Streaming multi-track audio using DASH
我们正在创建一个基于Web浏览器的音乐流媒体服务,该服务可以传输包含单独的同步音轨的文件。 文件基本上是mp4s,但有一些额外的框。
流式传输将遵循MPEG-DASH标准,并且希望不重新发明轮子(例如,有dash.js )。
更新160525 - 添加更多背景:
MPEG-DASH是项目的一项要求,无论是其功能(适应性,简易服务器设置等),还是因为我正在研究的项目只使用MPEG标准。
流本身是静态文件的按需播放,即没有直播。 播放将有两种模式; 一个只播放曲目的静态模式,以及一个用户可以改变音量,平移等的交互模式。现在,静态播放很好。
现在,流式同步多轨音频似乎并不是最常见的事情,我遇到了几个问题:
MPEG-DASH似乎高度关注视频流。
是否有任何关于纯音频流的文档或指南,我无法找到?
AFAIK, <video>
和<audio>
元素一次只支持一个音轨。 它们通过MediaSource.addSourceBuffer()
提供了大量的魔力,可以对输入缓冲区进行即时解码。
解决这个问题的两种可能方法是:
<audio>
元素并手动同步它们 AudioNode
并手动同步它们。 这意味着我们必须处理解码 有没有其他或更好的方法来流式传输多个同步音轨?
dash.js参考播放器遵循DASH-AVC / 264指南,根据我的理解,该指南解决了视频流,并将同时播放的音频轨道的数量限制为一个。
它还使用HTML5 <video>
元素,这导致上面的问题。
它,然而,含有大量的DASH相关的功能,如自适应流,MPD清单解析等等等等。
dash.js是多轨音乐流媒体的最佳选择,还是最终成为黑客?
如果我误解了任何事情,我非常乐意回答问题或纠正错误!
我知道的一些答案:
我将添加一个注释,即在客户端组合两个轨道似乎不是一个好主意,除非有你没有提到的要求。 使用ffmpeg或类似的媒体服务器工具在服务器端进行混合更有意义,然后您的客户端只需要担心单个流。 如果需要同步不同的源流,那么在浏览器中使用JavaScript可能是不现实的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.