我有一个困惑,我搜索但没有得到任何答案。
我正在使用隧道传输视频文件RTSP
,HTTP
然后当我看到wire-shark 以查看数据包源和目标以及协议时,我看到了一个UDP
协议,尽管我使用RTSP
的是HTTP
隧道传输。
谁能告诉我为什么我看不到TCP
协议而不是UDP
从源发送到目的地的数据包的协议?
我有一个困惑,我搜索但没有得到任何答案。
我正在使用隧道传输视频文件RTSP
,HTTP
然后当我看到wire-shark 以查看数据包源和目标以及协议时,我看到了一个UDP
协议,尽管我使用RTSP
的是HTTP
隧道传输。
谁能告诉我为什么我看不到TCP
协议而不是UDP
从源发送到目的地的数据包的协议?
RTSP 为流式传输视频和音频设置 RTP 流。它们可能是通过 UDP 发送的,而不是通过现有 TCP 连接的隧道。
仅仅因为 RTSP 通过 HTTP 进行隧道传输并不能保证 RTP 流将被配置为使用相同的套接字。请求传输由客户端决定,但您可以将服务器更改为仅支持交错传输。看到这个答案https://stackoverflow.com/a/3536969/759140
非常正确,但是如果您指定在 ffmpeg 中使用 tcp-transport,如果为它配置了服务器,它应该使用 TCP。
如果您不指定任何传输选项,新版本的 ffmpeg 将尝试 UDP,如果失败,它将重试连接或 TCP。