SRS 可用性比较高 目前来说我只用来直播游戏 有的游戏禁播 如七日杀
首先你要有一个docker 可以是nas 或者服务器 搭配obs推流
Live Streaming 标准版 支持RTMP HLS 和自带的SRS网页播放
RTMP (by VLC): rtmp://localhost/live/livestream
H5(HTTP-FLV): http://localhost:8080/live/livestream.flv
H5(HLS): http://localhost:8080/live/livestream.m3u8
第一个支持安卓 VLC播放 第二个第三个支持 vlc mx 播放器
直播是SRS的典型场景,支持推直播流后多种观看方式。
先用Docker启动SRS:
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
Note: 可用镜像在 这里 和每个 Release 都会给出来链接。
使用FFmpeg的Docker推流到本机:
docker run --rm -it registry.cn-hangzhou.aliyuncs.com/ossrs/srs:encoder \
ffmpeg -stream_loop -1 -re -i doc/source.flv -c copy \
-f flv rtmp://host.docker.internal/live/livestream
或者使用 FFmpeg(点击下载) 或 OBS(点击下载) 推流:
ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
Note: 实例文件./doc/source.flv在SRS的源代码目录中有。
打开下面的页面播放流(若SRS不在本机,请将localhost更换成服务器IP):
RTMP (by VLC): rtmp://localhost/live/livestream
H5(HTTP-FLV): http://localhost:8080/live/livestream.flv
H5(HLS): http://localhost:8080/live/livestream.m3u8
WebRTC for Live Streaming
支持 WebRTC 基本没延迟 实时传输 还抗网络波动 推荐使用
SRS支持直播转WebRTC,推直播流,使用WebRTC观看。
先用Docker启动SRS:
CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/rtmp2rtc.conf
Note: 请将IP换成你的SRS的IP地址。
Note: 请将CANDIDATE设置为服务器的外网地址,详细请阅读WebRTC: CANDIDATE。
Note: 注意如果RTMP转WebRTC流播放,必须使用配置文件
rtmp2rtc.conf
使用FFmpeg的Docker推流到本机:
docker run --rm -it registry.cn-hangzhou.aliyuncs.com/ossrs/srs:encoder ffmpeg -stream_loop -1 -re -i doc/source.flv \
-c copy -f flv rtmp://host.docker.internal/live/livestream
或者使用 FFmpeg(点击下载) 或 OBS(点击下载) 推流:
ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
Note: 实例文件
./doc/source.flv
在SRS的源代码目录中有。
打开下面的页面播放流(若SRS不在本机,请将localhost更换成服务器IP):
H5(HLS): http://localhost:8080/live/livestream.m3u8
WebRTC: http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream
H5(HTTP-FLV): http://localhost:8080/live/livestream.flv
WebRTC 注意事项
如果说 你是Obs RTMP 推流 他会自动转到WebRTC 但是 你要关闭 OBS的 B帧=2
不关闭会特别掉帧 只有20左右 关闭后恢复60帧
搭建完成别忘记开放端口 默认8080打开控制台 你也可以反向代理
如何进一步查看 FPS、码率、延迟:
在 chrome://webrtc-internals
里:
- 找到
inbound-rtp
的 video 部分 - 展开图表,选择:
framesPerSecond
(当前帧率)frameWidth
,frameHeight
jitter
,packetsLost
(抖动/丢包)bytesReceived
→ 估算码率
Comments NOTHING