我已经为此研究了一分钟,但我的确切问题没有得到一个直接的答案。我正在尝试理解视频播放器切换视频质量(480p、720p、1080p等)的过程。
为了实现这一点,我首先要问的是,这更多的是前端还是后端的东西?为了说明第一个答案,我们这样做:
A)以最高质量上传一个视频文件到服务器(S3/Google Cloud),然后在HTML中使用video标签,并添加一个属性来指定所需的质量?
B)将一个视频文件以最高质量上传到服务器(S3/Google Cloud),然后使用JS控制播放质量?
C)通过服务端代码将最高质量的上传文件拆分成多个不同流媒体质量的文件,然后使用前端JS选择需要哪种质量?
D)意识到这比看起来要多得多,应该把它留给专业的视频流服务,如JWPlayer?
或者我没有看到另一种选择,没有流服务也是可能的,而不是真正地构建流服务?
如果答案几乎是D,你会推荐什么服务?
注意:我知道YouTube和Vimeo可以处理这个问题,但我不想有这样的开销。
发布于 2018-02-06 22:54:03
正如评论中提到的,答案是'C‘,也可能部分回答'D’。
您需要一个支持流行的可调比特率流协议(ABR)、DASH或HLS之一的视频流服务器。ABR允许客户端设备或播放器以块(例如10秒块)下载视频,并从最适合当前网络条件的比特率中选择下一个块。
有像GStreamer这样的开源流媒体服务器,也有像Wowza这样的授权流媒体服务器,如果你想自己托管视频,你可以起诉它们。
有关ABR的一些示例,请参阅以下答案:https://stackoverflow.com/a/42365034/334402
https://stackoverflow.com/questions/48332571
复制相似问题