Як налаштувати сервер потокового відео за допомогою 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.