Подтвердить что ты не робот

Потоковое видео на сервер мультимедиа на основе RTMP (Red5) с использованием С#

Я пишу приложение на базе С#.Net, которое требует публикации видео и аудиопотоков на Red 5 Media Server и получения того же опубликованного потока в другом приложении в локальной сети, а затем в Интернете.

Короче говоря, я намерен использовать Red5 в качестве промежуточного или прокси для передачи видео и аудио данных между двумя клиентами.

[клиент 1] < -Video and Audio → < - Video and Audio → [Client 2]

Я ищу .NET-реализацию (библиотеку) протокола RTMP, которая может помочь мне опубликовать поток на Media Server и отредактировать опубликованный поток и воспроизвести его в моем приложении.

Я искал SOF и пришел к следующим опциям:

  • Клиентская библиотека Borrocoli RTMP
  • FlourineFx.NET
  • WebORb.Net

У каждого есть некоторые ограничения.

  • Библиотека Borrocoli RTMP поддерживает только поддержку аудио/видео потоков, но нет возможности публиковать видео/аудиопоток на медиа-сервере. Я играл с библиотекой и видел ее примеры, но безуспешно. Если я ошибаюсь, исправьте меня.

  • FlourinFx.Net говорит, что поддерживает методы NetStream.Publish(), NetStream.AttachAudio() и NetStream.AttachVideo(). Но в последнем снимке кода нет ничего подобного. То же самое верно для их выпуска продукции. Класс NetStream не имеет указанных методов и/или не имеет методов, которые могут помочь опубликовать потоковый контент на медиасервер.

  • WebOrb.Net: я не изучал его, но, как видно из их страницы лицензирования, бесплатная версия работает только с IIS. По всей видимости, корпоративная версия поддерживает публикацию потокового видео...

Вопросы:

  • Возможно ли, что я могу использовать библиотеку WebOrb.Net совместно с Red5 Media Server?
  • Будет ли бесплатная версия позволять мне публиковать аудио и видео на медиа-сервере Red5?
  • Есть ли другая свободная альтернатива, которую я могу использовать, если указанные выше вопросы недействительны?
4b9b3361

Ответ 1

Вы можете использовать ffmpeg для отправки потока на Red 5 MediaServer.. Установите исходное видео в ffmpeg и вывод в rtmp из red5, примерно так:

ffmpeg -re -i file.mp4 -c copy -f flv rtmp://server/live/streamName

См. этот ответ для примеров интеграции ffmpeg в С#.

Ответ 2

вы можете использовать weborb.lib для одноранговой потоковой передачи видео с помощью flex и .net через протокол RTMP. Вы можете использовать для одноранговой потоковой передачи. Ваш процесс может быть выполнен следующим образом... 1. создать клиентский код Flex, подключающийся к серверу, и подписку на получение обновлений на стороне сервера с показаниями CPU. Код также включает диаграмму для визуализации полученных данных. 2. "Обработчик приложений на стороне сервера", который подключается к WebORB, проверяет процессор и передает данные клиенту. Он будет работать, попробуйте.

Ответ 3

Используйте RTMPdump librtmp. Это написано на C, но вы должны иметь возможность легко писать С# обертки.