Skip to main content
版本:7.0 (Unstable) 🚧

Docker

推荐使用Docker启动SRS,这是最简单也是最方便的方式。

Live Streaming

直播是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):

WebRTC

SRS支持WebRTC,可以做会议或视频聊天。

先使用Docker启动SRS:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
    --env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5

Note: 请将IP换成你的SRS的IP地址。

Note: 请将CANDIDATE设置为服务器的外网地址,详细请阅读WebRTC: CANDIDATE

本机推拉流(即浏览器和SRS都在本机),使用WebRTC推流到SRS:WebRTC: Publish

Note: 非本机推拉流,也就是不能用localhost访问SRS时,浏览器限制必须HTTPS才能推拉流,请参考WebRTC using HTTPS,再次强调这是浏览器限制。

打开页面观看WebRTC流:WebRTC: Play

Note: 可以打开不同的页面,推拉不同的流,就可以实现视频聊天了。

WebRTC for Live Streaming

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):

WebRTC using HTTPS

推流时, 若需要在非本机使用WebRTC,比如SRS运行在远程服务器,在笔记本或者手机上使用WebRTC,则需要开启HTTPS API。

Note:如果只是播放WebRTC流,并不需要HTTPS,只有推流时(且非localhost)才需要HTTPS,这是浏览器的安全策略要求。

先用Docker启动SRS:

CANDIDATE="192.168.1.10"
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \
    --env CANDIDATE=$CANDIDATE -p 8000:8000/udp \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/https.docker.conf

Note: 请将IP换成你的SRS的IP地址。

Note: 请将CANDIDATE设置为服务器的外网地址,详细请阅读WebRTC: CANDIDATE

Remark: 请使用你的证书文件,代替上面配置中的key和cert,请参考 HTTPS API 以及 HTTPS Callback 以及 HTTPS Live Streaming, 当然了HTTPS的反向代理也能和SRS工作很好,比如Nginx代理到SRS。

使用WebRTC推流到SRS:WebRTC: Publish

打开页面观看WebRTC流:WebRTC: Play

注意:自签名证书,在空白处输入thisisunsafe(注意没空格)。

Note: 可以打开不同的页面,推拉不同的流,就可以实现视频聊天了。

SRT for Live Streaming

SRS支持SRT推直播流,使用SRT或其他协议观看。

先用Docker启动SRS:

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 10080:10080/udp \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/srt.conf

使用 FFmpeg(点击下载)OBS(点击下载) 推流:

ffmpeg -re -i ./doc/source.flv -c copy -pes_payload_size 0 -f mpegts \
  'srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=publish'

使用 ffplay(点击下载)OBS(点击下载) 播放:

ffplay 'srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request'

Multiple Streams

你可以推拉多路流到SRS,不需要特殊的设置,按照前面的步骤运行SRS后,改变推拉流的URL就可以。比如:

  • rtmp://ip/live/livesteam
  • rtmp://ip/live/livesteamN
  • rtmp://ip/liveN/livestreamN
  • rtmp://ip/whatever/doesnotmatter
  • srt://ip:10080?streamid=#!::r=anyM/streamN,m=publish
  • http://ip:1985/rtc/v1/whip/?app=anyM&stream=streamN
  • http://ip:1985/rtc/v1/whep/?app=anyM&stream=streamN
  • http://ip:8080/anyM/streamN.flv
  • http://ip:8080/anyM/streamN.m3u8
  • https://ip:8080/anyM/streamN.flv
  • https://ip:8080/anyM/streamN.m3u8

Note: 详细请参考RTMP URL