mirror of
				https://github.com/aler9/gortsplib
				synced 2025-10-31 18:42:40 +08:00 
			
		
		
		
	
			
				
					
						
					
					653a5745889eda136d351d593dab744f0359be2c
				
			
			
		
	gortsplib
RTSP 1.0 client and server library for the Go programming language, written for MediaMTX.
Go ≥ 1.21 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%
							
						
					