我想通過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