HTML5视频:检测带宽

bbe*_*ord 14 javascript html5 video-streaming html5-video

我有一个1080p视频,我<video>在我的页面上的HTML5 标签中显示.

是否有一种简单的(ish)javascript方法来检测带宽,因此如果用户连接速度太慢而无法流式传输视频,我可以将视频切换为质量较低的版本?与YouTube的"自动"视频尺寸选择器背后的逻辑类似.

dro*_*der 5

根据您使用的播放器和编码平台,您可以对视频使用HLS编码.HLS代表HTTP Live Streaming,这是Apple开发的用于主要解决此问题的协议(以及其他).

HLS基本上将您的视频文件分成多个小文件,因此可以使用简单的Web服务器对其进行"伪"流式处理.使用HLS,您还可以以多种分辨率进行编码,并且播放器可能能够切换到更低或更高的带宽.

唯一的缺点是大多数玩家使用Flash来播放HLS编码的内容.在这里查看它:http://www.flashls.org/latest/examples/chromeless/

这是流媒体的HLS演示:http://demos.flowplayer.org/basics/hls.html

这是VideoJS的一个插件:https: //github.com/videojs/videojs-contrib-hls

要在HLS中进行编码,您可以免费使用ffmpeg并将文件上传到您的服务器:https: //www.ffmpeg.org/ffmpeg-formats.html#hls-1

或者,您可以使用基于云的解决方案,如AWS Transcoder或Brightcove https://aws.amazon.com/elastictranscoder/

  • `videojs-contrib-hls`:"*这个项目通过在支持Media Source Extensions的浏览器上为HLS提供polyfill来解决这种情况,或者失败了,支持Flash.你可以部署一个HLS流,代码对常规HTML5视频API,可在所有大型网络设备类别中创建快速,高质量的视频体验.*"太棒了!正是我需要的!非常感谢! (2认同)

Mad*_*iha 0

我讨厌这个功能!这通常是错误的,如果我想等 2 小时来加载我的视频,那我就等吧!如果不向用户发送大型虚拟文件并测量到达用户所需的时间,则没有可靠的方法可以准确测量这一点。

您应该依靠用户输入(并正确记住它!也与 YouTube 不同!)。

简而言之,不要以 YouTube 为例