【问题标题】:Setting up proxy for an axis ip camera in PHP在 PHP 中为轴 ip 摄像机设置代理
【发布时间】: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


    【解决方案1】:

    添加一个

    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

    似乎需要将图像显示为图像而不是原始数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      相关资源
      最近更新 更多