var range = request.headers.range;
var total = file.length;
var parts = range.replace(/bytes=/, "").split("-");
var partialstart = parts[0];
var partialend = parts[1];
var start = parseInt(partialstart, 10);
var end = partialend ? parseInt(partialend, 10) : total-1;
var chunksize = (end-start)+1;
response.writeHead(206, { "Content-Range": "bytes " + start + "-" + end + "/" + total, "Accept-Ranges": "bytes", "Content-Length": chunksize, "Content-Type": type });
response.end(file);
"request"代表http请求,type可以是"application/ogg"或"video/ogg"(我尝试过两种),而"file"则是从文件系统中读取的.ogv文件。以下是响应头:
Content-Range bytes 0-14270463/14270464
Accept-Ranges bytes
Content-Length 14270464
Connection keep-alive
Content-Type video/ogg
我已经检查了响应头,这段代码似乎工作正常,但存在几个问题:
- 视频在本地网络上加载速度非常慢。从我使用Firebug检查响应的结果来看,文件似乎以约150 kb / sec的速度流入。
- 视频根本无法播放。即使我等待整个视频完全加载,Firefox中的HTML 5视频标签也只显示一个大的“x”,而不是电影。
有人有什么想法可以让我通过node.js实现视频流吗?
谢谢!
Chris