Read, publish and proxy video and audio streams with Golang-based RTSP / RTMP / LL-HLS


This Golang Open Source project is a ready-to-use and zero-dependency server and proxy that allows users to publish, read and proxy live video and audio streams through various protocols:

protocoldescriptionpublishreadproxy
RTSPthe fastest way to publish and read streamsheavy_check_markheavy_check_markheavy_check_mark
RTMPallows interacting with legacy softwareheavy_check_markheavy_check_markheavy_check_mark
Low-Latency HLSallows embedding streams into a web pagexheavy_check_markheavy_check_mark

Features of Golang-based RTSP / RTMP / LL-HLS Server:

  • Publish live streams to the server
  • Read live streams from the server
  • Authenticate users; use internal or external authentication
  • Query and control the server through an HTTP API
  • Read Prometheus-compatible metrics
  • Act as a proxy and serve streams from other servers or cameras, always or on-demand
  • Each stream can have multiple videos and audio tracks, encoded with any codec, including H264, H265, VP8, VP9, AAC, Opus, PCM, JPEG,MPEG2, MP3
  • Streams are automatically converted from one protocol to another. For instance, it’s possible to publish a stream with RTSP and read it with HLS
  • Serve multiple streams at once in separate paths
  • Redirect readers to other RTSP servers (load balancing)
  • Run external commands when clients connect, disconnect, read or publish streams
  • Reload the configuration without disconnecting existing clients (hot reloading)
  • Compatible with Windows, Linux and macOS, does not require any dependency or interpreter, it’s a single executable