我有多個自我託管的網絡安全攝像頭(Axis 2100,它們很舊),我想要將它們廣播到網站。這些攝像機支持MJPG格式的實時流式傳輸,但爲了從這些攝像機流式傳輸視頻,我必須公開它們。出於安全原因,我想限制通過我的網站查看這些相機,以便我可以對用戶進行身份驗證。由於攝像頭位於單獨的主機上,因此我使用cURL和PHP登錄到攝像頭,獲取MJPG圖像流,並將實時流回顯以顯示在網頁上。來自使用PHP和cURL的安全攝像頭的MJPEG視頻流
header('content-type: multipart/x-mixed-replace; boundary=--myboundary');
while (@ob_end_clean());
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://XX.XXX.XXX.XX/axis-cgi/mjpg/video.cgi?resolution=320x240');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY | CURLAUTH_ANYSAFE);
curl_setopt($ch, CURLOPT_USERPWD, 'USERNAME:PASSWORD');
$im = curl_exec($ch);
echo $im;
curl_close($ch);
問題是,當我試圖用代碼來訪問相同的PHP網頁上面的同一個瀏覽器多個會話,其餘的則留空白,並最終顯示500內部服務器錯誤只有一個會話得到加載。它通過多個不同的瀏覽器打開時會起作用,但會降低性能。
最終,我想使它成爲一個攝像頭服務器,我可以從攝像頭進行一個輸入流連接並將其廣播到多個客戶端。
我的網站由GoDaddy在linux服務器上託管,我不在專用服務器上,所以我不認爲我可以安裝任何花哨的開源視頻流託管服務器。
謝謝你,對於這麼長的帖子感到抱歉。
-T.Ho