Публикация потока RTMP через HTTP как можно проще

Я ищу простое программное обеспечение с открытым исходным кодом, которое позволит мне это сделать:
Публикация видеопотока через RTMP с локального компьютера за NAT на сервер (Linux).
Сервер должен обслуживать этот поток через http и / или rtmp. Там нет необходимости сервера более чем одного клиента на данный момент.

Я пробовал crtmpserver или rtmpd, но для него нет документации, и я не знаю, как настроить эту конкретную конфигурацию. Однако я попытался, но безуспешно. Мне удалось опубликовать стрим с OBS (или по крайней мере так казалось), но не смог найти способ воспроизвести его. Если вы можете помочь мне настроить его, что было бы хорошо решение.

Я пробовал rtmplite но это не работает. Не удалось опубликовать стрим.

Я пробовал ant media server (на основе red5) и удалось, но это кажется довольно медленно, глюки все время с 50 Мбит загрузки и скачивания и низкое качество видео. И мне не нравится, что версия HTTP stream сначала обслуживает список m3u8. Если у вас есть советы как решить эти проблемы, которые были бы в порядке решения.

Я посмотрел на nginx with rtmp module, но не удалось найти способ настроить HTTP-загрузку потока, опубликованного через RTMP. Если вы можете направить меня, как это сделать, это было бы хорошо решение.

любой другой сервер, может быть?

спасибо!

EDIT:

мне удалось сделать это с помощью модуля nginx и BLSS (rtmp), чтобы принять опубликованный поток и передать его дальше в VLC. VLC принимает поток RTMP и обслуживает его дальше клиентам, использующим HTTP. Это то, что я хотел, однако, VLC вводит здесь 6 секунд задержки, и это более сложным, чем с одной части программного обеспечения делает это.
nginx вообще не вводит задержку, и я был бы счастлив, если бы смог уменьшить задержку VLC хотя бы до 3 секунд.
Команда VLC я использую:

cvlc "rtmp://address:port/stream" --sout "#standard{access=http,mux=ts,dst=address:port}"

задержка больше, чем сложность. Я пробовал nginx с HLS, но он представил задержку в 15 секунд и служил .m3u8, который я пытаюсь избегать по определенным причинам.

спасибо.

2
задан Marko
19.01.2023 19:20 Количество просмотров материала 3381
Распечатать страницу

1 ответ

почему вы хотите играть в HTTP? VLC может читать собственный поток RTMP.

Я использую nginx для потоковой передачи с OBS на мой сервер linux и поделиться мой живой экран рабочего стола в full HD для других пользователей, работающих под управлением VLC...

HTTP and RTMP are two different things. There is no way to transfer RTMP package through HTTP, because if a client sends an HTTP request, the server will return an HTTP response and then the client would consume HTTP package. In theory, the client can then unpack the HTTP package, but there would require extra work.

A much better solution is using HTTP Live Streaming (HLS). nginx-vod-module supports HLS. It can be easily configured in the config file. When a video is put in the server, the client can use a URL like http://127.0.0.1/vod/sample.mp4/index.m3u8. The Nginx server automatically partitions the video to HTTP package and provide a playlist. So the client can play it. HLS is widely supported by many open source players (for browsers) and mobile devices (both ios and android). And it can be easily configured with HTTPS for secure transformation.

Source

0
отвечен Texxi 2023-01-21 03:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх