PHP 在网站中显示轴相机的代理

PHP Proxy to display axis camera in website

我有一个最大并发连接数为 20 的 axiscam。 我想在我的网站中嵌入 MJPG 流。到目前为止,我得到了以下 php 脚本:

header('content-type: multipart/x-mixed-replace; boundary=--myboundary');
while (@ob_end_clean());
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://WEBCAM/axis-cgi/mjpg/video.cgi?resolution=320x240');
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY | CURLAUTH_ANYSAFE );
    $im = curl_exec($ch);
echo $im;
curl_close($ch);
?>

和对应的HTML:

<script type="text/javascript">
$(function() {
    var timeout = 2000;
    var refreshInterval = setInterval(function() {
        var random = Math.floor(Math.random() * Math.pow(2, 31));
        $('img#camera').attr('src', '/webcam/webcam.php?r=' + random); //send a random var to avoid cache
    }, timeout);
 })
 </script>
 </head>
<body>
<img height="240" width="320" id="camera" src="">
</body>
</html>

我想我对 curl 一般缺乏一些了解,但我的猜测是,网络服务器 运行 一旦请求页面,curl 就会向网络摄像头发出请求。如果我在多台计算机上的多个浏览器中打开 HTML,我会超时。所以我的目标是我只打开一个连接到网络摄像头,然后从我的网络服务器获取图像。 现在的问题是,不知何故我仍然超过了这个解决方案的最大连接数。

我认为你应该创建一个 php 脚本来访问服务器上的相机和 save/overwrite 文件,稍后创建 cron 作业,假设每 5 秒访问一次该脚本。 当你这样做时,使用这个保存的文件在服务器上显示它,因为你的脚本此时只是为每个用户创建到相机的新连接。