mirror of
https://github.com/aler9/gortsplib
synced 2025-12-24 13:38:08 +08:00
3e555e2d18c4cf95d9883aacc74c59691233e9f1
also prevents RTCP sender and RTCP reports from being emitted when track has clock rate set to zero.
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
- 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-h264-to-disk
- server-h264-from-disk
- proxy
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%