Как настроить сервер потокового видео с помощью Nginx-RTMP на Ubuntu 22.04
RTMP, также называемый «протоколом обмена сообщениями в реальном времени», является технологией передачи данных, которая поддерживает потоковое онлайн-видео. Она используется для передачи видеофайлов от кодера на платформу онлайн-видеохостинга. RTMP использует TCP для передачи данных и использует трехстороннее рукопожатие при передаче данных. RTMP используется во многих различных типах медиа, включая прямые телевизионные трансляции, потоковое видео и услуги интернет-телефонии.
Функции
- Производите высококачественное видео в прямом эфире без буферизации
- Простота установки и настройки.
- Совместимость с большинством программ и видеосервисов прямого эфира.
Установка веб-сервера Nginx
Перед началом работы на вашем сервере должен быть установлен веб-сервер Nginx. Если он не установлен, вы можете установить его с помощью следующей команды.
apt install nginx -y
После установки пакета Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы.
systemctl start nginxsystemctl 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 включен в репозиторий 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 -ypip 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.
Сначала войдите в систему рабочего стола и откройте плеер VLC. Затем нажмите на Media => Open Network Stream. Вы должны увидеть следующий экран.
Определите URL вашего RTMP сервера и нажмите на кнопку Play. Если все работает, вы должны увидеть видео на следующем экране.
Настройка статистики
На данном этапе ваш RTMP-сервер установлен и работает. Теперь вам нужно настроить страницу статистики RTMP для мониторинга потокового вещания.
Настройка
Сначала создайте каталог для сохранения файла статистики RTMP с помощью следующей команды.
mkdir /var/www/html/rtmp
Затем скопируйте файл RTMP stat в созданный каталог.
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, используя URL http://your-server-ip:8080/stat. Вы должны увидеть статистику RTMP на следующем экране.
Вам нужно будет обновлять страницу каждый раз, когда вы транслируете видео, и наблюдать, как меняется статистика потока.
Заключение
В этой заметке рассказывается о том, как настроить сервер потокового видео с помощью Nginx-RTMP на Ubuntu 22.04. Мы также протестировали RTMP-сервер через плеер VLC. Теперь вы можете передавать любое видео на RTMP-сервер и получать доступ к нему с помощью любого поддерживаемого медиаплеера. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.howtoforge.com
Спасибо за статью. Согласно инструкции вывел статистику в браузере.
Еще хотел уточнить, как вывести hls, dash стрим на сайте, в веб плеере, если сервер nginx установлен в локальной сети с паблик ip, а сайт находится у хост провайдера