我想讓我的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");
}
好吧,我有一個球員,這個文件是處理程序,我只是直接測試它,並認爲彈出窗口是異常的。我想用src爲video_handler.php?ID = $ vid_id的播放器來播放文件。由於某種原因,流不通過,這就是爲什麼我認爲有什麼錯誤。 – Scarface 2011-06-13 22:37:37
@scarface它不能這樣工作,你需要給玩家他的標準URL,以便Apache可以管理接受範圍頭。否則,你需要在你的腳本中解析請求標題,但是在那個時候,東西變得更難了。無論如何,如果這個答案幫助你想到+1。謝謝 – dynamic 2011-06-13 22:39:31
解析請求頭是什麼意思?不要擔心你的選票大聲笑,我會upvote你寫的一切,一旦我解決這個問題。如果它不工作,它如何適用於MP3播放器? – Scarface 2011-06-13 22:44:18