Amend RTSP dev guide to match the current code status.

PiperOrigin-RevId: 381852972
This commit is contained in:
claincly 2021-06-28 14:45:58 +01:00 committed by Oliver Woodman
parent ffbec2234d
commit 02db70bdd0
2 changed files with 32 additions and 6 deletions

View File

@ -2,10 +2,13 @@ ExoPlayer supports both live and on demand RTSP. Supported formats and network
types are listed below.
**Supported formats**
* H264
* AAC (with ADTS bitstream)
* AC3
* H264. The SDP media description must include SPS/PPS data in the fmtp
attribute for decoder initialization.
* AAC (with ADTS bitstream).
* AC3.
**Supported network types**
* RTP over UDP unicast (multicast is not supported)
* Interleaved RTSP, RTP over RTSP using TCP
* RTP over UDP unicast (multicast is not supported).
* Interleaved RTSP, RTP over RTSP using TCP.
> Playback of RTP streams is not supported.

View File

@ -26,6 +26,13 @@ player.prepare();
{: .language-java}
### Play authentication-enabled RTSP content ###
ExoPlayer supports playback with RTSP BASIC and DIGEST authentication. To play
protected RTSP content, the `MediaItem`'s URI must be configured with the
authtication info. Specifically, the URI should follow the format
`rtsp://<username>:<password>@<host address>`.
## Using RtspMediaSource ##
For more customization options, you can create an `RtspMediaSource` and pass it
@ -45,7 +52,7 @@ player.prepare();
~~~
{: .language-java}
## Using RTSP behind a NAT ##
## Using RTSP behind a NAT (RTP/TCP support) ##
ExoPlayer uses UDP as the default protocol for RTP transport.
@ -55,3 +62,19 @@ necessary UDP port mapping. If ExoPlayer detects there have not been incoming
RTP packets for a while and the playback has not started yet, ExoPlayer tears
down the current RTSP playback session, and retries playback using RTP-over-RTSP
(transmitting RTP packets using the TCP connection opened for RTSP).
The timeout for retrying with TCP can be customized by calling the method
`RtspMediaSource.Factory.setTimeoutMs()`. For example, if the timeout is set to
four seconds, the player will retry with TCP after four seconds of UDP
inactivity.
> Setting the timeout also affects the end-of-stream detection logic. That is,
ExoPlayer will report the playback has ended if nothing is received for the
duration of the set timeout. Setting this value too small may lead to pre-mature
stream ending under poor network conditions.
### Force using RTP/TCP ###
ExoPlayer can also be configured to play with RTP/TCP by default. To do so,
use method `RtspMediaSource.Factory.setForceUseRtpTcp()`.