Рейтинг:1

Nginx с модулем rtmp и адаптивным потоком ffmpeg не создает манифест master dash

флаг in

У меня есть рабочая установка nginx с модулем rtmp, работающим как шарм, создающим прямые трансляции как с тире, так и с hsl. Пока нет проблем.

Когда я пытаюсь включить транскодирование ffmpeg для адаптивной потоковой передачи, он отлично создает версию hls, фрагменты видео, m3pu8 для каждой версии видео и мастер-файл m3u8, который я вызываю из веб-плеера.

Но в версии dash я получаю куски, манифест mpd для каждой версии, но не главный манифест.

Я что-то пропустил? Любая помощь будет принята с благодарностью.

nginx.conf:

События {
    worker_connections 1024;
}
rtmp { 
    сервер { 
        слушать 1935; 

        приложение в прямом эфире { 
            жить дальше; 
            exec ffmpeg -i rtmp://stream.server.net/live/$name -threads 1
            -c:v libx264 -profile:v baseline -b:v 768K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 96k 
            rtmp://stream.server.net/liveout/$name_360 
            -c:v libx264 -profile:v baseline -b:v 1024K -s 852x480 -f flv -c:a aac -ac 1 -strict -2 -b:a 128k rtmp://stream.server.net/liveout/ $имя_480;
        } 

        выход приложения {
                жить дальше;
                глс вкл.;
                hls_path /дом/поток/hls/;
                hls_фрагмент 4s;
                hls_playlist_length 60 с;

                броситься вперед;
                dash_path /home/stream/dash;
                dash_fragment 10 с;
                dash_playlist_length 30 с;
                dash_nested выключено;

                hls_variant _360 ПОЛОСА=448000;
                hls_variant _480 ПОЛОСА=1152000;
        }



    } 
} 
 
http { 
    сервер {
        имя_сервера stream.server.net;
        корень /дом/поток/;


        местоположение / hls {
            # Подавать фрагменты HLS
            типы {
                приложение /vnd.apple.mpegurl m3u8;
                видео/mp2t ц;
            }
            корень /дом/поток/;
            add_header Cache-Control без кеша;

            # Настройка CORS
            add_header 'Access-Control-Allow-Origin' '*' всегда;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # Разрешить предварительные запросы CORS
            если ($ request_method = 'ВАРИАНТЫ') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'текст/обычная кодировка = UTF-8';
                add_header 'Длина контента' 0;
                вернуть 204;
            }
        }


        местоположение / тире { 
            корень /дом/поток/; 
            # Подавать фрагменты DASH
            типы {
                приложение/тире+xml mpd;
                видео/mp4 mp4;
            }

            add_header Cache-Control без кеша;

            # Настройка CORS
            add_header 'Access-Control-Allow-Origin' '*' всегда;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # Разрешить предварительные запросы CORS
            если ($ request_method = 'ВАРИАНТЫ') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'текст/обычная кодировка = UTF-8';
                add_header 'Длина контента' 0;
                вернуть 204;
            }        
        }


        местоположение / статистика {
            rtmp_stat все;
            # Используйте эту таблицу стилей для просмотра XML как веб-страницы
            # в браузере
            rtmp_stat_stylesheet stat.xsl;
        }

        местоположение /stat.xsl {
            # Таблица стилей XML для просмотра статистики RTMP.
            # Скопируйте stat.xsl куда хотите
            # и укажите здесь полный путь к каталогу
            корень /дом/поток/;
        }



 
    
    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/stream.server.net/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/stream.server.net/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot

}
 
    типы {
        текст/html html;
        приложение/тире+xml mpd;
    } 
 
    сервер {
    если ($ host = stream.server.net) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot

 
        слушать 80;
        имя_сервера stream.server.net;
    вернуть 404; # под управлением Certbot


}}
Рейтинг:0
флаг sr

Кажется, это недостающая функция dash_variant в nginx-rtmp-модуль. Это выглядит как ut0mt8 добавил эту функцию, но она может быть нестабильной.

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

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