srs 流媒体超详细使用说明

159 阅读4分钟

srs 官方地址

首先说明为什么写这篇文章,因为发现这个流媒体平台确实挺好用的,但是呢它的文档又不是很全。

srs可以在windows和linux下都可以使用。

在windows下使用

下载地址

image.png

目前建议使用5的版本因为5是稳定版本的

下载后安装运行即可

image.png

这里要注意的是双击图标运行的配置文件默认是console.conf

在安装目录下的conf文件中都有官方提供的配置示例:

image.png

官方文档使用的都是srs.conf,那我们也用这个配置来启动,

image.png 在根目录下启动终端输入命令:

objs\srs.exe -c conf\srs.conf

image.png

linux上使用

linux系统上使用官方推荐了两种,一种是docker一键部署,另一种是手动编译

image.png

那肯定是docker方便啊,自己编译的话编译失败是正常的。

但是docker部署的问题也来了 那就是配置文件的问题,官方提供的启动命令,默认也是使用console.conf配置文件的,我们肯定需要用自己的配置文件的

研究之后,我们使用下面命令来运行docker

对docker熟悉的人应该比较清楚。 简单解释一下: -p 1935:1935
-p 1985:1985
-p 8080:8080 \对应配置文件的listen,http_api,http_server的端口分号前面的是宿主机端口,分号后面是容器的端口,意思就是将容器的端口映射到宿主的端口

'/home/buluwasior/Works/nanchuang_intelligent_endpoints/test/zs_test/config/srs.conf:/usr/local/srs/conf/srs.conf'表示的是将docker容器中的/usr/local/srs/conf/srs.conf替换成/home/buluwasior/Works/nanchuang_intelligent_endpoints/test/zs_test/config/srs.conf。home/buluwasior/Works/nanchuang_intelligent_endpoints/test/zs_test/config/srs.conf就是本地的的配置文件路径。

objs/srs -c conf/srs.conf 的意思就是使用srs.conf配置文件

接下来主要介绍一下常见也是我们业务上可能最需要用到的配置

先看下默认的srs.conf配置

image.png

listen:主要就是推流的,默认端口号是1935,使用的时候就直接推流到http://localhost:1935/live/test /live/test这种是可以根据自己的需求取的没有特别要求

http_api:就是专门负责一些接口的,比如获取所有的流啊什么的,官方提供了一些api

image.png

http_server:就是srs自带的一个页面用来监控,我们启动这个srs.conf配置的时候,同时会启动一个srs自带的web页面来帮我管理和监测 image.png

现在我们要看一下我们要配置的的:

  • 安全,给http_api的api接口加权

image.png

image.png 加权后访问就会弹出提示框让你输入用户名和密码才能访问

接下来就是回调

image.png

image.png

需要注意的是on_publish和on_play

回调返回的结果是 0 或者是{"code":0}才能进行下一步on_publish是指推流的时候发生的回调,如果接口返回的不是0或者是{"code":0}的话就srs就会拒绝推流,同理on_play是用户播放的回调如果回调失败用户就无法播放。

还有一个配置也是关于安全方面的

image.png 这里可以配置ip地址,就比如publish推流 默认的是所有的ip都能推流,但是在生产环境中,我们是不希望所有的ip都能推的,要是被扫到这个端口,那么任何人都能向你服务器推流了。

关于部署方面的问题

生产环境部署的遇到的问题一般就是要更换端口号,像1935和8080端口nignx默认的也是这两个端口,所以就会导致端口被占用,从而运行报错,所有运行报错端口错误的话首先就是检查端口号的占用情况

lsof -i :8080

其次默认的端口也不怎么安全

image.png一般只需要更改这两个端口就可以了

使用docker的话只要修改命令 不用修改配置文件:

docker run --rm -it \
    -p 1936:1935 \
    -p 1985:1985 \
    -p 8090:8080 \
    -v /home/buluwasior/Works/nanchuang_intelligent_endpoints/test/zs_test/config/srs.conf:/usr/local/srs/conf/srs.conf \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 \
    objs/srs -c conf/srs.conf

如果是windows和手动编译运行的话就需要改配置文件

改完http_server端口会发现发现一个问题: 打开lcoalhost:8090的页面就会发现,页面的信息都没有了

image.png

不用担心

image.png 这里填的是http_api的ip端口

http_server端口是8080的时候srs官方自动帮我们填了端口1985的,但是当我们修改了http_server端口后就需要自己手动填http_api的ip端口

chrome_3F4tXr8edT.gif 当我们开始推流的时候

image.png这里就能看到流信息了