Онлайн трансляції за допомогою модуля Ngnix-rtmp-module - IT та Мультимедіа

допомогою

Медіа сервери

На сьогоднішній день існують кілька популярних медіа серверів, про які ви можете докладніше почитати в одній із моїх минулих статей. Медіа сервери необхідні для створення онлайн трансляцій у реальному режимі часу.

Існують як платні, так і безкоштовні медіа сервери, що включають різні функції. Сьогодні ми поговоримо про одне безкоштовне і досить непогане рішення.

Базовий функціонал медіа сервера також можна реалізувати за допомогою безкоштовного програмного забезпечення — модуля Ngnix-rtmp-module, який на даний момент підтримує такі потокові протоколи як RTMP і HLS.

Онлайн трансляція по протоколу HLS

трансляції
Сьогодні ми розглянемо, як за допомогою модуля Nginx-rtmp-module організувати найпростішу трансляцію з адаптивним бітрейтом протоколу HLS. Насамперед нам необхідно завантажити вихідні коди веб-сервера Nginx з офіційного сайту. Усі команди, представлені нижче, виконувались в Linux.

  • wgethttp://nginx.org/download/nginx-1.4.1.tar.gz

Вийняти файли з архіву.

Завантажити zip архів із вихідними файлами модуля nginx-rtmp-module та витягти файли з архіву.

  • wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

Тепер нам необхідно скомпілювати nginx з модулемnginx-rtmp-module, для цього при конфігурації nginx потрібно вказати в опції-add-module розташування вихідних файлівnginx-rtmp-module, а також необхідно вказати додаткову опціюwith-http_ssl_module.

./configure -add-module=/home/nginx/nginx-rtmp-module-master -with-http_ssl_module

  • test1 з бітрейтом 256 кбіт/с,
  • test2 з бітрейтом 512 кбіт/с,
  • test3 з бітрейтом 1024 кбіт/с.

Наше завдання, щоб клієнт, що використовує протокол HLS (пристрої: Mac, iPad, iPhone), міг динамічно перемикатися між потоками, залежно від якості Інтернет з'єднання. Для цього нам необхідно в директорії/usr/local/nginx/html створити файл з розширеннямm3u8, наприклад, playlist.m3u8 , з наступним вмістом:

Перегляд трансляції