4

我正在构建一个 RTSP 服务器,并且正在创建两个请求/响应对象,它们的名称TRTSPRequest与RTSPTRTSPResponse相似TWebRequestTWebResponse但特定于 RTSP。我有一种感觉,我正在重新发明轮子,而且我可以在这里走一条更简单的路。我已经编写了 400 行代码来创建这个服务器,其中大部分只是解析请求标头。

Delphi XE2 / Indy 10 中有什么东西可以重用,可以为我解析 RTSP 标头吗?还是我不得不自己解析所有内容?

由于 RTSP 与 HTTP 非常相似,我可以使用 HTTP 请求/响应对象吗?还是会被 RTSP 结构弄糊涂?

例如,我可以IdHTTPHeaderInfo.pas为 RTSP 使用和调整它并调用它IdRTSPHeaderInfo.pas吗?

根据RFC 2326 ...

易于解析:RTSP 可以被标准的 HTTP 或 MIME 解析器解析。

HTTP 友好:在合理的情况下,RTSP 重用 HTTP 概念,以便可以重用现有的基础设施。该基础设施包括用于将标签与内容相关联的 PICS(互联网内容选择平台 [15,16])。然而,RTSP 不只是向 HTTP 添加方法,因为控制连续媒体在大多数情况下需要服务器状态。

那么我该怎么做呢?

4

1 回答 1

4

在这一点上,我只能建议有用的文档和库,

看看LIVE555 Streaming Media C++ Libraries,其中包括完整的源代码和有关如何正确实现/构建基本 RTSP 客户端和服务器的示例,毫无疑问,它是为数不多的托管有关 RTSP 标准的有价值信息的网站之一。

不幸的是,这一切都在 C++ 中,但它不应该阻止您查看他们令人难以置信的记录良好的代码以及示例,这些示例从客户端和服务器之间的 RTSP 通信的最基本原理到更高级的案例。

另一种方法可能是以允许您在 Delphi 应用程序中使用它的方式操作openRTSP命令行程序。

就这一点而言,似乎没有任何简单的方法可以解决这个问题,大多数(如果不是全部)此类 Streaming 库的 Delphi 包装器/翻译都不是免费的,而且非常昂贵

祝你好运。

于 2013-05-24T23:21:47.460 回答