2009-06-17 16 views
3

Meine Universität führt gerade eine IPTV-Studie durch. Um auf den Dienst zuzugreifen, werden Sie aufgefordert, den VLC Media Player zu installieren und die Dateien auszuführen, die vom Intranet der Universität heruntergeladen wurden und jeweils einen Kanal darstellen.Wie kann ich programmgesteuert auf einen IPTV-Server zugreifen?

Die Dateien sind im Format:

#EXTM3U 
#EXTINF:0,ITV2 
udp://@238.255.0.6:2001 

Was ich als M3U-Playlist-Datei erkennen. Glücklicherweise gibt es in der Datei die IP-Adresse des Servers, der den Dienst hostet, den Port, über den er darauf zugreifen kann, und das Protokoll, in diesem Fall das UDP.

Meine Frage ist, wie kann ich programmatisch auf den Service zugreifen? Gibt es einen bestimmten Handshake, den ein Client mit dem Server macht? Da der Zugriff auf die Daten einfach über den VLC Media Player möglich ist, ist der Zugriff auf die Daten sicherlich trivial, da kein proprietäres Protokoll verwendet wird.

Ich bin nicht zu sehr auf den programmatischen Zugriff auf das Internet konzentriert; Ich weiß, dass in Java eine Port konstruiert werden kann, die das UDP modelliert. Ich würde die Antworten in Java zu schätzen wissen, aber jede ähnliche Sprache ist mehr als genug.

Danke!

Antwort

5

Das ist ein spezieller Handshake auf der Switch-Ebene, der dem Switch mitteilt, dass Sie Teil der Multicast-Gruppe sind, damit Sie auch die Pakete erhalten. unten ist ein Beispiel für die Registrierung und

// join a Multicast group and send the group salutations 

InetAddress group = InetAddress.getByName("228.5.6.7"); 
MulticastSocket s = new MulticastSocket(6789); 
s.joinGroup(group); 
// get their responses! 
byte[] buf = new byte[1000]; 
DatagramPacket recv = new DatagramPacket(buf, buf.length); 
s.receive(recv); 
... 
// OK, I'm done talking - leave the group... 
s.leaveGroup(group); 

http://www.j2ee.me/j2se/1.4.2/docs/api/java/net/MulticastSocket.html

Beispiel von j2ee Führungs

in Java auf einem UDP-Socket empfangen, was Sie tun müssen, ist die Multicast-Gruppe beitreten, dann empf nur die Pakete und schreibe sie in eine Datei, dann würde ich annehmen, dass mpeg2, mpeg4 oder wie auch immer der Stream gesendet wird, eine Datei auf deinem Rechner sein wird, die durch ein anderes Programm spielbar sein soll.

4

Sie können in VLC's Java Bindungen suchen. Dies gibt Ihnen die Kontrolle über VLC über eine Java-Programmierschnittstelle. Sie erhalten die ganze Größe von VLC von Java! Außerdem gibt es mehrere other API bindings und interfaces, die Sie verwenden können, um mit VLC zu spielen.