我正在尝试从PHP中的Mjpeg流中获取帧 . 我已经尝试过文件读取来读取文件,然后在 Headers 提取框架的基础上 . 但我无法做到 . 我能够看到文件中存在 Headers ,但是当使用exif_read_data查找 Headers 是否存在时,它会显示没有 Headers . 我获取帧的代码是:
function grab_frame($url) {
$f = fopen($url, 'r'); //6,168
if($f) {
$r = null;
while(substr_count($r, "Content-Length")!= 5){
$r.= fread($f,40000000);
$start = strpos($img,'F1');
$end = strpos($img,'F2');
$frame = substr($r, $start, $end);
}
fclose($f);
return $frame;
}
}
我想使用内容长度标头来查找帧长度,然后获取整个帧数据,然后再次循环以查找下一帧 .
1 回答
这里的代码可能对您有所帮助 . 它将从MJPEG流生成JPEG快照 . 您需要更改$ boundary以匹配mjpeg流中找到的边界名称 . 您应该能够修改代码以捕获多个帧 .
(来自https://gist.github.com/megasaturnv/81279fca49f2f34b42e77815c9bb1eb8 . 代码在https://gist.github.com/megasaturnv/35578337662acd28e0bcd2946a4b069e的img标签中生成图像)