SRS 流媒体搭建

烟雨 发布于 16 天前 18 次阅读


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-rtpvideo 部分
  • 展开图表,选择:
    • framesPerSecond(当前帧率)
    • frameWidth, frameHeight
    • jitter, packetsLost(抖动/丢包)
    • bytesReceived → 估算码率
此作者没有提供个人介绍。
最后更新于 2025-07-10