2011-07-28 18 views
1

我需要一種方法來隱藏DivX播放器的嵌入代碼中的文件源。用PHP爲divx播放器隱藏文件源

文件源是遠程的。我試圖通過使用標題的PHP文件流式傳輸文件。我使用3個部分。 1:在會話中定義文件路徑。 2:嵌入視頻閱讀文件:stream.php。 3:重定向到視頻源。

這裏是第1部分,定義文件來源:

<?PHP session_start(); 
$_SESSION["url_vid"] = "http://remote-server.com/file.avi"; 
?> 

這裏是嵌入代碼(第2部分):

<object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" width="320" height="260" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab"> 
       <param name="custommode" value="none" /> 
       <param name="autoPlay" value="false" /> 
       <param name="src" value="stream.php" /> 
       <embed type="video/divx" src="stream.php" custommode="none" width="850" height="400" autoPlay="false" pluginspage="http://go.divx.com/plugin/download/"> 
       </embed> 
      </object> 

這裏是stream.php代碼:

<?PHP 
session_start(); 
header("Location :".$_SESSION["url_vid"]); 
?> 

這不起作用。

當它運行DivX播放器時,它會發出以下提示:「DivX Plus Web Player無法下載視頻,請檢查您的Internet連接」但直接進入stream.php文件時,它開始下載文件。

有誰知道任何替代方法來隱藏文件路徑。或者以某種方式與stream.php文件大驚小怪,讓它通過DivX播放器工作。

我需要使用DivX播放器,因爲它可以讀取.avi文件。

+0

什麼是不工作呢? – Phil

+0

它不會將文件流式傳輸到DivX播放器 –

+0

先做一些調試,Patrick。我們需要更多的努力,而不是「它不工作」。 –

回答

2

http://labs.divx.com/node/1304

顯然的DivX不會做餅乾太清楚了。這可能是解釋。我認爲這是不可能的。

我注意到,當網絡播放器啓動時,它使2連接(任何 電影)。第一個連接下載一個2。8 KB(我想這是 標題,告訴divx播放器,如果該文件是一部電影),然後 下載電影本身並播放它的第二個連接。

什麼我注意到的是,爲「啓用」驗證時,DIVX網絡播放器 請求的第一個連接「與cookies」,所以它會正確地得到 頭,但是當涉及到第二(實際)連接,它 不發送COOKIE,因此返回的電影是Access 拒絕文本。

你可能要考慮設置某種臨時密鑰的傳遞給stream.php,這stream.php可以查找,然後匹配到URL重定向到(然後刪除鍵阻止人們複製鏈接) - 也就是說,如果問題不是因爲DivX不支持重定向。

0

嘗試

header("Location: " . $_SESSION["url_vid"]); // moved colon 

但是,即使是這樣,我不知道,你可以攔截並重新寫這樣的流媒體請求。他們不是簡單的「請求內容,獲取內容,完成」任務,你已經習慣了。

如果沒有別的,媒體播放器需要知道HTTP Location標題和支持根據該標題更改其目標URL;你沒有向我們表明你已經做過任何研究來確定是否是這種情況。

(最終,你應該記住,header("Location: abc")是不是靈丹妙藥,改變在服務器端的請求;你發送一個HTTP頭回客戶,邀請到「再試一次」用不同的地址)

也有考慮餅乾。您似乎在使用基於會話的cookie,除非您的播放器軟件支持並使用它們,否則會話變量將不可見。