Skip to content

garytong/gortsplib

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gortsplib

Test Lint Go Report Card CodeCov PkgGoDev

RTSP 1.0 client and server library for the Go programming language, written for MediaMTX.

Go ≥ 1.19 is required.

Features:

  • Client
    • Query servers about available media streams
    • Read
      • Read media streams from servers with the UDP, UDP-multicast or TCP transport protocol
      • Read TLS-encrypted streams (TCP only)
      • Switch transport protocol automatically
      • Read selected media streams only
      • Pause or seek without disconnecting from the server
      • Get PTS (relative) timestamp of incoming packets
      • Get NTP (absolute) timestamp of incoming packets
    • Publish
      • Publish media streams to servers with the UDP or TCP transport protocol
      • Publish TLS-encrypted streams (TCP only)
      • Switch transport protocol automatically
      • Pause without disconnecting from the server
  • Server
    • Handle requests from clients
    • Publish
      • Read media streams from clients 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
    • Read
      • Write media streams to clients 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 codec-specific frames into/from RTP packets

Table of contents

Examples

API Documentation

https://pkg.go.dev/github.com/bluenviron/gortsplib/v4#pkg-index

RTP Payload Formats

In RTSP, media streams are routed between server and clients by using RTP packets. Conversion between RTP packets and codec-specific frames happens by using a payload format. This library recognizes the following payload formats:

Video

format / codec variant 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

format / codec variant documentation encoder and decoder available
Opus link ✔️
Vorbis link
MPEG-4 Audio (AAC) Generic (RFC3640) link ✔️
MPEG-4 Audio (AAC) LATM (RFC6416) link ✔️
MPEG-1/2 Audio (MP3) link ✔️
Speex link
G726 link
G722 link ✔️
G711 (PCMA, PCMU) link ✔️
LPCM link ✔️

Mixed

format / codec variant documentation encoder and decoder available
MPEG-TS link

Standards

Related projects

About

RTSP 1.0 client and server library for the Go programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.5%
  • Other 0.5%