«10.2.2 Передача потоковой передачи FFmpeg в сеть» в книге «Практика разработки FFmpeg: от нулевых основ к короткому видео в Интернете» представляет облегченный сервер потокового мультимедиа MediaMTX. Хотя MediaMTX очень прост в использовании, он не может удовлетворить сложные бизнес-потребности. Поэтому профессиональный сервер потокового мультимедиа необходимо внедрить в практические приложения. nginx-rtmp — это сторонний модуль rtmp, который можно расширить с помощью веб-сервера с открытым исходным кодом Nginx. Этот модуль инкапсулирует rtmp-сервер и может предоставлять простые функции сервера потоковой передачи rtmp. Поскольку Nginx сам по себе является высокопроизводительным WEB-сервером, поддерживающим прокси-распределение данных нескольких протоколов, интеграция RTMP-серверов через Nginx также является возможным решением. Nginx не включает модуль rtmp по умолчанию. Вам необходимо добавить модуль rtmp при компиляции nginx и изменить файл конфигурации, чтобы включить службу rtmp. Потому что процесс компиляции nginx+rtmp в среде Windows очень затруднителен. Нам приходится учитывать не только проблемы совместимости версий различных зависимых пакетов, но и проблему переключения между MSYS и командой Visual Studio. Поэтому здесь мы опишем только, как интегрировать rtmp для Ngixn в среду Linux, подробные шаги интеграции описаны ниже.
Официальный адрес веб-сайта Nginx — https://nginx.org/, а страница загрузки — https://nginx.org/en/download.html. Последняя версия — nginx-1.26.0, выпущенная в апреле 2024 года. исходный код этой версии: Ссылка для скачивания пакета: https://nginx.org/download/nginx-1.26.0.tar.gz. Адрес хостинга исходного кода модуля nginx-rtmp — https://github.com/arut/nginx-rtmp-module, а страница загрузки каждой версии — https://github.com/arut/nginx-rtmp-. модуль/теги большинство. Новая версия — nginx-rtmp-module-1.2.2, выпущенная в апреле 2024 года. Ссылка для загрузки пакета исходного кода для этой версии — https://github.com/arut/nginx-rtmp-module/archive/refs/tags/. v1 .2.2.tar.gz. После загрузки вышеуказанных пакетов исходного кода загрузите их в каталог /usr/local/src сервера Linux. Эти пакеты исходного кода будут распакованы в этом каталоге позже.
Войдите на сервер Linux и выполните следующие команды распаковки, чтобы распаковать пакеты исходного кода nginx-rtmp-module, nginx и т. д.
cd /usr/local/src
tar zxvf nginx-rtmp-module-1.2.2.tar.gz
tar zxvf nginx-1.26.0.tar.gz
Затем войдите в каталог исходного кода nginx и выполните следующую команду для настройки nginx.
cd nginx-1.26.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-rtmp-module-1.2.2
После завершения настройки выполните следующую команду для компиляции nginx.
make -j4
После завершения компиляции выполните следующую команду, чтобы установить nginx.
make install
Откройте conf/nginx.conf в пути установки nginx, добавьте следующую конфигурацию rtmp в конец файла и укажите номер порта и имя службы для мониторинга протокола rtmp.
rtmp {
server {
# Номер порта протокола rtmp
listen 1935;
# Имя службы протокола rtmp
application live {
live on;
}
}
}
После добавления сохраните nginx.conf и выйдите. Затем выполните следующую команду, чтобы запустить nginx.
cd /usr/local/nginx/sbin
./nginx
Затем отправьте видеофайл в службу rtmp через ffmpeg, то есть отправьте видеофайл на rtmp://127.0.0.1/live/test с помощью следующей команды. Подробное описание использования ffmpeg можно найти в книге «Практика разработки FFmpeg: от нулевых основ до короткого онлайн-видео», которая здесь не будет повторяться.
ffmpeg -re -stream_loop -1 -i "/usr/local/src/test/2018s.mp4" -vcodec h264 -f flv rtmp://127.0.0.1/live/test
Затем запустите медиаплеер потокового мультимедиа VLC на компьютере и откройте сетевую потоковую передачу «rtmp://xxx.xxx.xxx/live/test». Видно, что медиаплеер VLC нормально воспроизводит живое видео по ссылке rtmp. , указывающий на nginx-rtmp. Сервис корректно реализует функцию передачи потокового мультимедиа протокола rtmp.
Более подробную информацию о разработке FFmpeg можно найти в разделе «Практика разработки FFmpeg: от нулевых основ к короткому онлайн-видео».