srtrelay
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
- you will need to build libsrt yourself
Debian 10:
- use libsrt-openssl-dev from the voc repository
- or build it yourself
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
Credits
Thanks go to
- Haivision for srt and srtgo
- Edward Wu for srt-live-server
- Quentin Renard for go-astits