nginx потоковый сервер, обслуживающий поток, который вызывает перезагрузку VL C в цикле - PullRequest
0 голосов
/ 01 апреля 2020

Я объяснил проблему в этом Вопросе по обмену стеками видео , так как я не верю, что это связано с кодом (например, ошибка).

Это может быть полезной информацией для разработчиков однако, что я не компилировал nginx из исходного кода. Я упоминаю об этом явно, потому что поиск в сети, кажется, что сборка из исходного кода является рекомендуемым способом для настроек nginx / rtmp. Однако я не смог найти отчет об ошибке, который бы объяснил это поведение.

Мне кажется, что я наблюдаю за чем-то глупым.

Ради полноты я выложу файлы конфигурации. Кроме того, не пропустите live-демо и получайте удовольствие, играя с потоковым сервером, связанным в другом посте;)

Happy Coding!

nginx .conf:

events {
    worker_connections 768;
    # multi_accept on;
}

http {
    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Gzip Settings
    ##

    gzip on;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

rtmp {
    include /etc/nginx/streams-enabled/*;
}

rtmp сервер (в потоках с поддержкой /)

server {

        listen 1935;
        chunk_size 4096;

        application live {
                live                    on;
                hls                     on;
                hls_path                /home/streamer/hls;
                hls_nested              on;
                hls_fragment            3s;
                hls_playlist_length     30s;
                hls_base_url            http://0.0.0.0:3456/hls;
                on_publish              http://0.0.0.0:3456/auth;
                # Recent versions of IE need this for normal playback.
                wait_video              on; # start audio with video
                # force hls
                deny play all;

        }
}

http-сервер (в сайтах с поддержкой /)

server {

    listen      3456;

    location /hls {

        add_header Cache-Control no-cache;

        # CORS setup
        add_header 'Access-Control-Allow-Origin' '*' always;
        add_header 'Access-Control-Expose-Headers' 'Content-Length';

        # allow CORS preflight requests
        if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
        }

        types {
        application/dash+xml mpd;
        application/vnd.apple.mpegurl m3u8;
        video/mp2t ts;
        }

        root       /home/streamer/;


    }
}

1 Ответ

0 голосов
/ 02 апреля 2020

Проблема с конфигурацией потока.

vl c -vv http://104.248.36.47: 3644 / hls / debug / index.m3u8 обнаружен выход:

[00007f0594002580] отладка основного потока: подключение к порту 0.0.0.0 3644 ...

[00007f0594002580] ошибка основного потока: ошибка подключения: соединение отклонено

.. .

[00007f0594002580] адаптивная отладка потока: получение http://0.0.0.0: 3644 / hlsdebug / 75.ts @ 0

Обратите внимание, что в нем говорится hlsdebug вместо ожидаемого hls / debug

После добавления '/' в hls_base_url и изменения 0.0.0.0 в publi c IP все работает.

Я не понимаю полностью поэтому 0.0.0.0 не будет работать ..

...