SRS
启动命令
docker pull ossrs/srs:5
docker run --name srs -d \
--restart always \
--net backend \
--net-alias srs \
-v ~/srs/live.conf:/live.conf \
--env CANDIDATE=*your ipv4 address* -p 8000:8000 -p 8000:8000/udp \
-p 10080:10080/udp \
ossrs/srs:5 ./objs/srs -c /live.conf反代
我使用 Caddy 反代。此 Caddyfile 对各路径设置正确的后端地址;对提供 flv、HLS 等播放的域名,屏蔽几个敏感路径;对管理域名设置认证。
domain.for.live.flv.hls.etc.com {
respond /console/* 403
respond /rtc/v1/whip* 403
reverse_proxy /rtc/* srs:1985
reverse_proxy * srs:8080 {
}
header * {
?Access-Control-Allow-Origin *
Cache-Control no-cache
}
}
domain.for.management.com {
reverse_proxy /api/* srs:1985
# reverse_proxy /rtc/v1/whip* srs:1990
reverse_proxy /rtc/* srs:1985
reverse_proxy * srs:8080
basicauth * bcrypt {
*replace with your user name* *replace with your password*
}
}配置
live.conf,放于 ~/srs/live.con
listen 1935;
max_connections 100;
srs_log_tank console;
daemon off;
http_api {
enabled on;
listen 1985;
}
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
}
rtc_server {
enabled on;
listen 8000;
candidate $CANDIDATE;
ip_family all;
tcp {
enabled on;
listen 8000;
}
protocol all;
}
srt_server {
enabled on;
listen 10080;
connect_timeout 4000;
peerlatency 0;
recvlatency 1;
latency 1;
tlpktdrop off;
tsbpdmode off;
passphrase *please replace with your own passphrase*;
pbkeylen 32;
}
vhost __defaultVhost__ {
tcp_nodelay on;
min_latency on;
hls {
enabled on;
hls_fragment 5;
hls_window 30;
hls_wait_keyframe on;
}
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
rtc {
enabled on;
rtmp_to_rtc on;
rtc_to_rtmp on;
keep_bframe off;
}
srt {
enabled on;
srt_to_rtmp on;
}
play {
gop_cache on;
queue_length 85;
mw_msgs 0;
mw_latency 1;
}
publish {
mr off;
}
}