这几天有个朋友想做专门给自己的会员讲课的直播室,因为某些原因网络上面的那些直播室有内容或者各种各样条件的限制。于是就找到我一起研究怎么弄一个自己的私人直播室。
直播室本身不是很难,很多平台厂商(比如,腾讯,阿里,华为等)都可以提供直播的服务,我们可以免费去申请,然后解析好相应的推流和拉流的域名,再购买相应的流量包就可以利用OBS这些推流软件开始直播了,虽然可行,但是流量费贵啊。而且,某些厂商实在是奸商来的。默认给你按峰值来计费,这种在上网高峰期,可能流量达到好几元/M的高费,不给你按套餐或者0.29元/G的标准来收,这些都是要注意的事情。
前天(2022年3月4号)的时候,我用某牛的直播服务测试了一下,用了9M的流量,然后就收了我12块大洋。幸好我只是测试了一下没有一直开着,要不是的话,一天下来估计流量费要上几千块。后面投诉了之后,他们说要求我去修改计费方式,改为按流量计费。这才明白这个道理。不得已只好申请了一个流量包,结果,推流又要单独收我的费,实在是太黑了。
所以,最后,非常气愤的放弃了,决心研究一下自己搭建一个直播室,这样就不用付流量费了。
好,下面开始正题,前面的废话已经够多了。
第一种方式:linux服务器+nginx+nginx-http-rtmp-module的方式来搭建。但是对比的时候,说这种不太好。用nginx-http-flv-module来搭建兼容性更好一些。不仅具备了nginx-http-rtmp-module所有的功能,而且支持的东西更多。
但是没有一点linux基础的人来说(比如我),真的也是有点难度,主要是因为用不习惯linux这种没有窗口的系统。
尽管我后面也用这种方式搭建成功了,在无数次的反复试验过程中,虽然也搞清楚了这些步骤,但是还是放弃了这种方式。因为我在无意中发现了更加方便的方法。只需要几条命令就轻松搞定,下面就讲给你听。
第二种方式:linux+srs4.0系统来快速搭建。
1.首先准一台云服务器,便宜的就行。装好linux的Centos7系统。装好之后,用ssh工具登陆。输入第一条命令来安装git,如果不安装的话,稍后无法远程到码云上面去下载文件。
yum install git
2.等运行结束之后,再安装一下其它的依赖包,因为后续的自动安装需要用到这些依赖包功能,直接复制下面这命令
yum -y install gcc glibc glibc-devel make nasm pkgconfig lib-devel openssl-devel expat-devel gettext-devel libtool mhash.x86_64 perl-Digest-SHA1.x86_64
3.同样的等运行结束之后,就可以直接安装srs4.0直播系统了。
git clone -b 4.0release https://gitee.com/ossrs/srs.git &&cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf
看到下面这个提示的时候,就说明已经安装好了,并且已经启动了。
4.安装结束后,就可以用 http://localhost:8080/ 来打开直播配置系统了。如果打开没有反应,就检查一下对应的端口是不是开放了,
5.利用OBS推流,开始直播。
安装好OBS推流软件之后,点软件右下角的设置。再选择左边第二项 推流:输入推流地址并加上密钥。保存后就可以点开始推流了。
如果没开的话,我们可以把防火墙直接关掉,再试试,或者打开对应的端口也行。参考结尾的几个常用的linux命令。
5.常用的linux命令。
本篇以CetnOS7为例 防火墙是网络安全的屏障,安装firewall防火墙很简单 yum install firewalld 1、开启服务 systemctl start firewalld.service 2、查看防火墙是否开启 firewall-cmd --state 3、说明防火墙未运行,启动防火墙 systemctl start firewalld.service 4、停止防火墙 systemctl stop firewalld.service 5、设置开机自动启动/停 # 开启开机自动启动服务systemctl enable firewalld.service# 关闭开机自动启动服务systemctl disable firewalld.service 6、查看防火墙状态 systemctl status firewalld 7、重新加载防火墙 firewall-cmd --reload 8、启动某一个服务 # 临时firewall-cmd --zone=public --add-service=https# 永久firewall-cmd --permanent --zone=public --add-service=https 9、开启某个端口 # 永久firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp# 临时firewall-cmd --zone=public --add-port=8080-8081/tcp 10、使用命令加载设置 firewall-cmd --reload 11、查看开启的端口和服务 # 服务空格隔开 例如 https ss firewall-cmd --permanent --zone=public --list-services# 端口空格隔开 例如 8080-8081/tcp 3306/tcp 80/tcpfirewall-cmd --permanent --zone=public --list-ports 修改端口和服务后 /etc/firewalld/zones/public.xml 文件会被跟着修改,所有也可以修改这个文件来配置端口和服务,并通过命令重新加载。 /etc/firewalld/zones/public.xml文件内容如下 12、端口转发 firewall-cmd --query-masquerade # 检查是否允许伪装firewall-cmd --add-masquerade # 允许防火墙打开伪装firewall-cmd --remove-masquerade # 关闭防火墙伪装IP 13、设置转发 如果要设置转发,首先要打开防火墙伪装 # 把1522端口转发到1521端口firewall-cmd --zone=public --add-forward-port=port=1521:proto=tcp:toport=1522# 转发1521端口数据至另一个IP的相同端口上firewall-cmd --zone=public --add-forward-port=port=1521:proto=tcp:toaddr=192.168.31.230# 转发1521端口数据至另一个IP的1521端口上firewall-cmd --zone=public --add-forward-port=port=1521:proto=tcp:toport=1521:toaddr=192.168.31.230 14、查看版本 firewall-cmd --version 15、查看帮助 firewall-cmd --help