为什么 RTP 不支持到一个端口的多个流,但 RTSP 支持?



我使用ffmpeg使用RTP协议流式传输视频。为什么我不能将多个流发送到一个RTP端口,但使用RTP的RTSP可以?我启动了一个RTSP服务器,它侦听8554 TCP端口和8000/8001 RTP/RTCP。它可以很容易地将视频和音频流接收到一个8000端口,我已经用wireshark检查过了。但当我尝试使用ffmpeg对纯RTP进行同样的操作时,它会向我打印一个错误

Only one stream supported in the RTP muxer

如果我想用声音流式传输视频,我必须将它们分成两个流,并发送到不同的RTP端口。或者我可以通过RTP让它在一个端口接收多个流?

你能解释一下为什么会这样吗?

RTP的RFC在这里解释了

例如,在电话会议中由分别编码的音频和视频媒体组成,每种媒体应在具有自己目的地的单独RTP会话中进行传输地址。

单独的音频和视频流不应在单个流中承载RTP会话,并基于有效载荷类型或SSRC进行解复用字段。使用不同RTP媒体类型交错数据包,但是使用相同的SSRC将引入的几个问题

另请参阅多路复用指南草案RFC。因此,可以多路传输RTP流,但您使用的软件可能不支持它。

然而,我无法回答RTSP是如何处理的。答案可能在RFC 中

最新更新