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

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

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

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

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

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

Спасибо!

РЕДАКТИРОВАТЬ:

Мне удалось сделать это с помощью модулей 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, чего я стараюсь избегать по определенным причинам.

Благодарю.

1 ответ1

0

Почему вы хотите играть в 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.

Источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .