SolarOS 4.17.7 manual · app
rtsp
Play a trusted-LAN RTSP stream using UDP RTP/JPEG video and RTP/L16 audio.
rtsp rtsp://192.168.1.238/media
rtsp 192.168.1.238/media
rtsp user:secret@192.168.1.192:8554/youtube
rtsp --audio-only rtsp://192.168.1.113/media
rtsp --stats rtsp://192.168.1.192:8554/youtube
rtsp --audio-only --stats rtsp://192.168.1.192:8554/youtube
rtsp-auth set 192.168.1.50 admin camera-password
rtsp rtsp://192.168.1.50/media
The rtsp:// prefix is optional. The RTSP control connection uses TCP port 554 unless a port is supplied; RTP media uses negotiated UDP ports. Addresses without a path are accepted; include the publisher's path when required.
RTSP playback keeps Wi-Fi awake while connecting, playing, and reconnecting to avoid delayed or dropped live media. Normal power saving resumes after playback stops, unless another active service still needs low-latency Wi-Fi.
Inline credentials use user:password@host; percent-encode spaces and reserved characters in the username or password. rtsp-auth set <host[:port]> <user> <password> saves up to four accounts for URLs without inline credentials. Run rtsp-auth to list accounts, or rtsp-auth clear [host[:port]] to remove one account or all accounts when the host is omitted. The player hides passwords.
Graphical sessions show aspect-fit JPEG video when a video track is selected. Audio-only sessions use the common audio GUI oscilloscope, fed by playback PCM, filling the available area between the header and player controls. Port shells select audio only and print playback status. --audio-only skips video negotiation and video buffers even when the publisher offers both tracks. Audio uses the selected default output and global volume; Up/Down adjust volume (+/- remain aliases). The graphical player uses the common header, volume bar, and Stop/Play button. Enter, Space, or a tap on the button stops playback without closing the app; Play reconnects to the same URL. Stopping releases the network, decoder, audio output, and media buffers once their workers finish. RTSP URLs are single sources, so there are no Previous/Next buttons. F toggles fullscreen, hiding the header and controls while retaining aspect-fit video or expanding the audio-only oscilloscope to the whole screen. D toggles the separate frame diagnostic overlay: received, displayed, network/app drops, and displayed frames per second. Q, Escape, or the normal application-exit key closes playback. Suspending keeps audio playing and pauses video decoding until you return. Closing releases the audio output and network connection.
Temporary connection failures retry up to six times. Unsupported codecs, failed or unsupported authentication, and local memory or audio failures stop immediately. The shell diagnostic identifies the failing operation. Use --stats and log show for frame counts, drops, timings, audio buffering, and retry details. The D overlay works without logging; --stats also enables it initially.
Requirements and limits:
- IPv4 RTSP 1.0 with unicast UDP media. Client authentication supports Basic or Digest MD5 (
qop=author no qop); thertspdpublisher remains unauthenticated. - One JPEG video track and/or one L16 audio track (8–48 kHz, mono or stereo).
- JPEG types 0/1 with explicit 8-bit quantization tables (Q=255); restart markers are supported.
- TCP interleaving, multicast, encrypted RTSP, compressed audio, and redirects are unsupported.
- Five seconds without media triggers reconnection. Retry exhaustion returns an error to the shell.
rtspdallows one receiver at a time; stop another receiver before connecting.- Microphone capture cannot be opened while playback is active.
If playback reports no memory, use mem to check internal memory and its largest free block, then stop unused jobs. PSRAM alone does not meet audio and DMA memory requirements.