如何解决想知道是否有办法阻止 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 举报,一经查实,本站将立刻删除。