Skip to content

Latest commit

 

History

History
153 lines (131 loc) · 8.69 KB

README.md

File metadata and controls

153 lines (131 loc) · 8.69 KB

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.18 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 only selected media streams
      • Pause or seek without disconnecting from the server
      • Generate RTCP receiver reports (UDP only)
      • Reorder incoming RTP packets (UDP only)
    • 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
      • Generate RTCP sender reports
  • Server
    • Handle requests from clients
    • Sessions and connections are independent
    • Publish
      • Read media streams from clients with the UDP or TCP transport protocol
      • Read TLS-encrypted streams (TCP only)
      • Generate RTCP receiver reports (UDP only)
      • Reorder incoming RTP packets (UDP only)
    • Read
      • Write media streams to clients with the UDP, UDP-multicast or TCP transport protocol
      • Write TLS-encrypted streams
      • Compute and provide SSRC, RTP-Info to clients
      • Generate RTCP sender reports
  • Utilities
    • Parse RTSP elements
    • Encode/decode format-specific frames into/from RTP packets

Table of contents

Examples

API Documentation

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

RTP Payload Formats

In RTSP, media streams are routed between server and clients by using RTP packets. In order to decode a stream, RTP packets must be converted into codec-specific frames. This conversion happens by following a RTP payload format. This library provides encoders and decoders for the following formats:

Video

codec format documentation
AV1 AV1 link
VP9 VP9 link
VP8 VP8 link
H265 H265 link
H264 H264 link
MPEG-4 Video (H263, Xvid) MP4V-ES link
M-JPEG JPEG link

Audio

codec format documentation
Opus Opus link
MPEG-4 Audio (AAC) mpeg4-generic link
MPEG-4 Audio (AAC) MP4A-LATM link
MPEG-1/2 Audio (MP3) mpeg2-audio link
G722 G722 link
G711 (PCMA, PCMU) G711 link
LPCM LPCM link

Standards

Links

Related projects