Як налаштувати сервер потокового відео за допомогою Nginx-RTMP на Ubuntu 22.04

Як налаштувати сервер потокового відео за допомогою Nginx-RTMP на Ubuntu 22.04

Вступ

Потокове відео стало невід’ємною частиною сучасного Інтернету, відкриваючи безмежні можливості для розваг, освіти та спілкування. Розгортання власного сервера потокового відео дає вам гнучкість у виборі вмісту, який ви хочете транслювати, і контроль над якістю ваших потоків. Цей посібник проведе вас крок за кроком через процес налаштування сервера потокового відео за допомогою Nginx-RTMP на Ubuntu 22.04.

Що таке Nginx-RTMP?

Nginx-RTMP — це модуль для веб-сервера Nginx, розроблений для прийому та трансляції потоків Real-Time Messaging Protocol (RTMP). RTMP є широко використовуваним протоколом, який оптимізовано для передачі потокового відео в режимі реального часу з низькою затримкою. Nginx-RTMP дозволяє Nginx функціонувати як повнофункціональний сервер потокового відео, що робить його популярним вибором для постачальників потокових послуг.

Передумови

Перш ніж приступити до налаштування сервера потокового відео, переконайтеся, що ваш сервер відповідає наступним вимогам:

– Свіжа інсталяція Ubuntu 22.04
– Кореневий доступ або користувач із правами sudo
– Мінімум 1 ГБ оперативної пам’яті
– Виділений IP-адреса
– Доменне ім’я (необов’язково)

Кроки з налаштування

1. Оновлення системи

Виконайте наступні команди, щоб оновити кеш пакетів і оновити систему:


sudo apt update
sudo apt upgrade

2. Встановлення Nginx

Встановіть веб-сервер Nginx:


sudo apt install nginx

3. Встановлення модуля Nginx-RTMP

Встановіть модуль Nginx-RTMP:


sudo apt install nginx-extras-rtmp

4. Налаштування Nginx

Відредагуйте файл конфігурації Nginx (/etc/nginx/nginx.conf):


sudo nano /etc/nginx/nginx.conf

Додайте наступні рядки у файл:


rtmp {
server {
listen 1935;
allow 127.0.0.1;
deny all;
}
}

Змініть 127.0.0.1 на IP-адресу вашого сервера, якщо ви хочете дозволити доступ ззовні.

5. Налаштування RTMP

Відредагуйте файл конфігурації RTMP (/etc/nginx/rtmp.conf):


sudo nano /etc/nginx/rtmp.conf

Додайте наступні рядки у файл:


application live {
live on;
record off;
}

Збережіть та закрийте файл.

6. Створення директорії для потоків

Створіть директорію для зберігання потоків:


sudo mkdir /var/www/html/streams
sudo chown www-data:www-data /var/www/html/streams

7. Перезапуск служби Nginx

Перезапустіть службу Nginx:


sudo systemctl restart nginx

Тестування сервера потокового відео

1. Завантаження засобів потокової передачі

Завантажте засоби потокової передачі, такі як OBS Studio або XSplit, для захоплення та трансляції відео.

2. Створення потоку

Увімкніть засоби потокової передачі та налаштуйте їх на трансляцію на ваш сервер RTMP. Скористайтеся наступними налаштуваннями:

* URL-адреса сервера: rtmp://ваш_ip-адреса:1935/live
* Ключ потоку: ваш_ключ_потоку

3. Перевірка потоку

Відкрийте веб-переглядач і перейдіть за адресою http://ваш_ip-адреса/streams/ваш_ключ_потоку.flv. Ви повинні побачити потік у реальному часі.

Розширені налаштування

1. Дозволити доступ ззовні

Якщо ви хочете дозволити доступ до вашого сервера потокового відео ззовні, відкрийте порт 1935 у своєму брандмауері:


sudo ufw allow 1935/tcp

2. Запис потоків

Щоб увімкнути запис потокових сеансів, відредагуйте файл конфігурації RTMP (/etc/nginx/rtmp.conf) і встановіть для параметра record значення on:


application live {
live on;
record on;
}

3. Зміна ключа потоку

Ви можете змінити ключ потоку для захисту ваших потоків. Відредагуйте файл конфігурації RTMP (/etc/nginx/rtmp.conf) і змініть наступний рядок:


rtmp {
...
application live {
...
secure_token default_token;
}
}

Висновок

Слідуючи цим крокам, ви успішно налаштували сервер потокового відео за допомогою Nginx-RTMP на Ubuntu 22.04. Тепер ви можете транслювати відео в режимі реального часу, записувати потокові сеанси та контролювати доступ до своїх потоків. Ця гнучка та масштабована платформа дозволяє вам створювати власну мережу потокового відео, відповідаючи вашим конкретним потребам.

Поширені запитання

1. Які переваги використання Nginx-RTMP для потокового відео?

Nginx-RTMP — надійний, високоефективний сервер з низькою затримкою та підтримкою різних протоколів потокового відео.

2. Чи можу я транслювати потоки з різних джерел?

Так, ви можете транслювати потоки з кількох джерел за допомогою функції мультиплексування RTMP.

3. Як я можу захистити свої потоки від несанкціонованого доступу?

Ви можете захистити свої потоки, використовуючи автентифікацію за ключем потоку, увімкнувши шифрування за допомогою SSL/TLS і обмежуючи доступ на основі IP-адреси.

4. Чому я не можу переглянути свій потік у браузері?

Переконайтеся, що ви ввели правильну URL-адресу потоку, що ваш брандмауер відкрито для порту 1935 і що засоби потокової передачі правильно налаштовані.

5. Як я можу масштабувати свій сервер потокового відео?

Для масштабування сервера потокового відео ви можете налаштувати кластер Nginx-RTMP і використовувати службу балансування навантаження.

6. Які альтернативи Nginx-RTMP для потокового відео?

Іншими варіантами потокового відео є Wowza Streaming Engine, Red5 Pro Server і Nimble Streamer.

7. Де я можу знайти додаткову допомогу та інформацію про Nginx-RTMP?

Ви можете звернутися до документації Nginx-RTMP, форуму підтримки Nginx і спільноти Nginx.

8. Чи можу я використовувати Nginx-RTMP для потокового аудіо?

Так, Nginx-RTMP також підтримує потокове аудіо в форматах AAC і MP3.