如何解析RTSP请求和响应头?

时间:2013-05-20 23:55:55

标签: delphi delphi-xe2 rtsp indy indy10

我正在构建RTSP服务器,我正在创建两个名为TRTSPRequestTRTSPResponse的请求/响应对象,类似于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添加方法             在大多数情况下,连续媒体需要服务器状态。

那我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

此时我只能建议有用的文档和图书馆,

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

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

另一种方法可能是以允许您将其与Delphi应用程序一起使用的方式操作openRTSP命令行程序。

关于这一点,似乎没有任何简单的方法可以解决这个问题,大多数情况下,如果不是所有的Delphi包装/翻译都不是免费且非常昂贵

祝你好运。