• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created about 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SRT relay server for distributing media streams to multiple clients.

srtrelay CI

Streaming-Relay for the SRT-protocol

Use at your own risk.

Quick start

Run with docker (Note: nightly image not recommended for production)

docker run ghcr.io/voc/srtrelay/srtrelay:latest

# start publisher
ffmpeg -i test.mp4 -c copy -f mpegts srt://localhost:1337?streamid=publish/test

# start subscriber
ffplay -fflags nobuffer srt://localhost:1337?streamid=play/test

Start docker with custom config. See config.toml.example

# provide your own config from the local directory
docker run -v $(pwd)/config.toml:/home/srtrelay/config.toml ghcr.io/voc/srtrelay/srtrelay:latest

Run with docker-compose

In your docker-compose.yml:

   srtrelay:
     image: ghcr.io/voc/srtrelay/srtrelay:latest
     restart: always
     container_name: srtrelay
     volumes:
       - ./srtrelay-config.toml:/home/srtrelay/config.toml
     ports:
       - "44560:1337/udp"

This will forward port 44560 to internal port 1337 in the container. Importantly, forwarding UDP is required. It will also copy a srtrelay-config.toml file in the same directory into the container to use as config.toml

Start the server with the usual

docker-compose up -d

Build with docker

You will need atleast docker-20.10

docker build -t srtrelay .

# run srtrelay
docker run --rm -it srtrelay

Build without docker

Install Dependencies

Requires >=libsrt-1.4.2, golang and a C compiler

Ubuntu

Debian 10:

Gentoo:

  • emerge net-libs/srt

Build

go build -o srtrelay

# run srtrelay
./srtrelay

Usage

Commandline Flags

# List available flags
./srtrelay -h

Configuration

Please take a look at config.toml.example to learn more about configuring srtrelay.

The configuration file can be placed under config.toml in the current working directory, at /etc/srtrelay/config.toml or at a custom location specified via the -config flag.

API

See docs/API.md for more information about the API.

Contributing

See docs/Contributing.md

Credits

Thanks go to

More Repositories

1

voctomix

Full-HD Software Live-Video-Mixer in python
Python
580
star
2

voctoweb

voctoweb – the frontend and backend software behind media.ccc.de
Ruby
188
star
3

aes67-recorder

A Linux/GStreamer-Based AES67 Multitrack Audio Backup Solution
Python
88
star
4

multiview-monitor

Generate a MultiView of multiple Streams and stream it back to the Server. Also supports EBU Loudness Monitoring.
Python
62
star
5

streaming-website

Home of streaming.media.ccc.de
JavaScript
50
star
6

plugin.video.media-ccc-de

Kodi plugin for https://media.ccc.de/
Python
43
star
7

intro-outro-generator

Frab-Based Into- and Outro-Generator
PostScript
38
star
8

kevin

JavaScript
29
star
9

hls-relive

An HLS stream timeshifting system
Perl
24
star
10

cm

Configuration management for all VOC systems
Python
24
star
11

decklink-debugger

Blackmagicdesign DeckLink input debugger
C++
23
star
12

engelschulung

C3VOC Engelschulung
TeX
15
star
13

schedule

Python
14
star
14

rtmp-auth

Simple Auth backend for the nginx-rtmp module
CSS
14
star
15

voctopublish

This repository contains a glue script that reads information from the C3TT and talks to voctoweb, youtube and twitter.
Python
8
star
16

voc-player

HTML5 Stream Player for MPEG-DASH and HLS
JavaScript
7
star
17

voctoquality

FFmpeg video setting comparison framework
Python
7
star
18

stream-tools

Streaming and load testing tools
Go
7
star
19

scripts

misc scripts and data without an own repo
Python
7
star
20

touchmix-patcher

Customize firmware for QSC audio mixers
Shell
5
star
21

wink

(W)o (i)st mei(n)e Winke(k)atze? - C3VOC inventory and transport planning interface.
Ruby
5
star
22

eventkalender

Feed generator for c3voc events.
Ruby
4
star
23

dvswitch-voc

DVSwitch - Minimized Userinterface Edition (obsolete)
4
star
24

33C3_schedule

3
star
25

decklink-to-tcp

Experimental Decklink-to-TCP bridge
Python
3
star
26

c3data

meta repository for conferences, events, recordings aka "Ein Rangierbahnhof für Fahrplandaten"
PLpgSQL
3
star
27

camp2019_schedule

Backup of Camp2019 schedules including history
2
star
28

35C3_schedule

Backup of 35C3 schedules including history
2
star
29

stream-api

Go
2
star
30

36C3_schedule

Backup of 36C3 schedules including history
2
star
31

jvc-tools

Scripts for remote controlling JVC cams
JavaScript
2
star
32

backstage

TypeScript
1
star
33

transcoding

Python
1
star
34

relay_register

Ruby
1
star
35

subtitles-30C3

Shell
1
star
36

voctothek

experimental typescript client using the voctoweb GraphQL API
1
star
37

ys

your stream
Ruby
1
star
38

video-release-form-generator

Frab-Based Release-Form-Generator
Ruby
1
star
39

dvb

Tools for creating and muxing DVB streams
1
star
40

34C3_schedule

1
star
41

voctosched

Tools for generating and manipulating frab-style fahrplan
Python
1
star
42

fusewav

A Fuse-Filesystem for Zero-Copy concatenation of PCM-Wav-Files
Go
1
star
43

website

c3voc website
CSS
1
star
44

jev22_schedule

1
star