Реализация медиа-сервера RTSP на Java - PullRequest
8 голосов
/ 23 марта 2011

Я пытаюсь реализовать простой сервер RTSP в Java, который будет использовать телефон Android в качестве принимающего клиента.Я пытался найти ответы в Интернете и возвращался на этот сайт много раз.Благодаря этому я обнаружил, что JMF изначально не поддерживает RTSP на стороне сервера и что java должен быть расширен с использованием инфраструктуры NIO, такой как Netty, Xuggler, Mina и т. Д. Моя единственная проблема заключается в том, что после поиска документации по этим сайтам у меня естьНе найдено каких-либо базовых примеров того, как RTSP может быть реализован.

Мой вопрос таков: имел ли кто-либо орган эту проблему и решил ее, и если да, то можете ли вы указать мне на полезный исходный код или документацию.Имея это в виду, уже просмотрели все связанные темы на этом сайте и следили за большинством ссылок без какой-либо пользы.Я не новичок в Java, и я понимаю все протоколы потоковой передачи, но я новичок в реализации потоковой передачи в Java.

Спасибо

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

очень сложно ответить на ваш вопрос ... Я просто дам вам несколько основных советов: - начните свою работу с небольшого POC, чтобы обрести уверенность в сетевом программировании Java - прочитайте некоторый исходный код нескольких открытых TCP / IPРеализации серверов с исходным кодом, доступные в Java World (Jetty / Tomcat / Jboss и некоторые другие) - старайтесь думать, что ваша архитектура соответствует принципу Open Close (возможность добавления поддержки новых кодеков потоков и т. Д.) - пытайтесь нацеливатьсяжелаемый объем параллельных пользовательских сессий, работающих на сервере, размер которого соответствует вашим ограничениям и использует пропускную способность сети, как указано в вашем контракте

Клиент не окажет значительного влияния, RTSP кажется протоколом, подобным REST, поэтому выне нужно поддерживать пользовательский контекст ... Просто отвечайте на входящие запросы, очень простой случай, кажется ... Протокол кажется не очень насыщенным (очень ограниченный набор команд) .... Попробуйте прочитать некоторый исходный код дляодин из разных доступных клиентов. Я могу посоветовать вамИсходный код tch для одного из стандартных проигрывателей Linux:

  1. VLC
  2. mplayer
  3. xine

, вы можете найти очень полезный код вэти продукты ... Я думаю, что люди, которые внедрили коммерческие продукты, не смогут дать вам свои отзывы, поэтому используйте программное обеспечение с открытым исходным кодом !!!

HTH Jerome

2 голосов
/ 05 марта 2012

Я думаю, причина того, что JMF содержит классы для RTP / RTCP, заключается в том, что это медиа-протоколы - то есть эти протоколы описывают, как медиа передается по IP и как сообщается качество потока (соответственно).

RTSP - это протокол управления - он используется для настройки потоков мультимедиа.Так что это уровень над медиапотоками, управляемыми JMF.Вы можете обмениваться сообщениями RTSP в любом канале, который вам нравится, а затем использовать обмененную информацию для установления вашего медиапотока.

Попробуйте поискать в проектах кода Google реализации RTSP, похоже, их там немного.

...