Рейтинг:0

Какова правильная конфигурация nginx для proxy_pass для локального видеопотока VLC?

флаг np

Я хочу иметь возможность пересылать канал с моей IP-камеры на веб-сайт. Я хочу сделать свой веб-сайт общедоступным через мой сервер nginx (в Ubuntu 20.04).

Во-первых, я использую VLC для повторного стриминга каналов с IP-камер:

vlc --intf dummy -vvv "rtsp://<пользователь>:<пароль>@10.0.0.34:554/stream2" --sout "#transcode{vcodec=theo,vb=720,scale=Auto,acodec=none ,ab=128,channels=2,samplerate=44100,scodec=none}:http{mux=ogg,dst=:8081/}" --sout-all --sout-keep --nooverlay --daemon

Это означает, что я локально, в своей локальной сети, могу сделать что-то вроде этого

<html>
    <head>/head>
    <body>

        <video>
          <source src="http://10.0.0.63:8080" type="video/mp4">
        </video>

    </body>
</html>

Хорошо, это работает локально, но как я могу настроить свой сервер nginx для передачи фида?

Вот чего я хочу добиться: https://мой.домен.com/камера2 --nginx-сервер--> http://10.0.0.63:8080

<html>
    <head>/head>
    <body>

        <video>
          <source src="https://my.domain.com/camera2" type="video/mp4">
        </video>

    </body>
</html>

Это то, что я пробовал без успеха:

http {
    proxy_cache_path /var/www/my.domain.com/cachelevels=1:2keys_zone=STATIC:10m inactive=24h max_size=1g;
    сервер {
            слушать 80;
            имя_сервера my.domain.com;

            местоположение / камера2 {
                    прокси_пасс http://10.0.0.63:8080;
                    прокси_http_версия 1.1;
                    proxy_set_header Обновить $http_upgrade;
                    proxy_set_header Соединение «обновление»;
                    proxy_set_header Хост $host;
                    proxy_cache_bypass $http_upgrade;
            }
    }
}

nginx.conf

Какова правильная конфигурация nginx для proxy_pass для локального видеопотока VLC?

Рейтинг:1
флаг gu

Скорее всего вам просто нужно переписать путь, чтобы избежать запроса http://10.0.0.63:8080/камера2 но вместо этого запрос http://10.0.0.63:8080/.

Я мало знаю о том, как VLC согласовывает RTSP с HTTP, так что это может быть что-то совершенно другое.

флаг np
На самом деле у меня есть много камер, которые обрабатываются разными экземплярами VLC на моем сервере Ubuntu. То есть: http://10.0.0.63:8080/-камера2; http://10.0.0.63:8081/-камера3; http://10.0.0.63:8082/-камера4; (и т.д.) Может я вас не понимаю, но как мне получить фид извне? Как в https://my.domain.com/camera2 (и т. д.)
Ginnungagap avatar
флаг gu
Я понимаю, что вы хотите, чтобы общедоступный URL-адрес камеры был `/cameraX`, но текущая конфигурация перенаправляет этот URL-адрес в VLC.Попробуйте использовать `proxy_pass http://10.0.0.63:8080/;` вместо того, чтобы удалить часть `/cameraX` при отправке запроса в VLC.
флаг np
Я не уверен, что понимаю? :-) Не могли бы вы предоставить фиктивную конфигурацию в своем ответе? Если это сработает, я отмечу это как правильный ответ.
флаг np
Теперь я понял! Завершающий `/` сделал свое дело! Большое спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.