1 安装和测试srs流媒体服务器
1.1 安装srs流媒体服务器
官网
第⼀步,获取SRS。
官网说明如下:
Git | SRS
将官网上废话删除,直接写关键点
0.我们在linux 上先创建一个文件夹放置SRS的源码,mkdir srs_source3.0
这个名字是随便取的,之所以取3.0,是因为学习的教程中就是用3.0教授的,实际版本已经有5.x了。
1:进入到 srs_source3.0文件夹,然后执行下面的命令。命令的意思下载SRS,
cd srs_source3.0
git clone -b develop https://gitee.com/ossrs/srs.git &&
cd srs && git remote set-url origin https://github.com/ossrs/srs.git
由于上述命令有个 cd srs,因此执行完毕后,会直接进入到srs 目录
2:下载后需要checkout 到你要的branch,可以这样理解,你工作的时候,有可能公司的代码是基于SRS3.0开发的,那么你最好下载一个SRS3.0的版本,那么checkout就是帮你做这件事情的。
我们可以通过 git branch -a 看到SRS对应的版本有哪些。
cd trunk
git branch -a
我们可以看到目前SRS支持您切换的版本有好多,看官网的说明,3.0, 4.0, 5.0 都是稳定的版本。
3.我们切换到remotes/origin/3.0release 这个版本
官网的说明如下:如果是3.0的功能,更新代码后要改变到3.0分支:
注意的是git pull 可能会链接不上网络,因为你不会翻墙,当git pull 链接不上网络的时候,可以直接git checkout 3.0release
git pull && git checkout 3.0release
也可以直接命名您的当前branch 为3.0,实际上也是从remotes/origin/3.0release上获得的
git checkout -b 3.0 remotes/origin/3.0release
我们再次看一下 git branch
注意的是:我们是需要下载到linux 下,而不是windows 下。
DASH 部署 | SRS
第⼆步,编译SRS。
cd trunk
./configure && make
3.0在build 的时候,可能遇到的问题,可以参考如下两个博客
win11下,RTMP流媒体服务器保姆级教程-CSDN博客
https://www.cnblogs.com/6min/p/13960072.html
可以按照上述的方法fix,也可以checkout 到5.0,再 ./configure && make
如果正确make完成,编译的命令完成如下。
如果正确make 完成,则会在trunk 下 生成 objs文件夹
第三步,编写SRS配置⽂件。详细参考RTMP分发
listen 1935; //这个是rtmp 的端口
max_connections 1000; // 这个是支持的同时连接的最大连接数量
#daemon off; // 是否是 守护进程,但是老师说要注释掉,不注释 运行时会有error
#srs_log_tank console; // 这里行也有注释掉,老师说,不注释 运行时会有 error
vhost __defaultVhost__ {
}
目录是在/home/hunandede/srs_source/srs/trunk/conf/rtmp.conf
实际上,对于SRS,所有的配置都在 conf下面,各式各样的都能配置,功能还是很强大
第四步,启动SRS。
./objs/srs -c conf/rtmp.conf
如果我们没有注释这两行,会有如下红色部分的error
#daemon off; // 是否是 守护进程,但是老师说要注释掉,不注释 运行时会有error
#srs_log_tank console; // 这里行也有注释掉,老师说,不注释 运行时会有 error
如果我们将这两行注释了,则会正常运行
我们可以通过sudo lsof -i:1935 查看1935 端口谁再使用
我们可以看到 使用 端口号 为 1935 的进程是那个,可以看到 PID 是 51636
然后,我们可以使用 sudo kill -9 51636 将这个进程杀死
然后再查看谁在占用 1935 端口号,就发现没有人在用了
这时候我们再使用 ./objs/srs -c conf/rtmp.conf 运行srs
运行起来后,提示 you can check SRS by : tail -n 30 -f ./objs/srs.log
看后最后30行
我们直接使用 tail -f ./objs/srs.log,看全部
1.2 测试srs流媒体服务器
第一步要将 ubutun 的网络模式设置为桥接模式
到这里,我们已经启动了SRS 服务器。那么这个服务器
第五步,启动推流编码器。详细参考RTMP分发
ffmpeg -re -i rtmp_test_hd.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.11/live/livestream
推流
ffmpeg -re -i D:/yinshipin/source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.31.251/study/acha
这个意思是,将D:/yinshipin/source.200kbps.768x320.flv 文件,推流给服务器,而服务器的地址是rtmp://192.168.31.251/study/acha
-re 参数 设置 以实时的速度 读取 输入文件 , 如 : 输入视频的长度是 3 分钟 , 那么 使用 3 分钟的时间来处理这个视频 , 不能用最快速度处理完 , 该设置确保了推流的速度与视频播放的速度相匹配 ;
-i input.mp4 参数 设置 输入文件名称是 input.mp4 , 此处也可以是 实时的录屏 ;
/study/acha 这个名字在这里是乱取的,但是这个应该就有规则,或者有一个默认的规则。实际上后面学习到的nginx什么的,确实是有一定的规则的。
后面再学习nginx上配置 rtmp的时候,如下的可以参考
rtmp://39.105.129.233/myapp/ 参数 , rtmp 是 流媒体协议 , 39.105.129.233 是流媒体服务器 , myapp 是在 流媒体服务器 的 nginx.conf 中配置的 rtmp / server / application 配置中配置的应用名称 ;
拉流
ffplay rtmp://192.168.31.251/study/acha