Нужно разобраться с тем что такое DASH (mpeg-dash) и как его юзать?

Помогите разобраться с тем что такое DASH (MPEG-DASH) и как им пользоваться, для начала опишу его так как я понимаю. DASH - это технология с помощью которой можно делать стриминг видео или просто вещать статическое видео (как на ютубе), с динамической подгрузкой. Так как в моем случае нужно вещать статическое (сохраненное на сервере) видео говорить буду о нем. Для того чтобы начать вещать с помощью этой технологии, нужно подключить модуль nginx-rtmp-module к nginx (или это делаеться с помощью другого инструмента?) и в нем указать:
rtmp {
   server {
      listen 1234;
      application videos/{
           dash on;
           dash_path /path/to/;
}}}

Для доступа к видео нужно будет ввести в поиск rtmp://sitename.ru/videos/videoname, и здесь первый вопрос: как сделать чтобы в поиск вбивать http а не rtmp (ведь на ютубе доступ к видео получаеться по http)?. Читал что надо добавить еще:
http {
     server {
         location videos{ 
            root /path/to/;
}}}

Но не могу понять как это будет работать?

Теперь по поводу подготовки видео, я делаю так:
  • ffmpeg -i video.mp4 -g 24 (устанавливаю ключевые кадры) -r 24 + прочие настройки videoout.mp4
  • MP4Box -dash 1000 -frag 1000 -rap videoout.mp4

И помещаю обработанный файл + его манифест в папку по пути /path/to/videos/. Здесь снова вопрос: правильно ли я обрабатываю видео?

Итог: Ответьте пожалуйста правильно ли я понимаю что такое DASH, исходя из того как я описал его вначале и плюс выделенные вопросы. Спасибо
  • Вопрос задан
  • 2031 просмотр
Решения вопроса 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
DASH работает поверх HTTP, а не RTMP, rtmp в конфиге nginx - настройки модуля nginx-rtmp-module. Для статического контента rtmp-модуль не нужен (сам DASH построен на том, что все фрагменты должны быть доступны как обычные файлы).
Соответственно от вашего конфига нужна только вторая часть.
mp4box -dash XXXX -rap -profile "dashavc264:onDemand"
- для статики, "dashavc264:live" - для стримов.
И ещё нужно натравить проигрыватель на всю эту радость.
Раз уж добрались до моего ответа по предыдущему вопросу про DASH, могли прочитать спеку - там есть краткое описание того, как всё устроено.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@AndreyHammer
Network/System admin
А почему nginx-rtmp-module, а не nginx-vod-module? Если не нужен rtmp, то лучше использовать nginx-vod-module. Тут и drm можно прикрутить.
Ответ написан
Комментировать
@xXxSPYxXx
Сисадмин
Соглашусь с Andrey Hammer, так будет понятней https://github.com/kaltura/nginx-vod-module
Сам его использую для воспроизведения через HLS
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы