用Java实现RTSP媒体服务器

时间:2011-03-23 13:20:30

标签: java rtsp multimedia

我正在尝试在java中实现一个简单的RTSP服务器,它将使用android手机作为接收客户端。我已经在互联网上搜索了答案,并多次返回本网站。通过这一点,我发现JMF本身不支持服务器端的RTSP,并且必须使用NIO框架(如Netty,Xuggler,Mina等)扩展java。我唯一的问题是在搜索这些网站的文档之后我有没有找到如何实现RTSP的任何基本示例。

我的问题是:是否有任何机构遇到此问题并解决了问题,如果是这样,请指点我一些有用的源代码或文档。考虑到这一点已经查看了该网站上的每个相关主题,并在大多数链接上进行了跟踪,但没有任何效果。我不是java的新手,我理解所有的流媒体协议,但我不熟悉java中的流媒体实现。

谢谢

2 个答案:

答案 0 :(得分:3)

很难回答你的问题......我只会给你一些基本的建议: - 使用一点POC开始工作,以获得Java网络编程的信心 - 阅读Java World中可用的几个TCP / IP开源服务器实现的一些源代码(Jetty / Tomcat / Jboss和其他几个) - 尝试认为您的架构符合开放关闭原则(能够添加对新流编解码器的支持等) - 尝试使用符合约束条件的服务器运行所需的并行用户会话数量,并使用合同中规定的网络带宽

客户端不会有太大的影响,RTSP似乎是一个类似REST的协议,所以你不必维护用户上下文......只需回答传入的请求,看起来非常简单的情况......协议似乎不是很丰富(非常有限的命令集)....尝试阅读一些可用的不同客户端的源代码。我可以建议你获取一个标准Linux播放器的源代码:

  1. VLC
  2. mplayer的
  3. xine的
  4. 您可能会在这些产品中找到非常有用的代码.. 我想那些已经实现商业产品的人将无法向您提供反馈,因此请使用开源软件!!!

    HTH 杰罗姆

答案 1 :(得分:2)

我认为JMF包含RTP / RTCP类的原因是这些是媒体协议 - 即这些协议描述了如何通过IP流媒体以及如何(分别)报告流质量。

RTSP是一种控制协议 - 用于设置媒体流。所以这是JMF管理的媒体流之上的一层。您可以在您喜欢的任何频道中交换RTSP消息,然后使用交换的信息来建立您的媒体流。

尝试搜索Google代码项目以进行RTSP实施,看起来有一些。