8

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

我的问题是:有没有人遇到过这个问题并解决了它,如果有的话,请您指出一些有用的源代码或文档。牢记这一点,已经查看了该站点上的每个相关主题,并跟进了大多数链接,但无济于事。我对 java 并不陌生,我了解所有流式协议,但我对 java 中的流式实现并不陌生。

谢谢

4

2 回答 2

3

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

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

  1. VLC
  2. 播放器

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

HTH杰罗姆

于 2012-03-02T08:45:13.930 回答
2

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

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

尝试在谷歌代码项目中搜索 RTSP 实现,看起来那里有一些。

于 2012-03-05T10:33:46.920 回答