Настройка прокси для ip-камеры оси в PHP

Я искал способ проксировать поток mjpeg с сетевой камеры AXIS M1114.

используя следующую настройку URL

http://host:port/axis-cgi/mjpg/video.cgi?resolution=320x240&camera=1

я пытаюсь зафиксировать вывод и сделать его доступным для пользователей с помощью php-скрипта, на котором работает сервер apache на ubuntu.

просмотрев Интернет в поисках ответа безрезультатно, я пришел к вам.

моя конечная цель состоит в том, чтобы пользователи могли ссылаться на прокси следующим образом:

<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);

to

curl_setopt($ch, CURLOPT_URL, $camurl . $campath);  (mixing up some languages)

и, что наиболее важно, удаление пробела в файле .php, чтобы заголовок на самом деле был заголовком, который делал то, что я хотел.


person marn    schedule 18.12.2014    source источник


Ответы (1)


Добавление

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

кажется, необходимо, чтобы изображение отображалось как изображение, а не как необработанные данные.

person Mathieu Bois    schedule 01.08.2020