'Why RTP doesn't support multiple streams to one port but RTSP does?

I use ffmpeg for streaming a video using RTP protocol. Why I can't send multiple streams to one RTP port, but RTSP that uses RTP can? I started a RTSP server that listens 8554 TCP port and 8000/8001 RTP/RTCP. It easily can receive both video and audio streams to one port 8000, I've checked it with wireshark. But when I try to do the same with pure RTP using ffmpeg, it prints me an error

Only one stream supported in the RTP muxer

And if I want to stream a video with sound, I have to split them into two streams and send to different RTP ports. Or maybe I can somehow make it receive multiple streams to one port via RTP?

Could you explain me, why it happens?



Solution 1:[1]

The RFC for RTP explains a bit here

For example, in a teleconference composed of audio and video media encoded separately, each medium SHOULD be carried in a separate RTP session with its own destination transport address.

Separate audio and video streams SHOULD NOT be carried in a single RTP session and demultiplexed based on the payload type or SSRC fields. Interleaving packets with different RTP media types but using the same SSRC would introduce several problems

Also see the multiplex guidelines draft RFC. So it is possible to multiplex RTP streams but the software you are using may not support it.

I can't answer how RTSP handles this however. The answer is likely in the RFC

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 PacketWrassler