我想通过PHP输出一个MP4视频文件。 当它通过Flash播放器(例如流式播放器)使用时,它工作得很好。 但是,当我试图使用它作为html5视频标签的来源或直接调用php文件时,它不起作用。通过PHP的MP4文件不播放HTML5视频
我使用的代码如下:
$filesize = filesize($file);
header("Content-Type: video/mp4");
if (empty($_SERVER['HTTP_RANGE']))
{
header("Content-Length: $filesize");
readfile($file);
}
else //violes rfc2616, which requires ignoring the header if it's invalid
{
rangeDownload($file);
}
和rangeDownload
功能是从http://mobiforge.com/developing/story/content-delivery-mobile-devices附录A.
即使当我使用Content-Range
报头(Content-Range:bytes 0-31596111/31596112
),它stucks上下载30.13 MB的视频。
那么,你的php.ini'max_execution_time'比视频长吗?您是否在静态和readfiled文件之间探测了其他标题差异(Firebug)? – mario
我建议检查php.ini中的最大内存设置 - 好像你用来发送视频给客户端的两个函数都是将整个文件读入内存然后发送给用户,你可能需要使用小块读取并发送它(例如2MB)。 –
建议不要将mp4用于html5视频。看看这里的图表,哪些浏览器目前支持HTML5视频的视频文件类型。 http://en.wikipedia.org/wiki/HTML5_video – dqhendricks