PHP返回视频流给IOS播放-2014-07-18更新

2014-04-24 14:43:38 查看评论 952 人阅读    

通过手机上传视频,然后返回URL给IOS进行播放,因为播放地址是通过PHP读取然后返回的,在网页上正常播放,但是在IOS就无法播放。

以下是header头部信息:

HTTP/1.1 200 OK
Server: nginx/1.2.7
Date: Thu, 24 Apr 2014 02:20:29 GMT
Content-Type: video/mp4
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.26
Accept-Ranges: bytes


通过抓包发现IOS请求是通过断点续传的方式。
HTTP1.1协议(RFC2616)中定义了断点续传相关的HTTP头 Range和Content-Range字段,一个最简单的断点续传实现大概如下: 
  1.客户端下载一个1024K的文件,已经下载了其中512K 
  2. 网络中断,客户端请求续传,因此需要在HTTP头中申明本次需要续传的片段: 
       Range:bytes=512000- 
    这个头通知服务端从文件的512K位置开始传输文件 
  3. 服务端收到断点续传请求,从文件的512K位置开始传输,并且在HTTP头中增加: 
    Content-Range:bytes 512000-/1024000 
    并且此时服务端返回的HTTP状态码应该是206,而不是200。 

分类: PHP 标签: 视频流 断点传输