2023-08-16 13:26:17 +02:00
2023-07-24 19:59:05 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-12 20:20:01 +02:00
2020-01-20 10:15:24 +01:00
2021-02-13 20:13:19 +01:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-13 16:29:53 +02:00
2023-08-16 13:26:17 +02:00
2023-01-22 11:44:20 +01:00
2023-08-16 13:26:17 +02:00
2023-08-08 13:50:53 +02:00
2020-01-20 10:08:25 +01:00
2023-08-12 20:19:54 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-16 13:26:17 +02:00
2023-08-13 16:29:53 +02:00
2023-08-16 13:26:17 +02:00
2022-05-10 10:28:52 +02:00

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/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

Description
No description provided
Readme MIT 15 MiB
Languages
Go 99.8%
Makefile 0.2%