我们正在创建一个基于web浏览器的音乐流服务,它将包含单独的、同步的音频轨道的文件进行流。这些文件基本上是mp4s,但有一些附加的框。
流将按照MPEG-破折号标准进行,希望不会重新发明轮子(例如,有dash.js)。
更新160525 -添加更多背景:
MPEG-破折号是该项目的一项要求,因为它的特性(适应性、轻松的服务器设置等)。因为我所从事的项目只使用MPEG标准。
流本身是静态文件的按需播放,即没有实时流.回放将有两种模式:静态模式,只播放轨道,和互动模式,用户将能够改变音量,摇摄等。目前,静态播放是可以的。
现在,流媒体同步的多声道音频似乎并不是最常见的事情,我遇到了几个问题:
1.遵循MPEG-DASH标准。
MPEG-破折号似乎高度关注视频流。
有没有我找不到的关于音频流的文件或指南?
2. HTML5元素与网络音频API
AFAIK,<video>
和<audio>
元素一次只支持一条音频。他们通过MediaSource.addSourceBuffer()
提供了很多魔法,在这里,接收缓冲区的动态解码被处理.
解决这一问题的两种可能方法是:
<audio>
元素并手动同步它们AudioNode
s并手动同步它们。这意味着我们必须处理解码是否有其他或更好的方法来流多个同步音频?
3.利用现有图书馆
dash.js参考播放器遵循了DASH-AVC/264准则,据我所知,该指南解决了视频流问题,并将同时播放音频曲目的数量限制在一个。
它还使用了HTML5 <video>
元素,这将导致上文2中的问题。
但是,它确实包含了大量的与破折号相关的特性,例如自适应流、MPD清单解析等。
dash.js是适合多声道音乐流的好选择,还是最终会被黑客攻击?
如果我误解了什么,我非常乐意回答问题或者被纠正!
发布于 2016-07-05 20:33:54
我知道的一些答案:
我将补充一点意见,即在客户端合并两条轨道似乎不是一个好主意,除非您没有提到一些要求。在服务器端使用ffmpeg或类似的媒体服务器工具进行混合操作对我来说更有意义,这样您的客户端就只需要担心一个单一的流。如果需要同步不同的源流,那么在浏览器中实现JavaScript可能是不现实的。
https://stackoverflow.com/questions/37411402
复制相似问题