Как я могу получить доступ к серверу IPTV программно? - PullRequest
3 голосов
/ 17 июня 2009

В моем университете в настоящее время запущена пробная версия IPTV. Чтобы получить доступ к сервису, вам предлагается установить VLC Media Player и запустить через него файлы, загруженные из внутренней сети университета, каждый из которых представляет канал.

Файлы имеют формат:

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

Который я распознаю как файл списка воспроизведения M3U. К счастью, в файле указывается IP-адрес сервера, на котором размещается служба, порт для доступа к нему и протокол, в данном случае - UDP.

Мой вопрос: как я могу получить доступ к услуге программно? Есть ли конкретное рукопожатие, которое клиент делает с сервером? Видя, что это так просто доступно через VLC Media Player, доступ к данным будет тривиальным, так как не используется проприетарный протокол?

Я не слишком осведомлен о программном доступе к Интернету; Я знаю, что в Java можно создать Port, который моделирует UDP. Я был бы признателен за ответы на Java, но любого подобного языка более чем достаточно.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 20 июня 2009

Это специальное рукопожатие на уровне коммутатора, оно говорит коммутатору, что вы являетесь частью группы многоадресной рассылки, так что вы также будете получать пакеты.

Ниже приведен пример регистрации и получения на сокете UDP в java:

 // 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);

Пример из j2ee guide .

Что вам нужно сделать, это присоединиться к группе многоадресной рассылки, затем просто получить пакеты и записать их в файл, тогда я бы предположил, что MPEG2, MPEG4 или, как бы то ни было, отправленный поток будет файлом на вашем компьютере, который должен быть Воспроизведение через другую программу.

4 голосов
/ 20 июня 2009

Возможно, вы захотите изучить привязки VLC Java . Это даст вам контроль над VLC через интерфейс программирования Java. Вы получаете все величие VLC от Java! Также есть несколько других привязок API и интерфейсов , которые вы можете использовать для игры с VLC.

...