2014-01-07 23 views
1

我正在使用簡單(不安全)的php腳本通過我的服務器流式傳輸視頻。流媒體視頻的php代理中的帶寬/內存使用問題

<?php 
if(checkToken($_SESSION['token']) && isLoggedIn() && checkIsVideo($_GET['url'])){ 

    $dirFile = $_GET['url']; // http://othersite.com/video.mp4 
    header("Content-Type: video/mp4"); 

    $fh = @fopen($dirFile, "rb") or die(); 
    while (!feof($fh)){ 
     print(fread($fh, 1048576)); 
     @ob_end_flush(); 
     @ob_flush(); 
     @flush(); 
     @ob_start(); 
    } 
    fclose($fh); 
} 
exit(); 
?> 

但是這個PHP鏈接(http://mysite123.com/proxy.php?url=othersite.com/video.mp4)是被用來在我的網站上每一個用戶。

這意味着我可能會遇到php的內存限制問題,我知道我可以在「php.ini」文件中更改它。但是,我想知道一個更好的解決方案,使這個php代理腳本在我的服務器上不那麼耗費任務。所以我也可以處理帶寬並支付更少的費用;)

同樣,我也在考慮只爲這個「流式視頻代理」任務構建一個代理服務器。這樣我可以有一個網站服務器和代理服務器。每個人都能夠管理其流量。

我想我可以得到一個代理服務器,並使用一個鏈接,如:

http://myproxy.com/?url=othersite.com/video.mp4

我想聽到這個問題你的想法/解決方案。

謝謝:)

編輯:這些視頻文件通常是150 MB

+0

所有這些'@'只是讓我的眼睛閃耀;) –

+0

也許你可以設置一個隊列,以限制同時連接的用戶? – cubitouch

回答

1

我一直在Nginx的工作在過去的2年,我可以說這是你最好的選擇之一。爲什麼?

1)它是免費2)已經得到了很好的支持團隊3)您 MP4流式傳輸一個不錯的模塊:http://nginx.org/en/docs/http/ngx_http_mp4_module.html 4)高性能,您不必擔心內存和cpu 消費了

+0

那麼你是否建議獲取代理服務器併爲「代理流式傳輸」任務安裝Nginx? – Alex

+0

您不需要代理服務器。安裝nginx作爲你的主要網絡服務器,你就完成了! – iNDicator

+0

你能指導我嗎?你能給我一個可以幫助我實現這一目標的鏈接嗎? – Alex