2016-03-26 6 views
1

Nach this Ansatz. Ich möchte, dass ein Client ein Live-Stream-Video an einen Server mit IP-Kommunikation sendet. Die Anforderungen sind Android Studio Java Client und Visual Studio C# Server und deshalb habe ich keine genaue Situation auf StackOverFlow gefunden. Ich stelle ein grundlegendes UDP Datagram zwischen Android Java und Windows C# auf und es läuft Zwei-Wege-Senden von Kurznachrichten. Wo fange ich mit Video-Streaming an?Nützliche APIs zum Live-Video-Stream zwischen Windows C# und Android Java?

Soll ich es herausfinden mich, wie die Bilder Frame für Frame in dem Server zu bekommen, brechen jeden Rahmen in byte[] um sie und senden über UDP verwenden, dann in der Seite des Client, wieder aufzubauen jeden Frame mit byte[] Daten empfangen? Ist UDP nicht in Ordnung? Was sind nützliche APIs auf C# und Java? Wird es auf lange Sicht einfacher sein, beide als Java zu setzen? Benötige ich Zeit, um Windows Java IDEs anzupassen und von dort aus zu starten? Ist es das gleiche wie Android?

Zwei viele Fragen auf meinem Kopf und ich habe nicht genug Wissen. Ich habe noch nie eine "große" oder "Netzwerk" -Anwendung gemacht. Ich fühle mich verloren, was ich tun soll. Das Finden von APIs wäre wirklich hilfreich. Vielen Dank im Voraus

Antwort

3

Erfinden Sie nicht Ihre eigenen Protokolle, verwenden Sie vorhandene wie RTP, RTSP (oder sogar ein HTTP-Server).

Zum Beispiel RTSP (Real-Time Streaming Protocol):

Mit diesem Projekt (https://net7mma.codeplex.com/), Sie sind in der Lage RTSP-Server einzurichten, die in genau 5 Zeilen Code in C# eine Mediendatei dient.

using(Rtsp.RtspServer server = new Rtsp.RtspServer(555)){  
    Media.Rtsp.Server.Media.RtspSource source = 
      new Media.Rtsp.Server.Media.RtspSource("RtspSourceTest", "rtsp://1.2.3.4/mpeg4/media.amp"); 

    //If the stream had a username and password 
    //source.Client.Credential = new System.Net.NetworkCredential("user", "password"); 

    //Add the stream to the server 
    server.AddMedia(source); 

    //Start the server and underlying streams 
    server.Start(); 
} 

Und nach der Projektseite:

Die RtspServer hat erfolgreich Aggregat Live RTSP-Videostreams in jedem Behälter oder Codec auf einem kompatiblen RtspClient oder Player (VLC, MPlayer Darwin Streaming Server und Quicktime haben getestet)

Damit können Sie Ihre Web Kamera oder Digitalkamera oder Quelle von Bildern in einen LIVE Rtsp Stream verwandeln!

Mit dieser Server-Seite in C# als allgemeine RTSP-Server geschrieben, können Sie vorhandene Objekte wie ein normales VideoView (https://stackoverflow.com/a/10461150/5296568) auf der Java/Android Seite zu verbinden und anzuzeigen, die Strom ohne Probleme leben verwenden.

+0

Hallo, das sieht hilfreich aus und ich versuche es. Also das Design ist wie der C# allgemeine RTSP-Server nimmt den Webcam-Stream in eine URI, dann wird die Java-Seite nur diese URI zum Anzeigen verwenden? –

+0

@FireStep Genau das ist die Abstraktion auf höchster Ebene. Und mit den richtigen Bibliotheken kann es wirklich in nur wenigen Zeilen Code getan werden. –

+0

Danke, mein Herr. "richtige Bibliotheken" wie die, die Sie gesendet haben? Soll ich meinen gesamten Basiscode löschen und mit dem Aufbau eines C# RTSP-Servers beginnen? Ich habe es gepostet, würdest du mir bitte deine Empfehlungen sagen? –

Verwandte Themen