Kev*_*jer 0 html video mp4 http-headers
我有一个问题,当我用 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
Run Code Online (Sandbox Code Playgroud)
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]
Run Code Online (Sandbox Code Playgroud)
需要让它在第一个上工作
moov
(metadata) 在mdat
(audio/video data) 之前。这也称为“快速启动”或“网络优化”。例如,Handbrake 有一个“Web Optimized”复选框,而ffmpeg和avconv有输出选项-movflags faststart
。您可以使用curl -I http://yoursite/video.mp4
或访问 http://web-sniffer.net/并在那里输入您的 mp4 URL来检查 Web 服务器发送的标头。HTTP 响应头应该包括Content-Type: video/mp4和Accept-Ranges: bytes,没有Content-Encoding:。