播放HTML5视频而不加载

时间:2014-09-19 15:02:05

标签: html5 video http-headers mp4

我有一个问题,当我用HTML5播放器播放一个大文件时,它会在5分钟之后启动,因为他在播放前先下载视频。 无论大小如何,我如何立即启动视频并在播放时下载?

在谷歌上查了3天却找不到任何东西。 我希望有人可以帮助我,谢谢

HTTP标头(不是文件路径)

Status: HTTP/1.1 200 OK
Server: nginx   
Date:   Fri, 19 Sep 2014 15:38:02 GMT   
Content-Type:   text/html; charset=UTF-8    
Transfer-Encoding:  chunked 
Connection: close   
X-Powered-By:   PHP/5.4.32  
Cache-Control:  no-store, no-cache, must-revalidate, max-age=0  
Cache-Control:  post-check=0, pre-check=0   
Pragma: no-cache    
Content-Encoding:   gzip

HTTP标头(文件路径)

GET patt/to/file HTTP/1.1[CRLF]
Host: domain[CRLF]
Connection: close[CRLF]
User-Agent: Web-sniffer/1.1.0 (+http://web-sniffer.net/)[CRLF]
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no-cache[CRLF]
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]
Referer: http://web-sniffer.net/[CRLF]

需要让它在第一个工作

2 个答案:

答案 0 :(得分:3)

  1. Ensure that the moov (metadata) is before the mdat (audio/video data)。这也被称为"快速启动"或"网络优化"。例如,Handbrake has a "Web Optimized" checkboxffmpegavconv的输出选项为-movflags faststart
  2. 确保您的网络服务器报告的内容类型正确(video / mp4)。
  3. Ensure that your web server is configured to serve byte range requests
  4. 确保您的网络服务器未在mp4文件中的压缩之上应用gzip或deflate压缩。
  5. 您可以使用curl -I http://yoursite/video.mp4或转到http://web-sniffer.net/并在那里输入您的mp4网址来检查您的网络服务器发送的标头。 HTTP响应标头应包括内容类型:视频/ mp4 接受范围:字节,并且不包含内容编码:

答案 1 :(得分:0)

试试这个javascript,它将play()功能绑定到oncanplayevent HTML5 video defined by W3C

var myVid = document.getElementById("video1");
myVid.oncanplay = function() {
  myVid.play();
}