首先说明为什么写这篇文章,因为发现这个流媒体平台确实挺好用的,但是呢它的文档又不是很全。
srs可以在windows和linux下都可以使用。
在windows下使用
目前建议使用5的版本因为5是稳定版本的
下载后安装运行即可
这里要注意的是双击图标运行的配置文件默认是console.conf
在安装目录下的conf文件中都有官方提供的配置示例:
官方文档使用的都是srs.conf,那我们也用这个配置来启动,
在根目录下启动终端输入命令:
objs\srs.exe -c conf\srs.conf
linux上使用
linux系统上使用官方推荐了两种,一种是docker一键部署,另一种是手动编译
那肯定是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配置
listen:主要就是推流的,默认端口号是1935,使用的时候就直接推流到http://localhost:1935/live/test /live/test这种是可以根据自己的需求取的没有特别要求
http_api:就是专门负责一些接口的,比如获取所有的流啊什么的,官方提供了一些api
http_server:就是srs自带的一个页面用来监控,我们启动这个srs.conf配置的时候,同时会启动一个srs自带的web页面来帮我管理和监测
现在我们要看一下我们要配置的的:
- 安全,给http_api的api接口加权
加权后访问就会弹出提示框让你输入用户名和密码才能访问
接下来就是回调
需要注意的是on_publish和on_play
回调返回的结果是 0 或者是{"code":0}才能进行下一步on_publish是指推流的时候发生的回调,如果接口返回的不是0或者是{"code":0}的话就srs就会拒绝推流,同理on_play是用户播放的回调如果回调失败用户就无法播放。
还有一个配置也是关于安全方面的
这里可以配置ip地址,就比如publish推流 默认的是所有的ip都能推流,但是在生产环境中,我们是不希望所有的ip都能推的,要是被扫到这个端口,那么任何人都能向你服务器推流了。
关于部署方面的问题
生产环境部署的遇到的问题一般就是要更换端口号,像1935和8080端口nignx默认的也是这两个端口,所以就会导致端口被占用,从而运行报错,所有运行报错端口错误的话首先就是检查端口号的占用情况
lsof -i :8080
其次默认的端口也不怎么安全
一般只需要更改这两个端口就可以了
使用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的页面就会发现,页面的信息都没有了
不用担心
这里填的是http_api的ip端口
http_server端口是8080的时候srs官方自动帮我们填了端口1985的,但是当我们修改了http_server端口后就需要自己手动填http_api的ip端口
当我们开始推流的时候
这里就能看到流信息了