<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">The latest release (2014.03.25) of the "LIVE555 Streaming Media" software supports (both transmitting and receiving) RTCP packets that are multiplexed on the same port as RTP packets.  (This is optional behavior; the default behavior is still to have RTP packets sent on an even-numbered port, and RTCP packets sent on the next (i.e., odd-numbered) port.  Also, this applies only to RTP/RTCP-over-UDP, not to RTP/RTCP-over-TCP streaming.)<div><br></div><div>In particular:</div><div>- RTCP-multiplexing-with-RTP is signaled by a media-level attribute "a=rtcp-mux" (as defined in RFC 5761) in the stream's SDP description.  If a RTSP client sees this attribute in the stream's SDP description, it uses a single UDP port number (which can be odd or even) to receive both RTP and RTCP.</div><div>- A RTSP server can (optionally) be set up to stream RTCP-multiplexed-with-RTP (in which case it will choose either an odd or even-numbered port, and automatically include the "a=rtcp-mux" attribute in the stream's SDP description).  When programming a RTSP server application, you can enable RTCP-multiplexing-with-RTP by doing the following:</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>- If you're creating a "PassiveServerMediaSubsession" (for streaming via multicast), make the "rtpSink" and "rtcpInstance" parameter objects use the same "Groupsock" object.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>- If you're creating an "OnDemandServerMediaSubsession" (for streaming via unicast), either:</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>1/ Set the optional "multiplexRTCPWithRTP" parameter (in the "OnDemandServerMediaSubsession" constructor) to True, or</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>2/ After the "OnDemandServerMediaSubsession" object has been created, call the new "multiplexRTCPWithRTP()" member function on it.</div><div><br></div><div>IMPORTANT NOTE: Few (if any) RTSP clients (other than those that use this software - version 2014.03.25 or later) will support RTCP-multiplexing-with-RTP.  Therefore, if you're programming a RTSP server application, you should not enable this feature, unless you know for sure that all RTCP clients will be using our software (version 2014.03.25 or later).</div><div><br></div><div style="orphans: auto; widows: auto;"><span style="orphans: 2; text-align: -webkit-auto; widows: 2;">Ross Finlayson</span></div><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>