关于流:关于 RTSP over HTTP 隧道的混淆

Confusion regarding RTSP over HTTP tunneling

我对此感到困惑,但没有得到任何答案。

我正在使用 RTSP 通过 HTTP 隧道传输视频文件,然后当我看到wire-shark 以查看数据包源和目标以及协议时,我看到了一个 UDP 协议,尽管我使用的是 RTSP HTTP 隧道。

谁能告诉我为什么我没有看到 TCP 协议而不是 UDP 协议用于从源发送到目标的数据包?


RTSP 设置 RTP 流以流式传输视频和音频。它们可能是通过 UDP 而不是通过现有 TCP 连接的隧道发送的。

仅仅因为 RTSP 通过 HTTP 进行隧道传输,并不能保证 RTP 流将被配置为使用相同的套接字。请求传输由客户端决定,但您可以将服务器更改为仅支持交错传输。请参阅此答案 https://stackoverflow.com/a/3536969/759140


RTSP 是一种网络控制协议。根据维基百科,

The default port for the RTSP protocol is 554 for both UDP (deprecated
and very rarely used) and TCP transports.

结论:将使用UDP或TCP,取决于您使用的服务器和设置。


非常正确,但是如果您在 ffmpeg 中指定使用 tcp-transport,如果服务器已为其配置,则它应该使用 TCP。

如果你不指定任何传输选项,新版本的 ffmpeg 将尝试 UDP,如果失败,它将重试连接或 TCP。