1

我有一个ZoneMinder媒体服务器,它通过 http 提供 CCTV 的实时信息。它是对图像流(不是视频)的响应。

现在我制作了一个需要显示实时流提要的第三方 Web 应用程序。我在这里遇到的问题是,我需要在不向 ZoneMinder 服务器发出任何浏览器请求的情况下集成系统,我不想从第三方应用程序后端进行集成并将它们返回到浏览器中。

我为应用程序使用 PHP,到目前为止,我运行了这段代码:

$link = get_zoneminder_url_stream();
header("Content-Type: multipart/x-mixed-replace;boundary=ZoneMinderFrame");
$fd = fopen($link, "r");
while(!feof($fd)) {
      echo fread($fd, 1024 * 5);
      ob_start();
      ob_end_flush();
      ob_flush();
      flush();
}
fclose ($fd);

我得到了 ZoneMinder 服务器的预期实时图像流。但是我遇到了几个问题。

当我开始直播(执行上面的代码)时,我的 Web 应用程序的其余部分变得无响应。无法处理对服务器 php 脚本的所有请求(它总是在浏览器开发者控制台的网络选项卡中“挂起”),但仍然可以处理其他文件(如资产文件)的 GET 请求。

我知道在这一点上,我遇到了 PHP 本身而不是 Web 服务器的一些问题。

所以我的问题是从 PHP 服务器向另一台服务器发出实时流请求并将流作为对浏览器的响应的最佳方式是什么。

提前致谢

4

0 回答 0