2011-06-13 124 views
-2

我想讓我的PHP視頻處理程序文件提供視頻,並在文件處理程序頁面本身沒有運氣測試它。流視頻php

奇怪的行爲:只是彈出一個窗口詢問我是否要下載文件,即使我刪除了readfile()。如果我將video/x-flv更改爲video/flv,則會在我的窗口中加載播放器,但文件不播放。另外,如果我一起拿走頭,我的瀏覽器崩潰。

我覺得這個腳本應該至少把瀏覽器中的視頻放在瀏覽器中,如果我用瀏覽器直接測試這個文件,它可以在瀏覽器中播放。查詢後的文件路徑是正確的......此外,該文件位於我的Web目錄之外,但我認爲這不重要,因爲我可以使用類似的腳本成功地在目錄之外提供圖像。有人有主意嗎?

$sql="SELECT file_name FROM video WHERE vid_id=?"; 
$stmt=$conn->prepare($sql); 
$result=$stmt->execute(array($ID)); 

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
$file_name = $row['file_name'].".flv"; 
} 

$path="/home/g/Desktop/processed/".$file_name.""; 


//check if image is readible and type 
if (is_readable($path)) { 
header('Content-Length: '.filesize($path)); // provide file size 
header("Expires: -1"); 
header('Content-Type: video/x-flv'); 

$content=readfile($path); 


} 
else { 
error_log("Can't serve video: $file_name"); 
} 

回答

1

流式傳輸不能像那樣工作。
有你需要使用這樣的球員一個適當的流:http://flowplayer.org/

如果你只是發送視頻內容,瀏覽器會彈出保存對話框

+0

好吧,我有一個球員,這個文件是處理程序,我只是直接測試它,並認爲彈出窗口是異常的。我想用src爲video_handler.php?ID = $ vid_id的播放器來播放文件。由於某種原因,流不通過,這就是爲什麼我認爲有什麼錯誤。 – Scarface 2011-06-13 22:37:37

+1

@scarface它不能這樣工作,你需要給玩家他的標準URL,以便Apache可以管理接受範圍頭。否則,你需要在你的腳本中解析請求標題,但是在那個時候,東西變得更難了。無論如何,如果這個答案幫助你想到+1。謝謝 – dynamic 2011-06-13 22:39:31

+0

解析請求頭是什麼意思?不要擔心你的選票大聲笑,我會upvote你寫的一切,一旦我解決這個問題。如果它不工作,它如何適用於MP3播放器? – Scarface 2011-06-13 22:44:18

0

我無法使用PHP來傳遞視頻到OS播放器。我切換到流動播放器和事情正在工作。