2011-03-23 222 views
8

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

我的问题是:有任何机构有这个问题并解决它,如果是的话,请你指点我一些有用的源代码或文档。考虑到这一点,已经查看了本网站上的所有相关主题,并在大多数链接中无任何效用。我对Java并不陌生,并且我理解所有的流媒体协议,但我对Java中的流媒体实现很陌生。

谢谢

+0

我不明白这个问题。你不知道如何实施RTSP? RTSP与HTTP相同。它是基于TEXT的,并且有TEXT请求和TEXT响应。您应该实现与任何其他服务器相同的服务器(多线程)。在这里:http://www.ietf.org/rfc/rfc2326.txt你可以找到你所需要的(所有请求,所有的数据),这里的http://tools.ietf。org/html/rfc4566你可以看到如何建立SDP消息......但我不明白这个问题有什么问题?你可以说得更详细点吗?你想流传什么? – Cipi 2011-03-23 16:20:36

+0

嗨,欢呼声回复。我想以android操作系统允许的设置格式传输视频和音频。我已经阅读了RTSP的RFC并理解协议是如何工作的。当我在摆弄Java Media Frame时,发现有一些类可以控制RTP和RTCP会话,但对RTSP没有任何影响。我也明白,RTSP可以与其他各种协议(如HTTP)一起使用,但我特意寻找RTP over UDP,因为我相信它最适合流式传输。我真的只想知道使用java为RTSP客户端成功提供视频和音频服务的方法。 – user673090 2011-03-23 16:34:03

+0

那么为什么在Java?为什么不使用例如达尔文流媒体服务器? – ThomasRS 2012-02-29 11:46:52

回答

3

这是很难回答你的问题。我只是给你一些基本的建议: - 开始有点POC你的工作,以获得与Java网络编程 信心 - 阅读一些在Java世界中可用的几个TCP/IP开源服务器实现的源代码(Jetty/Tomcat/Jboss和其他几个) - 尝试认为你的架构符合开放关闭原则(能够增加对新的支持流编解码器等) - 尝试定位所需容量的并行用户会话,并运行服务器,并按照您的约束使用大小并使用您在[R合同

客户不会有太大的影响,RTSP似乎像协议的REST,这样你就不必维护用户上下文...只是回答传入的请求,看似很简单的例子...该协议似乎不是非常丰富(非常有限的一组命令)....尝试读取一些不同的客户端可用的源代码。我可以建议你为一个标准的Linux播放器提取源代码:

  1. VLC
  2. mplayer的
  3. xine的

你可能会发现这些产品中非常有用的代码.. 我想那些已经实现商业产品的人将无法给你他们的反馈,所以使用开源软件!

HTH 杰罗姆

2

我认为JMF中包含用于RTP/RTCP的原因是,这些都是媒体协议 - 即这些协议描述的媒体是如何流在IP和数据流的质量是如何报道(分别) 。

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

尝试搜索RTSP实现的Google代码项目,看起来像那里有几个。