【问题标题】:Auto select appropriate video quality depending upon network bandwidth?根据网络带宽自动选择合适的视频质量?
【发布时间】:2014-02-17 02:03:43
【问题描述】:
我有 3 种类型的视频:
- 720x720,
- 480x480 和
- 320x320。
如何根据用户的网络吞吐量自动选择视频质量?
【问题讨论】:
标签:
javascript
jquery
ruby-on-rails
html
ruby-on-rails-4
【解决方案1】:
第 1 步
在您的服务器某处上传大小约为 1Mb 的图像。您必须知道图片的确切大小(以字节为单位)和图片的 URL。
第 2 步
var imageAddr = "IMAGE_URL_HERE";
imageAddr += "?n="+Math.random();
var startTime, endTime;
var downloadSize = SIZE_OF_IMAGE_IN_BYTES;
var download = new Image();
download.onload = function () {
endTime = (new Date()).getTime();
showResults();
}
startTime = (new Date()).getTime();
download.src = imageAddr;
function showResults() {
var duration = (endTime - startTime) / 1000; //Math.round()
var bitsLoaded = downloadSize * 8;
var speedBps = (bitsLoaded / duration).toFixed(2);
var speedKbps = (speedBps / 1024).toFixed(2);
var speedMbps = (speedKbps / 1024).toFixed(2);
if(speedMbps<1){
//LOAD_SMALL_VIDEO
}
else if(speedMbps<2){
//LOAD_MEDIUM_VIDEO
}
else {
//LOAD_LARGE_VIDEO
}
}