nginx-RTMP толкает из одного приложения в другое
Я пытаюсь протолкнуть поток RTMP с помощью модуля nginx-rtmp (настроенного после этого руководства) из одного приложения в другое. Минимальный пример моей конфигурации (nginx.conf) выглядит следующим образом.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmp://localhost:1935/source/$name;
}
application source {
live on;
record off;
}
}
}
Моя настройка потоковой передачи (с OBS) указывает на передачу example.com/live
с джекбоксом StreamKey ($name in nginx). Теперь при попытке просмотра потока в VLC, URL rtmp://example.com/live/jackbox
работает, однако rtmp://example.com/source/jackbox
не делает. Я неправильно понимаю, что push
должен делать, или есть какие-то другие проблемы?
Если кому-то нужна дополнительная информация о настройке, пожалуйста, не стесняйтесь спрашивать.
2 ответа
Вы можете посмотреть его, если поместите в vlc именно это: "rtmp://example.com/source/$name". если вы хотите использовать $ name в качестве переменной, вам нужно полностью удалить его из rtmp push, чтобы ваша установка выглядела следующим образом:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmp://localhost:1935/source/;
}
application source {
live on;
record off;
}
}
}
Существует альтернативная реализация, которая позволяет более явно изменить имя потока, используя FFmpeg:
ffmpeg -re -i rtmp://example.com/live/jackbox -c copy \
-f flv rtmp://example.com/source/jackbox
Сначала вам нужно настроить два отдельных приложения:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
application source {
live on;
record off;
}
}
}
Преимущества этого подхода:
- Вы можете указать имена потоков более четко, что позволит пересылать только определенные потоки.
- Вы можете пересылать несколько разных потоков и отправлять их на несколько разных серверов.
- Вы можете перекодировать потоки с высоким битрейтом.
Если FFmpeg кажется вам слишком сложным, вы можете использовать SRS Stack вместо FFmpeg в сочетании с Nginx. Вы можете обратиться к руководствам ниже для получения дополнительной информации:
- Легко транслируйте свою IP-камеру RTSP на YouTube, Twitch или Facebook , что позволяет вам также получать поток RTMP или HLS из Nginx.
- Эффективное перекодирование потоковой передачи в реальном времени для сокращения пропускной способности и экономии затрат , которое позволяет перекодировать поток из Nginx.
SRS Stack — это решение с открытым исходным кодом, которое предлагает пользовательский веб-интерфейс, что делает его простым и удобным в использовании.