1
7
要扩展android的答案, 对于android客户端,他们总是先尝试建立udp连接。 对于opencore和stagefroght,我可以确认,如果响应第一个udp传输设置请求从服务器返回“461 unsupported transport”,则这两个客户端将立即尝试通过rtsp端口建立基于tcp的连接。 所有其他回复如下: http://www.ietf.org/rfc/rfc2326.txt |
2
5
据我所知,服务器端没有传输类型首选项的控件。服务器应该是通用的,它应该支持udp上的rtp、tcp上的rtp、rtsp上的rtp和http上的rtsp上的rtp。它的客户选择哪种运输方式。传输字段首先在安装请求中发送 1)UDP
2)TCP
3)rtp over rtsp和rtp over rtsp over http(s)
我们可以看到“传输类型”请求是由客户端发送的。 如果您想支持纯TCP服务器,您可以发送“400错误请求”或“461不支持的传输”以响应您建议的安装请求,或者另一种方式是发送200 OK,但不发送任何RTP数据包。客户端将超时并知道它在代理之后,它将使用rtp/avp/tcp参数再次发送安装请求(不是理想情况)。 |
3
4
一种方法是发送“400错误请求”作为对客户端设置请求的响应…自动切换到TCP协议。这是给RealOne和QuickTime的。 但我不确定它是否适用于所有其他玩家,因为这是一个黑客。 还有其他想法吗?= |
4
3
如果使用ffmpeg,可以强制切换rtsp传输层协议。
|
5
1
哪个客户端连接到您的服务器?有些客户端可以通过url中的uri方法触发。例如,可以指定rtspt://myhost/path.sdp。 如果您可以控制客户机/服务器,则可以在客户机上使用require头,在服务器上使用unsupported头来指示不支持udp;但我见过的大多数客户机都不使用此头。 |
6
1
您可以尝试在响应中传递“transport”头来描述请求,并在此声明您的服务器仅支持rtp/avp/tcp传输,并且客户端应该知道udp不受支持。 |
Ameya · 如何在爱奥尼亚2中播放rtsp实时视频? 6 年前 |
Ehsan Akbar · 在c中将onvif流转换为rtsp地址# 7 年前 |
Horizon1710 · 在linux上将已编码的数据流传输到网络 7 年前 |
Max Ridman · FFmpeg抓取RTSP IP摄像机 7 年前 |
lgabryel · 在ffmpeg流上拆分屏幕并调整大小 7 年前 |
Nick_K · RTSP流到Windows 8上的虚拟视频设备 10 年前 |