我一直在寻找一种从AXIS M1114网络摄像机代理mjpeg流的方法。
使用以下网址设置
http://host:port/axis-cgi/mjpg/video.cgi?resolution=320x240&camera=1
我尝试捕获输出并使用在ubuntu上运行apache服务器的php脚本的用户可以使用它们。
浏览网页寻找答案无济于事我来找你。
我的最终目标是让用户能够像这样链接到代理:
<img src='proxy.php'>
并获取proxy.php中所有内容的详细信息。
我尝试过使用cURL的方式(在这里的类似线程中建议),但我无法让它工作,可能是因为缺乏对内部工作的了解。
目前我非常简单的proxy.php看起来像这样
<?php
$camurl = "http://ip:port";
$campath = "axis-cgi/mjpg/video.cgi";
$userpass = "user:pw";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $camurl + $campath);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'resolution=320x240&camera=1');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $userpass);
$result = curl_exec($ch);
header('Content-type: image/jpeg');
echo $result;
curl_close($ch);
?>
我的理解是,这将为我的计划产生可接受的输出。可惜。
我的问题是,如果有一个明显的错误,我没有看到。任何更简单的选择/方式来获得我的目标也是受欢迎的。
请指出正确的方向。我很乐意提供我可能错过的任何相关信息。提前谢谢。
解决了编辑:
评论后:
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
更改
curl_setopt($ch, CURLOPT_URL, $camurl + $campath);
到
curl_setopt($ch, CURLOPT_URL, $camurl . $campath); (mixing up some languages)
最重要的是删除.php文件中的空格,以便标题实际上是它所做的标题。
答案 0 :(得分:0)
添加
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
似乎需要将图像显示为图像而不是原始数据。