我正在使用php腳本向JWPlayer提供文件,以防止leeches獲取URL並在iPhone和Roku應用程序中使用它。所以我打電話給videoplay.php?id = myfile。輸出是一個mp4視頻流。文件通常是200-500MBytes。如何使用PHP優化資源使用情況readfile()
php腳本可以正常工作,並且對它進行了一些調整,甚至比我的初始版本還要好。但它是一種資源。當我播放一個文件時,我無法在瀏覽器中打開另一個窗口訪問同一網站上的任何頁面......我甚至無法顯示當前頁面的源代碼。如果我通過直接向播放器提供網址來播放完全相同的視頻文件,我就不會遇到資源問題,並且我可以在播放視頻的同時查看頁面的來源,並且可以在同一瀏覽器中同時播放同一網站上的兩個視頻在兩個不同的頁面上)。
這裏是我的代碼
// some code to query database and get the file url
//
$fh = fopen($filename, "rb") or die("Could not open movie\n");
while (!feof($fh) && connection_status() == 0)
{
print(fread($fh, 1024*8));
flush();
ob_flush();
usleep(10000);
}
fclose($fh);
我加了usleep設法限制資源的使用,並沒有工作,但影片似乎加載速度更快。當我長時間逗留(例如1/10秒)時,視頻需要更長的時間才能加載。如果我在1024 * 4和1024 * 16之間改變塊大小,8kbyte似乎會導致視頻加載時間最快。 16kbyte使用更多資源,似乎最大限度地減少了我的25MBit連接。根本不會從我的本地服務器加載視頻(但我們的雲服務器上的遠程視頻會加載)。將塊大小減少到1k字節並不能解決資源問題。
我在做什麼錯?
該頁面是否使用會話?可能是會話鎖定問題,您無法在加載網站時加載網站上的任何其他頁面。 – Maerlyn
是的,它使用會話。我會盡力關閉它。 –