1

我目前正在用 C#(服务器/客户端)实现 RTSP 标准,但是在重新阅读 RFC 2326 一千次之后,我仍然不清楚一件事。

看起来 RTSP 只是一个 [C<->S] 控制协议。但是,如果我试图为网络中的多个客户端/服务器设备建立管理呢?例子:

我有一个管理应用程序,它是一个 RTSP 客户端。我想告诉另一个客户他应该连接到不同的服务器。就像是:

SETUP rtsp://192.168.1.12 RTSP/1.0
      CSeq: 302
      Transport: RTP/AVP;rtsp-redirect:192.168.1.155

RFC 对传输属性非常严格。我也考虑过“重定向”,但这只是 S->C 用于负载平衡用途。有没有办法实现客户端<->客户端通信以进行重定向(例如,告诉客户端他必须在另一台服务器上删除命令?)

4

1 回答 1

2

无论如何,您要做的是聚合...您不想将公众重定向到公司防火墙后面的摄像头...您需要首先在媒体服务器上设置摄像头,然后允许通过媒体服务器通过密码保护媒体服务器上的流。

查看我在 c# 中的实现,它与 VLC @ https://net7mma.codeplex.com/兼容,并支持我上面提到的所有内容!

这里有一篇 CodeProject 文章 -> http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

实际上有..

@http ://www.ietf.org/rfc/rfc2326.txt

10.10 重定向

重定向请求通知客户端它必须连接到另一个服务器位置。它包含强制标头 Location,它指示客户端应该发出对该 URL 的请求。它可能包含参数Range,表示重定向何时生效。如果客户端想要继续发送或接收此 URI 的媒体,客户端必须为当前会话发出 TEARDOWN 请求,并在指定主机上为新会话发出 SETUP。

此示例请求在给定播放时间将此 URI 的流量重定向到新服务器:

 S->C: REDIRECT rtsp://example.com/fizzle/foo RTSP/1.0
       CSeq: 732
       Location: rtsp://bigserver.com:8001
       Range: clock=19960213T143205Z-

如果您还需要什么,请告诉我!

于 2012-12-12T04:02:32.100 回答