Поиск по сайту:

Как настроить сервер потокового видео с помощью Nginx-RTMP в Ubuntu 22.04


На этой странице

  1. Требования
  2. Установите веб-сервер Nginx
  3. Установка и настройка Nginx-RTMP
  4. Отправить видео на RTMP-сервер
  5. Потоковое видео в VLC Player
  6. Настройка статистики RTMP для мониторинга
  7. Доступ к странице статистики RTMP
  8. Заключение

RTMP, также называемый «протоколом обмена сообщениями в реальном времени», представляет собой технологию передачи данных, которая поддерживает потоковое онлайн-видео в реальном времени. Он используется для передачи видеофайлов из кодировщика на платформу онлайн-видеохостинга. RTMP использует TCP для перемещения и использует трехстороннее рукопожатие при транспортировке данных. RTMP используется со многими различными типами медиа, включая прямые телетрансляции, потоковое видео и услуги интернет-телефонии.

Функции

  • Создавайте высококачественные живые видео без буферизации.
  • Простота установки и настройки.
  • Совместимость с большинством программ для прямых трансляций и видеосервисов.

В этом руководстве показано, как настроить сервер потокового видео с помощью Nginx-RTMP на сервере Ubuntu 22.04.

Требования

  • Сервер под управлением Ubuntu 22.04.
  • Для вашего сервера установлен пароль root.

Установите веб-сервер Nginx

Перед запуском на вашем сервере должен быть установлен веб-сервер Nginx. Если он не установлен, вы можете установить его с помощью следующей команды.

apt install nginx -y

После установки пакета Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы.

systemctl start nginx
systemctl enable nginx

Вы можете проверить статус службы Nginx с помощью следующей команды.

systemctl status nginx

Вы получите следующий вывод.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-01-09 14:54:55 UTC; 28s ago
       Docs: man:nginx(8)
    Process: 43294 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
   Main PID: 43005 (nginx)
      Tasks: 3 (limit: 4575)
     Memory: 8.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43005 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43295 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??43296 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jan 09 14:54:55 vultr systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 09 14:54:55 vultr systemd[1]: Started A high performance web server and a reverse proxy server.
Jan 09 14:55:04 vultr systemd[1]: Reloading A high performance web server and a reverse proxy server...
Jan 09 14:55:04 vultr systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Установите и настройте Nginx-RTMP

По умолчанию пакет Nginx-RTMP включен в стандартный репозиторий Ubuntu. Вы можете установить его с помощью следующей команды.

apt install libnginx-mod-rtmp -y

После установки пакета Nginx-RTMP отредактируйте основной файл конфигурации Nginx и определите свой поток.

nano /etc/nginx/nginx.conf

Добавьте в конец файла следующие строки:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish all;               

                application live {
                        live on;
                        record off;
                }
        }
}

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

nginx -t

Вы должны увидеть следующий вывод.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx, чтобы применить изменения.

systemctl restart nginx

На данный момент Nginx-RTMP установлен и прослушивает порт 1935. Вы можете проверить это с помощью следующей команды.

ss -antpl | grep 1935

Вы должны увидеть следующий вывод.

LISTEN 0      511          0.0.0.0:1935      0.0.0.0:*    users:(("nginx",pid=43388,fd=8),("nginx",pid=43387,fd=8),("nginx",pid=43386,fd=8))

Отправить видео на RTMP-сервер

Далее вам нужно будет загрузить образец видео с YouTube и отправить его на ваш RTMP-сервер с помощью FFmpeg.

Сначала установите пакет youtube-dl ad FFmpeg с помощью следующей команды.

apt install python3-pip ffmpeg -y
pip install youtube-dl

Затем загрузите любое видео с YouTube с помощью инструмента командной строки youtube-dl.

youtube-dl https://www.youtube.com/watch?v=oNEwEQ0uU1Y

Как только видео загружено в вашу систему, вы можете отправить загруженное видео на RTMP-сервер с помощью команды FFmpeg.

ffmpeg -re -i "How to Install Ubuntu 22.04 LTS-oNEwEQ0uU1Y.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://your-server-ip/live/stream &

На этом этапе ваше загруженное видео отправляется по адресу rtmp://your-server-ip/live/stream.

Потоковое видео в VLC Player

В этом разделе мы покажем вам, как транслировать видео с RTMP-сервера в программное обеспечение VLC player.

Сначала войдите в свою настольную систему и откройте проигрыватель VLC. Затем нажмите «Медиа» => «Открыть сетевой поток». Вы должны увидеть следующий экран.

Укажите URL-адрес своего RTMP-сервера и нажмите кнопку «Воспроизвести». Если все работает, вы должны увидеть свое видео на следующем экране.

Настройка статистики RTMP для мониторинга

На этом этапе ваш RTMP-сервер установлен и работает. Теперь вам нужно настроить страницу статистики RTMP для мониторинга вашей потоковой передачи.

Сначала создайте каталог для сохранения файла статистики RTMP, используя следующую команду.

mkdir /var/www/html/rtmp

Затем скопируйте файл статистики RTMP в созданный каталог.

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl /var/www/html/rtmp/stat.xsl

Затем отредактируйте файл конфигурации виртуального хоста Nginx по умолчанию.

nano /etc/nginx/sites-available/default

Удалите все строки по умолчанию и добавьте следующие строки:

server {
    listen 8080;
    server_name  _;

    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }
}

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Nginx, чтобы изменения вступили в силу.

systemctl restart nginx

Доступ к странице статистики RTMP

Теперь откройте веб-браузер и получите доступ к странице статистики RTMP, используя URL-адрес http://your-server-ip:8080/stat. Вы должны увидеть статистику RTMP на следующем экране.

Вам нужно будет обновлять страницу каждый раз, когда вы транслируете видео и смотрите, как меняется статистика стрима.

Заключение

В этом посте объясняется, как настроить сервер потокового видео с помощью Nginx-RTMP в Ubuntu 22.04. Мы также тестируем RTMP-сервер через VLC-плеер. Теперь вы можете передавать любое видео на RTMP-сервер и получать к нему доступ с любого поддерживаемого медиаплеера. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.