В этом руководстве мы пытаемся решить эту проблему, показывая вам, как настроить персональный сервер потоковой передачи в реальном времени, который использует преимущества Nginx, мощного и легкого веб-сервера, обратного прокси-сервера и протокола RTMP.
Прежде чем продолжить, убедитесь, что:
- Вы используете сервер Ubuntu или Debian
- Получите доступ к вашему серверу через SSH
- Пользователь root или привилегии sudo
Давай начнем.
Что такое Nginx
Как упоминалось выше, Nginx - это быстрый и легкий веб-сервер с открытым исходным кодом и обратный прокси-сервер, используемый для обслуживания простых статических веб-сайтов или массивных приложений. Nginx - это высокопроизводительный веб-сервер с невероятной скоростью и безопасностью. Благодаря своему легкому весу это очень эффективный выбор для потоковых сервисов и трафика с большим объемом трафика.
Вы можете узнать больше о Nginx из ресурса, представленного ниже:
https: // nginx.org / en / docs /
Что такое Nginx RTMP
Nginx RTMP - это мощный модуль с открытым исходным кодом для веб-сервера Nginx. Он включает протокол RTMP, HTTP Live Streaming (HLS) и динамическую адаптивную потоковую передачу по HTTP (DASH).
Вы можете узнать больше о HLS и DASH на странице ресурсов:
https: // www.облачная вспышка.ru / обучение / видео / что такое-mpeg-dash /
Теперь, когда вы знаете, что такое Nginx и Nginx RTMP, давайте настроим сервер:
Настроить на сервер
Первый шаг - получить доступ к серверу. Убедитесь, что SSH для вашего сервера включен, и вы добавили ключи для упрощения входа в систему.
ssh debian @ 34.73.160.42[электронная почта защищена]: ~ $
Как только у нас будет доступ к серверу, мы можем начать установку необходимых пакетов и библиотек. Во-первых, убедитесь, что ваш сервер обновлен:
sudo apt-get updatesudo apt-get upgrade -y
Установка необходимого программного обеспечения
Чтобы настроить потоковый сервер, нам нужно будет собрать Nginx из источника и включить модуль RTMP. Для этого мы будем использовать build-essentials и другие пакеты. Используйте команду apt ниже, чтобы установить все зависимости.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devСледующим шагом будет компиляция и установка Nginx с включенным модулем RTMP. Чтобы оставаться организованным, создайте каталог для процесса.
mkdir ~ / Makecd ~ / Make /
Затем клонируйте модуль nginx-RTMP:
git clone git: // github.com / arut / nginx-rtmp-модуль.мерзавецТеперь нам нужно скачать nginx.
Перейдите на http: // nginx.org / en / download.html и выберите вариант загрузки.
wget http: // nginx.org / download / nginx-1.19.8.деготь.gztar xzf nginx-1.19.8.деготь.gz
компакт-диск Nginx-1.19.8
Последний шаг в этом разделе - скомпилировать Nginx с включенным модулем RMTP. Используйте команды ниже:
судо ./ configure --with-http_ssl_module --add-module =… / nginx-rtmp-modulesudo make
sudo make install
Настройка прямой трансляции
Чтобы включить поддержку RTMP, нам нужно отредактировать файл конфигурации nginx и указать блок RTMP.
судо нано / usr / локальные / nginx / conf / nginx.confВведите блок поддержки RTMP как:
rtmpserver
слушай 1935;
пинг 30 с;
application live
жить дальше;
включить чередование;
hls on;
hls_path / tmp / hls;
hls_sync 100 мс;
hls_fragment 15s;
http
default_type application / octet-stream;
server
слушать 80;
location / tv
корень / tmp / hls;
types
приложение / vnd.яблоко.mpegurl m3u8;
видео / mp2t ts;
текст / html html;
В приведенной выше конфигурации мы включаем модуль RTMP и HLS. Изучите документацию, чтобы узнать, как включить DASH.
После настройки сохраните файл и запустите службу Nginx.
судо / usr / местный / nginx / sbin / nginxНачать трансляцию
После того, как вы все настроили правильно, вы можете начать потоковую передачу с помощью FFmpeg - это самый простой. Вы также можете настроить другие инструменты, такие как OBS studio, но я не буду рассматривать это в этом руководстве.
Используйте команду FFmpeg как:
sudo ffmpeg -re -i образец-mp4-файл.mp4 -c copy -f hls rtmp: // локальный / живой / потокВоспроизвести поток с помощью FFplay или VLC Media player на ресурсе.
ffplay rtmp: // IP / в прямом эфире / потокПосле запуска потока вы можете открыть службу для внешней сети.
ПРИМЕЧАНИЕ: Убедитесь, что вы защитили свой сервер, прежде чем разрешать публичный доступ.
Заключение
В этом руководстве рассказывается, как настроить потоковый сервер с помощью Nginx и модуля Nginx RTMP. Имейте в виду, что настройка потокового сервиса включает в себя множество механизмов, и вы можете настроить его в соответствии с вашими потребностями.
Рассмотрите следующие ресурсы, чтобы узнать больше.
- https: // ffmpeg.org / ffmpeg.html
- https: // ffmpeg.org / ffplay.html
- https: // ffmpeg.org / ffmpeg-форматы.html
- https: // obsproject.com / docs /
- https: // вики.видеолан.org / Документация: Streaming_HowTo