重置完毕后用finalshell登陆华为云服务器,这里也可以用其他工具登陆比如xshell或者Putty都可以
登陆上去df -h
查看硬盘确实是40g,我这里是装完了docker与srs,但可以看到硬盘总大小是正常的40g
[root@hcss-ecs-496b ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 40G 3.0G 35G 8% /
overlay 40G 3.0G 35G 8% /var/lib/docker/overlay2/614c90f78c3233668e229b261f6c9a383207ac7dc501f521b0d6a77b903b4e1d/merged
tmpfs 184M 0 184M 0% /run/user/0
systemctl status firewalld
可以看到默认防火墙是关闭的,因此我们就不需要额外再去配置端口开放相关的配置[root@hcss-ecs-496b ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
###装必须的一些工具
yum install -y yum-utils device-mapper-persistent-data lvm2
###配置yum的源地址
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
###查看docker有哪些版本
yum list docker-ce --showduplicates | sort -r
###默认安装最新版本的docker
yum install -y docker-ce
[root@hcss-ecs-496b ~]# systemctl start docker
[root@hcss-ecs-496b ~]# systemctl enable docker
[root@hcss-ecs-496b ~]# docker -v
Docker version 24.0.6, build ed223bc
CANDIDATE="127.0.0.1"
,这里配置为外网ip,也就是华为云提供的弹性公网ipdocker run -it -d -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 --restart=always --env CANDIDATE=$CANDIDATE -p 8000:8000/udp registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/https.docker.conf
但是这个版本启动后只支持webrtc但还不能与rtmp互相转换,这里我们就需要修改一下配置文件,让它也支持与rtmp相互转换
输入docker ps
获取容器id
然后输入docker exce -it 0e7718538d0d /bin/bash
这里的容器id换成你刚才获取的id
[root@hcss-ecs-496b ~]# docker exec -it 0e7718538d0d /bin/bash
root@0e7718538d0d:/usr/local/srs# ls
conf etc objs usr
进入容器后可以看到,默认的文件夹在/usr/local/srs中,我们进入conf文件夹cd conf
然后我们输入exit
,退出容器,mkdir -p /usr/local/srs/conf
创建目录,然后把容器内的配置文件copy出来,然后进入刚才创建好的文件夹cd /usr/local/srs/conf
然后执行docker cp 0e7718538d0d:/usr/local/srs/conf/https.docker.conf https.docker.conf
,可以在本地获取我们需要的https.docker.conf文件,然后开始修改
rtc {
enabled on;
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
rtmp_to_rtc on;
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
rtc_to_rtmp on;
}
docker stop 0e7718538d0d
,然后docker rm 0e7718538d0d
,停止容器,然后删除容器docker run -it -d -v /usr/local/srs/conf/https.docker.conf:/usr/local/srs/conf/https.docker.conf -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 --restart=always --env CANDIDATE=$CANDIDATE -p 8000:8000/udp registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/https.docker.conf
经过上面部署srs服务,这时候服务是已经部署完毕了,但是我们还没法通过外网进行访问,还需要对云耀云服务器L安全组的配置进行修改
这里我们开放1985,1935,8080,8088,1990,8000,这些端口,其中8000一定是自定义udp协议,其他都是tcp,这点非常重要
这样我们的实例就只受一个安全组保护,我们的端口也就开放成功了
ffmpeg -re -i test.mp4 -vcodec h264 -c copy -f flv rtmp://弹性公网ip:1935/live/live2001
,然后同样的可以用rtc播放器播放,这就是rtmp转webrtc的效果# vi /etc/sysctl.conf
net.core.rmem_max=16777216
net.core.rmem_default=16777216
net.core.wmem_max=16777216
net.core.wmem_default=16777216