微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

想知道是否有办法阻止 PHP 输出的 mjpeg 流

如何解决想知道是否有办法阻止 PHP 输出的 mjpeg 流

我正在通过 PHP 输出 MJPEG 流,因此该流的直接链接不会在网站上公开显示(我只是作为中间人链接到该文件)。 该代码有效,如下所示:

header('Content-type: video/x-motion-jpeg');
$server = "server.com";
$port = "8080";
$url = "/mjpg/Cam1/video.mjpg";
set_time_limit(30); // Doesn't affect the streaming timeout
$fp = fsockopen($server,$port,$errno,$errstr,30); // The timeout set here doesn't affect the streaming timeout
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    $urlstring = "GET ".$url." HTTP/1.0\r\n\r\n";
    fputs ($fp,$urlstring);
    while ($str = trim(fgets($fp,4096))){
        header($str);
    }
    fpassthru($fp);
    fclose($fp);
}

我想知道是否有办法在一段时间后(例如:5 分钟)终止此流(服务器端,而不是客户端)。 如果需要,我愿意使用不同的代码/功能,或者以不同的方式来解决这个问题。

解决方法

根据@Barmar 的建议,我编写了一个循环调用 fread() 并检查每次迭代中的时间,直到达到超时。到目前为止,它已经成功了。

代码如下:

$ ./bin/22bit
enter a 22-but signed number: -2097153
  error: value out of range for 22-bit.
enter a 22-but signed number: -2097152

valid 22-bit signed number: -2097152

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。