Skip to main content
版本:8.0 (Unstable) 🚧🚀

Build

SRS可以从源码编译和启动,但推荐更简单的Docker方式启动。

Live Streaming​

直播是SRS的典型场景,支持推直播流后多种观看方式。

下载源码,推荐用Ubuntu20:

git clone -b develop https://gitee.com/ossrs/srs.git

编译,注意需要切换到srs/trunk目录:

cd srs/trunk
./configure
make

启动服务器:

env SRS_RTMP_LISTEN=1935 SRS_HTTP_API_ENABLED=on SRS_HTTP_SERVER_ENABLED=on \
SRS_VHOST_HTTP_REMUX_ENABLED=on SRS_VHOST_HLS_ENABLED=on \
./objs/srs -e

检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者访问HTTP API,日志会直接输出到控制台:

curl http://localhost:1985/api/v1/versions

使用 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,可以做会议或视频聊天。

下载源码,推荐用Ubuntu20:

git clone -b develop https://gitee.com/ossrs/srs.git

编译,注意需要切换到srs/trunk目录:

cd srs/trunk
./configure
make

启动服务器:

CANDIDATE="192.168.1.10"
env SRS_RTMP_LISTEN=1935 SRS_HTTP_API_ENABLED=on SRS_HTTP_SERVER_ENABLED=on \
SRS_RTC_SERVER_ENABLED=on SRS_RTC_SERVER_CANDIDATE=$CANDIDATE SRS_VHOST_RTC_ENABLED=on \
SRS_VHOST_HTTP_REMUX_ENABLED=on SRS_VHOST_HLS_ENABLED=on \
./objs/srs -e

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

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

检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者访问HTTP API,日志会直接输出到控制台:

curl http://localhost:1985/api/v1/versions

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

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

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

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

WebRTC for Live Streaming​

SRS支持直播转WebRTC,推直播流,使用WebRTC观看。

下载源码,推荐用Ubuntu20:

git clone -b develop https://gitee.com/ossrs/srs.git

编译,注意需要切换到srs/trunk目录:

cd srs/trunk
./configure
make

启动服务器:

CANDIDATE="192.168.1.10"
env SRS_RTMP_LISTEN=1935 SRS_HTTP_API_ENABLED=on SRS_HTTP_SERVER_ENABLED=on \
SRS_RTC_SERVER_ENABLED=on SRS_RTC_SERVER_CANDIDATE=$CANDIDATE SRS_VHOST_RTC_ENABLED=on \
SRS_VHOST_RTC_RTMP_TO_RTC=on SRS_VHOST_RTC_RTC_TO_RTMP=on \
SRS_VHOST_HTTP_REMUX_ENABLED=on SRS_VHOST_HLS_ENABLED=on \
./objs/srs -e

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

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

Note: 注意如果RTMP转WebRTC流播放,也可以使用配置文件rtmp2rtc.conf

使用 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。

下载源码,推荐用Ubuntu20:

git clone -b develop https://gitee.com/ossrs/srs.git

编译,注意需要切换到srs/trunk目录:

cd srs/trunk
./configure
make

启动服务器:

CANDIDATE="192.168.1.10"
env SRS_RTMP_LISTEN=1935 SRS_HTTP_API_ENABLED=on SRS_HTTP_API_HTTPS_ENABLED=on \
SRS_HTTP_SERVER_ENABLED=on SRS_HTTP_SERVER_HTTPS_ENABLED=on \
SRS_RTC_SERVER_ENABLED=on SRS_RTC_SERVER_CANDIDATE=$CANDIDATE SRS_VHOST_RTC_ENABLED=on \
SRS_VHOST_HTTP_REMUX_ENABLED=on \
./objs/srs -e

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: 可以打开不同的页面,推拉不同的流,就可以实现视频聊天了。

Cross Build​

注意一般都可以直接编译,即使是ARM系统也可以直接编译,只有嵌入式板子才需要交叉编译。

若需要交叉编译,请参考ARM和交叉编译。