2014-04-08 122 views
0

我有一個簡單的html5視頻標籤,指向通過php的mp4視頻。 我的問題是,視頻只有在瀏覽器完全加載後纔開始播放。用php在apache上播放html5視頻

我應該如何用php輸出視頻?我已經使用http範圍標題,但沒有。

我應該如何配置apache以便可以立即開始播放視頻(一旦它只下載了一部分)?是否有我應該啓用的任何模塊?

HTML代碼:

<video width="640" height="264" preload="none" controls="" class="video-js vjs-default-skin" id="approval-playing-video"> 
    <source type="video/mp4" src="dam/index/get-video-preview?id=186&amp;md5=3386d3701e403c69e1c4323168f6ee74"></source> 
</video> 

PHP(ZF2框架)服務器代碼:

$response = new Stream(); 
    $response->setStream(fopen($file, 'r')); 
    $response->setStatusCode(200); 
    $response->setStreamName(basename($file)); 

    $headers = new Headers(); 
    $headers->addHeaders(array(
     'Content-Type'  => 'video/mp4', 
     'Accept-Ranges'  => 'bytes', 
     'Content-Length' => filesize($file) 
    )); 

    return $response->setHeaders($headers)->setContent($file); 

系統測試: Centos的,阿帕奇2,PHP 5.4 測試與Firefox 24

不限建議將非常有用。

回答

2

首先,你需要確保你的服務器可以播放的格式正確,「快速啓動」視頻:

您可以在http://vjs.zencdn.net/v/oceans.mp4下載文件並將其託管服務器上。如果它工作正常(即視頻在完全下載之前開始),那麼你的服務器/腳本配置是好的。

如果上述工作的問題可能是您的MP4格式不正確。您可以嘗試使用handbrake或重新打包文件。你需要激活手動剎車的「web優化」選項(又名快速啓動)。

對於MP4Box(Linux版):在這個hereMP4Box -inter 500 yourFile.mp4

更多信息。

+0

謝謝。我應該如何檢查服務器是否可以正常播放格式爲「快速啓動」的視頻? – albanx

+0

下載http://vjs.zencdn.net/v/oceans.mp4並將其託管在您的服務器上。嘗試播放它,看看它是否立即開始。 –

+0

ocean.mp4是來自http://www.videojs.com/的樣本 –