【发布时间】:2015-02-17 01:38:35
【问题描述】:
我一直在寻找一种方法来代理来自 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 文件中的一个空格,这样标题实际上就是我想要的标题。
【问题讨论】:
标签: php proxy stream ip-camera mjpeg