Home

Awesome

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.20 is required.

Features:

Table of contents

Examples

API Documentation

Click to open the API Documentation

RTP Payload Formats

In RTSP, media streams are routed between server and clients by using RTP packets, which are encoded in a specific, codec-dependent, format. This library supports formats for the following codecs:

Video

codecdocumentationencoder 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:heavy_check_mark:
M-JPEGlink:heavy_check_mark:

Audio

codecdocumentationencoder and decoder available
Opuslink:heavy_check_mark:
Vorbislink
MPEG-4 Audio (AAC)link:heavy_check_mark:
MPEG-1/2 Audio (MP3)link:heavy_check_mark:
AC-3link:heavy_check_mark:
Speexlink
G726link
G722link:heavy_check_mark:
G711 (PCMA, PCMU)link:heavy_check_mark:
LPCMlink:heavy_check_mark:

Other

codecdocumentationencoder and decoder available
MPEG-TSlink

Specifications

namearea
RFC2326, RTSP 1.0protocol
RFC7826, RTSP 2.0protocol
RFC8866, SDP: Session Description ProtocolSDP
RTP Payload Format For AV1 (v1.0)AV1 payload format
RTP Payload Format for VP9 VideoVP9 payload format
RFC7741, RTP Payload Format for VP8 VideoVP8 payload format
RFC7798, RTP Payload Format for High Efficiency Video Coding (HEVC)H265 payload format
RFC6184, RTP Payload Format for H.264 VideoH264 payload format
RFC3640, RTP Payload Format for Transport of MPEG-4 Elementary StreamsMPEG-4 audio, MPEG-4 video payload formats
RFC2250, RTP Payload Format for MPEG1/MPEG2 VideoMPEG-1 video, MPEG-2 audio, MPEG-TS payload formats
RFC2435, RTP Payload Format for JPEG-compressed VideoM-JPEG payload format
RFC7587, RTP Payload Format for the Opus Speech and Audio CodecOpus payload format
Multiopus in libwebrtcOpus payload format
RFC5215, RTP Payload Format for Vorbis Encoded AudioVorbis payload format
RFC4184, RTP Payload Format for AC-3 AudioAC-3 payload format
RFC6416, RTP Payload Format for MPEG-4 Audio/Visual StreamsMPEG-4 audio payload format
RFC5574, RTP Payload Format for the Speex CodecSpeex payload format
RFC3551, RTP Profile for Audio and Video Conferences with Minimal ControlG726, G722, G711, LPCM payload formats
RFC3190, RTP Payload Format for 12-bit DAT Audio and 20- and 24-bit Linear Sampled AudioLPCM payload format
Codec specificationscodecs
Golang project layoutproject layout

Related projects