Categorygithub.com/bluenviron/gortsplib/v3
package
3.11.0
Repository: https://github.com/bluenviron/gortsplib.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

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 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. Conversion between RTP packets and codec-specific frames happens by using a payload format. This library recognizes the following payload formats:

Video

format / codecvariantdocumentationencoder and decoder available
AV1link:heavy_check_mark:
VP9link:heavy_check_mark:
VP8link:heavy_check_mark:
H265link:heavy_check_mark:
H264link:heavy_check_mark:
MPEG-4 Video (H263, Xvid)link:heavy_check_mark:
MPEG-1/2 Videolink
M-JPEGlink:heavy_check_mark:

Audio

format / codecvariantdocumentationencoder and decoder available
Opuslink:heavy_check_mark:
Vorbislink
MPEG-4 Audio (AAC)Generic (RFC3640)link:heavy_check_mark:
MPEG-4 Audio (AAC)LATM (RFC6416)link:heavy_check_mark:
MPEG-1/2 Audio (MP3)link:heavy_check_mark:
Speexlink
G726link
G722link:heavy_check_mark:
G711 (PCMA, PCMU)link:heavy_check_mark:
LPCMlink:heavy_check_mark:

Mixed

format / codecvariantdocumentationencoder and decoder available
MPEG-TSlink

Standards

Related projects