Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
aler9 ed5e1c7cfc implement publishing via tcp 5 years ago
rtsp implement reading via TCP 5 years ago
.dockerignore update .dockerignore 5 years ago
.gitignore initial commit 5 years ago
.travis.yml update readme, travis ci 5 years ago
LICENSE initial commit 5 years ago
Makefile update readme, travis ci 5 years ago
README.md implement publishing via tcp 5 years ago
go.mod initial commit 5 years ago
go.sum initial commit 5 years ago
main.go implement publishing via tcp 5 years ago
rtsp_client.go implement publishing via tcp 5 years ago
rtsp_listener.go implement reading via TCP 5 years ago
udp_listener.go implement publishing via tcp 5 years ago

README.md

rtsp-simple-server

Go Report Card Build Status

rtsp-simple-server is a simple, ready-to-use and zero-dependency RTSP server, a program that allows multiple users to read or publish live video and audio streams. RTSP a standardized protocol that defines how to perform these operations with the help of a server, that is contacted by both readers and publishers in order to negotiate a streaming protocol and read or write data. The server is then responsible of linking the publisher stream with the readers.

This software was developed with the aim of simulating a live camera feed for debugging purposes, and therefore to use files instead of real streams. Another reason for the development was the deprecation of FFserver, the component of the FFmpeg project that allowed to create a RTSP server with FFmpeg (but this server can be used with any software that supports RTSP).

Features:

  • Supports reading and publishing streams
  • Supports one publisher at once, while readers can be more than one.
  • Supports reading via UDP and TCP
  • Supports publishing via UDP and TCP


Installation

Precompiled binaries are available in the release page. Just download and extract the executable.


Usage

  1. Start the server:

    ./rtsp-simple-server
    
  2. In another terminal, publish something with FFmpeg (in this example it's a video file, but it can be anything you want):

    ffmpeg -re -stream_loop -1 -i file.ts -map 0:v:0 -c:v copy -f rtsp rtsp://localhost:8554/
    
  3. Open the stream with VLC:

    vlc rtsp://localhost:8554/
    

    you can alternatively use GStreamer:

    gst-launch-1.0 -v rtspsrc location=rtsp://localhost:8554/ ! rtph264depay ! decodebin ! autovideosink
    


Full command-line usage

usage: rtsp-simple-server [<flags>]

rtsp-simple-server

RTSP server.

Flags:
  --help            Show context-sensitive help (also try --help-long and --help-man).
  --version         print rtsp-simple-server version
  --rtsp-port=8554  port of the RTSP TCP listener
  --rtp-port=8000   port of the RTP UDP listener
  --rtcp-port=8001  port of the RTCP UDP listener


IETF Standard