2012-04-09 22 views
13

Piszę aplikację opartą na C# .Net, która wymaga publikowania strumieni wideo i audio na serwerze multimedialnym Red 5 i pobierania tego samego opublikowanego strumienia w innej aplikacji w sieci lokalnej a później w Internecie.Przesyłanie strumieniowe wideo do serwera multimediów opartego na RTMP (Red5) przy użyciu C#

W skrócie zamierzam użyć Red5 jako pośrednika lub serwera proxy do transmisji danych wideo i audio między dwoma klientami.

[klient 1] < Audio-Video -> < - Audio Video -> [Client 2]

szukam implementacji .NET (biblioteka) protokołu RTMP, że może mi pomóc opublikuj strumień na serwerze mediów i przeprowadź opublikowany strumień i odtwórz go w mojej aplikacji.

Szukałem ponad SOF i przyszedł do tych opcji:

  • Borrocoli RTMP biblioteki klienta
  • FlourineFx.NET
  • WebORb.Net

Każdy ma pewne ograniczenia.

  1. Borrocoli RTMP Biblioteka posiada tylko plyback obsługę audio/strumieni wideo, ale nie ma możliwość publikowania strumieni audio/video do serwera multimedialnego. Grałem z biblioteką i widziałem jej przykłady, ale bez skutku. Jeśli się mylę, popraw mnie.

  2. FlourinFx.Net mówi, że obsługuje metody NetStream.Publish(), NetStream.AttachAudio() i NetStream.AttachVideo(). Ale w najnowszej wersji kodu nic takiego się nie dzieje. To samo dotyczy wersji produkcyjnej. Klasa NetStream nie ma wymienionych metod i/lub nie ma żadnych metod, które mogłyby pomóc w publikowaniu treści strumieniowych na serwerze multimediów.

  3. WebOrb.Net: Nie zbadałem tego, ale jak wynika z ich strony licencyjnej, darmowa wersja działa tylko z IIS. Wersja Enterprise wydaje się mieć całe wsparcie dla publikowania streaming video ...

Pytania:

  1. Czy to możliwe, że mogę używać WebOrb.Net bibliotekę w połączeniu z serwerem Red5 Mediów ?
  2. Czy darmowa wersja pozwoli mi opublikować audio i wideo na serwerze mediów Red5?
  3. Czy mogę skorzystać z innej bezpłatnej metody, jeśli powyższe pytania są nieważne?
+0

Witaj Steve, czy zrobiłeś to? –

+0

Nie,: \. Jak już wspomniałem, żadna z dostępnych bibliotek nie zapewnia "serwera" ani "przesyłania strumieniowego do serwera", o ile wiem, że jest to wyjątek Webordb.Net. Najnowszy SVN FlourineFX ma jakiś kod, który wygląda jak może wykonać zadanie ... ale wymagałoby to wiele refaktoryzacji, aby to zrobić, musi to być wszystko, czego można się spodziewać po zakończeniu pracy. A granie z AMF0, aby to zrobić, wydaje się być dużo pracy. Jeśli natrafisz na dowolne API, które jest darmowe i dajesz funkcję "Stream to server from client app", proszę daj mi znać. Dzięki –

+0

Kiedyś przejrzałam je wszystkie. Brokuły i fluor znajdowały się na mojej liście potencjalnych rzeczy. Nic nie wydawało się bardzo przydatne. Skończyło się na tym, że zmieniłem technikę i całkowicie ominąłem tę ścieżkę. Wiem, że to nie jest światowa rada, ale jest to długa trudna droga, na której jesteś. – Gandalf458

Odpowiedz

0

można użyć weborb.lib na peer to peer transmisji wideo za pomocą Flex i .NET poprzez RTMP protocol.you można użyć do peer to peer streaming.your proces może być wykonane przez następująco ... 1. rozwinąć kod klienta Flex łączący się z serwerem i subskrybujący, aby otrzymywać aktualizacje po stronie serwera z odczytami CPU. Kod zawiera również wykres do wizualizacji odebranych danych. 2. Po stronie serwera "Program obsługi aplikacji", który podłącza się do WebORB, odpytuje procesor i dostarcza dane do klienta. To działa, spróbuj.

1

Można użyć ffmpeg wysłać strumień Red 5 MediaServer .. Ustaw film źródłowy ffmpeg i wyjście do rtmp z Red5, coś takiego:

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

zobaczyć ten answer za dodatkową do przykładów integruj ffmpeg w C#.

+1

Ta odpowiedź nie jest wystarczająco szczegółowa. Zaktualizuj go, aby zawierał odpowiednie informacje. – Chris

0

Użyj biblioteki librtmp RTMPdump. Jest napisany w C, ale powinieneś być w stanie napisać dla niego wystarczająco łatwo.

Powiązane problemy