mirror of
https://github.com/aler9/gortsplib
synced 2025-12-24 13:38:08 +08:00
ff85f6156a4eec731e704a8a3a7d1bda2091fa64
RTCP packets were sent out to nil addresses, due to the lack of server ports, causing an error.
gortsplib
RTSP 1.0 client and server library for the Go programming language, written for MediaMTX.
Go ≥ 1.23 is required.
Features:
- Client
- Query servers about available media streams
- Read media streams from a server ("play")
- Read streams with the UDP, UDP-multicast or TCP transport protocol
- Read TLS-encrypted streams (TCP only)
- Switch transport protocol automatically
- Read selected media streams
- Pause or seek without disconnecting from the server
- Write to ONVIF back channels
- Get PTS (relative) timestamp of incoming packets
- Get NTP (absolute) timestamp of incoming packets
- Write media streams to a server ("record")
- Write streams with the UDP or TCP transport protocol
- Write TLS-encrypted streams (TCP only)
- Switch transport protocol automatically
- Pause without disconnecting from the server
- Server
- Handle requests from clients
- Validate client credentials
- Read media streams from clients ("record")
- Read streams with the UDP or TCP transport protocol
- Read TLS-encrypted streams (TCP only)
- Get PTS (relative) timestamp of incoming packets
- Get NTP (absolute) timestamp of incoming packets
- Serve media streams to clients ("play")
- Write streams with the UDP, UDP-multicast or TCP transport protocol
- Write TLS-encrypted streams (TCP only)
- Compute and provide SSRC, RTP-Info to clients
- Read ONVIF back channels
- Utilities
- Parse RTSP elements
- Encode/decode RTP packets into/from codec-specific frames
Table of contents
Examples
- client-query
- client-play
- client-play-timestamp
- client-play-options
- client-play-pause
- client-play-to-record
- client-play-backchannel
- client-play-format-av1
- client-play-format-av1-to-jpeg
- client-play-format-g711
- client-play-format-h264
- client-play-format-h264-to-jpeg
- client-play-format-h264-to-disk
- client-play-format-h264-mpeg4audio-to-disk
- client-play-format-h265
- client-play-format-h265-to-jpeg
- client-play-format-h265-to-disk
- client-play-format-lpcm
- client-play-format-mjpeg
- client-play-format-mpeg4audio
- client-play-format-mpeg4audio-to-disk
- client-play-format-opus
- client-play-format-opus-to-disk
- client-play-format-vp8
- client-play-format-vp9
- client-record-options
- client-record-pause
- client-record-format-av1
- client-record-format-g711
- client-record-format-h264
- client-record-format-h264-from-disk
- client-record-format-h265
- client-record-format-lpcm
- client-record-format-mjpeg
- client-record-format-mpeg4audio
- client-record-format-opus
- client-record-format-vp8
- client-record-format-vp9
- server
- server-tls
- server-auth
- server-record-format-h264-to-disk
- server-play-format-h264-from-disk
- server-play-backchannel
- proxy
- proxy-backchannel
API Documentation
Click to open the API Documentation
RTP Payload Formats
In RTSP, media streams are transmitted by using RTP packets, which are encoded in a specific, codec-dependent, format. This library supports formats for the following codecs:
Video
| codec | documentation | encoder and decoder available |
|---|---|---|
| AV1 | link | ✔️ |
| VP9 | link | ✔️ |
| VP8 | link | ✔️ |
| H265 | link | ✔️ |
| H264 | link | ✔️ |
| MPEG-4 Video (H263, Xvid) | link | ✔️ |
| MPEG-1/2 Video | link | ✔️ |
| M-JPEG | link | ✔️ |
Audio
| codec | documentation | encoder and decoder available |
|---|---|---|
| Opus | link | ✔️ |
| Vorbis | link | |
| MPEG-4 Audio (AAC) | link | ✔️ |
| MPEG-1/2 Audio (MP3) | link | ✔️ |
| AC-3 | link | ✔️ |
| Speex | link | |
| G726 | link | |
| G722 | link | ✔️ |
| G711 (PCMA, PCMU) | link | ✔️ |
| LPCM | link | ✔️ |
Other
| codec | documentation | encoder and decoder available |
|---|---|---|
| MPEG-TS | link |
Specifications
Related projects
Languages
Go
99.8%
Makefile
0.2%