Implementierung eines RTSP-Medienservers in Java

8

Ich versuche, einen einfachen RTSP-Server in Java zu implementieren, der ein Android-Handy als empfangenden Client verwendet. Ich habe im Internet nach Antworten gesucht und bin oft auf diese Seite zurückgekehrt. Dadurch habe ich herausgefunden, dass JMF nativ RTSP auf der Serverseite nicht unterstützt und dass Java unter Verwendung eines NIO-Frameworks wie Netty, Xuggler, Mina usw. erweitert werden muss. Mein einziges Problem ist, dass ich die Dokumentation für diese Seiten durchsucht habe Es wurden keine grundlegenden Beispiele dafür gefunden, wie RTSP implementiert werden kann.

Meine Frage ist: Hat irgendein Körper dieses Problem und hat es gelöst, und wenn ja, können Sie mich bitte auf einen hilfreichen Quellcode oder eine Dokumentation verweisen. Vor diesem Hintergrund haben wir bereits alle verwandten Themen auf dieser Seite angeschaut und die meisten Links ohne Erfolg verfolgt. Ich bin nicht neu in Java und ich verstehe alle Streaming-Protokolle, aber ich bin neu in Streaming-Implementierungen in Java.

Danke

    
user673090 23.03.2011, 13:20
quelle

2 Antworten

3

es ist sehr schwer, auf Ihre Frage zu antworten ... Ich werde Ihnen nur einige grundlegende Ratschläge geben: - Beginnen Sie Ihre Arbeit mit einem kleinen POC, um mit der Java-Netzwerkprogrammierung vertraut zu werden - Lesen Sie einige Quellcodes der verschiedenen TCP / IP Open Source Server-Implementierungen, die in der Java-Welt verfügbar sind (Jetty / Tomcat / Jboss und einige andere) - Versuchen Sie zu glauben, dass Ihre Architektur dem Open Close-Prinzip entspricht (Unterstützung für neue Stream-Codecs usw.) - Versuchen Sie, eine gewünschte Menge an parallelen Benutzersitzungen zu erreichen, die mit einem Server ausgeführt werden, der nach Ihren Beschränkungen bemessen ist und die Netzwerkbandbreite verwendet, wie in Ihrem Vertrag angegeben.

Der Client wird nicht viel Einfluss haben, RTSP scheint ein REST-ähnliches Protokoll zu sein, so dass Sie den Benutzerkontext nicht pflegen müssen ... Antworten Sie einfach auf eingehende Anfragen, sehr einfacher Fall scheint es ... Das Protokoll scheint nicht sehr reich sein (sehr eingeschränkte Menge von Befehlen) .... Versuchen Sie, Quellcode für einen der verschiedenen verfügbaren Clients zu lesen. Ich kann Ihnen raten, Quellcode für einen der Standard-Linux-Player zu holen:

  1. VLC
  2. mplayer
  3. xine

Sie können in diesen Produkten sehr hilfreiche Codes finden .. Ich denke, dass Leute, die kommerzielle Produkte implementiert haben, nicht in der Lage sein werden, ihre Rückmeldungen zu geben, also verwenden Sie Open-Source-Software !!!

HTH Jerome

    
romje 02.03.2012 08:45
quelle
2

Ich denke, der Grund, dass JMF Klassen für RTP / RTCP enthält, ist, dass dies Medienprotokolle sind - d. h. diese Protokolle beschreiben, wie Medien über IP gestreamt werden und wie die Streamqualität berichtet wird.

RTSP ist ein Kontrollprotokoll - es wird verwendet, um die Medienströme einzurichten. Dies ist also eine Ebene über den Medienströmen, die von JMF verwaltet werden. Sie können RTSP-Nachrichten in jedem gewünschten Kanal austauschen und dann die ausgetauschten Informationen verwenden, um Ihren Medienstream einzurichten.

Versuchen Sie, Google-Code-Projekte für RTSP-Implementierungen zu durchsuchen. Es sieht so aus, als wären da ein paar.

    
vladimir e. 05.03.2012 10:33
quelle

Tags und Links