0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为云 Flexus X 实例 docker 部署 srs6 并调优,协议使用 webrtc 与 rtmp

jf_94205927 来源:jf_94205927 作者:jf_94205927 2024-12-31 15:40 次阅读

·华为云最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建 MySQL、Redis、Nginx 等服务的需求,一定不要错过这个机会。赶紧去看看吧!

什么是华为云 Flexus X 实例

·华为云 Flexus X 实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品

·Flexus 云服务器 X 实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。

开始接触华为云 Flexus X 实例

·获取华为云 Flexus X 实例后第一步就是先去华为云上重置服务器密码

wKgZO2dzoAWAS95dAAD1pSqJWDg800.png

wKgZPGdzoAaABkpXAADlkKMdxXg458.png

·重置完毕后用 ssh 工具登录华为云服务器,这里我用的是 finalshell,也可以用其他工具登陆比如 xshell 或者 Putty 都可以

wKgZO2dzoAaAFSPHAAOwTeRrKF0900.png

·登录上去查看硬盘大小,可以看到是 100g 硬盘,硬盘总大小是正常的

root@flexusx-ebe8:~# df -h

Filesystem Size Used Avail Use% Mounted on

tmpfs 1.2G 1.1M 1.2G 1% /run

/dev/vda1 99G 4.2G 90G 5% /

tmpfs 5.7G 0 5.7G 0% /dev/shm

tmpfs 5.0M 0 5.0M 0% /run/lock

tmpfs 1.2G 4.0K 1.2G 1% /run/user/0

·然后输入 ufw status 可以看到默认防火墙是关闭的,因此我们就不需要额外再去配置端口开放相关的配置,只要在华为云安全组配置端口开放就可以了

root@flexusx-ebe8:~# ufw status

Status: inactive

docker 环境的安装

·然后进行 docker 容器的安装,安装最新版本的 docker

·这里因为 docker 现在已经无法直接通过网络安装,所以我们通过离线安装的方式安装 docker 环境

·从官网下载离线包

https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/

wKgZPGdzoAaALoA7AAOKLKu29wk476.png

·如图所示,把离线包传到服务器上,进行安装

dpkg -i *.deb

·查看安装的 docker 版本

root@flexusx-ebe8:/home/docker# docker -v

Docker version 27.1.2, build d01f264

·至此 docker 容器环境安装完毕

srs 相关

什么是 srs

·SRS 的全称为 Simple Realtime Server,是一个开源的(MIT 协议)简单高效的实时视频服务器,支持 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181 等协议。 SRS 媒体服务器和 FFmpeg、OBS、VLC、 WebRTC 等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布 (推流)和订阅(播放)服务器模型。

开始安装 srs

·先配置 CANDIDATE="127.0.0.1",这里配置为外网 ip,也就是华为云提供的弹性公网 ip

·然后用 docker 启动 srs

·使用的版本为 srs6 的 release 版本

docker 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 ossrs/srs:6 ./objs/srs -c conf/https.docker.conf

·输入 docker ps 查看容器运行状态

wKgZO2dzoAeAKdUzAAMfy3u2OmU700.png

修改配置文件以支持 webrtc 与 rtmp

·但是这个版本启动后只支持 webrtc 但还不能与 rtmp 互相转换,这里我们就需要修改一下配置文件,让它也支持与 rtmp 相互转换

·输入 docker ps 获取容器 id

wKgZPGdzoAeAVZ3LAAJHN-0KARY746.png

·然后输入 docker exec -it 30d26105d002 /bin/bash 进入容器,这里的容器 id 换成你刚才获取的 id

root@30d26105d002:/usr/local/srs# ls

conf etc objs usr

root@30d26105d002:/usr/local/srs#

·进入容器后可以看到,默认的文件夹在/usr/local/srs 中,我们进入 conf 文件夹 cd conf

·可以看到有很多配置文件,里面也有我们刚才 docker 容器启动时指定的配置文件 https.docker.conf

wKgZO2dzoAeAYaUtAAPpdxS58VQ934.png

·然后我们输入 exit,退出容器,mkdir -p /usr/local/srs/conf 创建目录,然后把容器内的配置文件 copy 出来,然后进入刚才创建好的文件夹 cd /usr/local/srs/conf然后执行 docker cp 30d26105d002:/usr/local/srs/conf/https.docker.conf https.docker.conf,可以在本地获取我们需要的 https.docker.conf 文件,然后开始修改

wKgZPGdzoAeAR8KiAADS5xRv2WA891.png

vhost __defaultVhost__ {

hls {

enabled on;

}

http_remux {

enabled on;

mount [vhost]/[app]/[stream].flv;

}

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;

}

}

·把两个 off 修改为 on 即可

·配置文件修改好后,我们还需要把文件放进去,这里我们把改好的配置文件映射到容器内部,来达到我们想要的效果

重新部署 srs 容器并启动

·之前部署的 srs 服务还启动着,我们需要先停止服务,重新起一个新的,docker stop 30d26105d002,然后 docker rm 30d26105d002,停止容器,然后删除容器

·重新运行指令,并附上挂载的命令

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 ossrs/srs:6 ./objs/srs -c conf/https.docker.conf

·查看 docker ps 可以看到容器正常运行着,这就代表着 srs 服务已经部署完毕了

配置 Flexus 云服务器 X 实例安全组

·经过上面部署 srs 服务,这时候服务是已经部署完毕了,但是我们还没法通过外网进行访问,还需要对 Flexus 云服务器 X 安全组的配置进行修改

·进入安全组的配置页面

wKgZO2dzoAiABucmAAE2Q0GYqBw109.png

·新建安全组

wKgZPGdzoAiAA0PQAADyoen2rck221.png

wKgZO2dzoAiAGhKtAAC-fXicE9I401.png

wKgZPGdzoAiAHQ2EAACLiGUum-Q480.png

·这里我们开放 1985,1935,8080,8088,1990,8000,这些端口,其中 8000 一定是自定义 udp 协议,其他都是 tcp,这点非常重要

·然后加入新建的安全组

wKgZO2dzoAmAaGwlAAD4ezswvU4426.png

·这样我们的实例的端口也就开放成功了

srs 功能测试

srs 服务器监控

·部署完毕 srs 后,开始对 srs 进行功能测试

·输入网址进行访问,https://ip:8088

wKgZPGdzoAmAXptFAAHU9L7K-N0081.png

·点击 SRS 控制台,连接 srs

wKgZO2dzoAmAFVsLAABxeUosZ3U345.png

·服务器 ip 填弹性公网 ip,然后端口填 1990,点击连接到 SRS,就可以看到服务器的运行状态与 srs 的运行状态,以及负载网速 cpu 磁盘等各种信息

wKgZPGdzoAmARuA8AAD03edW3kY121.png

webrtc 推拉流测试

·输入网址https://ossrs.net/srs.release/releases/app.html,选择实用工具中的 webrtc 播放器

wKgZO2dzoAqAYfyOAAEVG3qQYoE517.png

·推流配置,把端口改为 1990,这是 https 的端口,然后再把地址复制到播流那边,就可以看到摄像头的画面了

·推流上去

wKgZPGdzoAqAc7CxAAEOOfCowZI170.png

·拉流直播

wKgZO2dzoAqAcDW_AAD-yQENnWs706.png

·这里我测了苹果手机去商店下载谷歌浏览器后,谷歌浏览器也可是可以播放的

rtmp 推流

·rtmp 推流,我一般是使用 ffmpeg,指令为 ffmpeg -re -i test.mp4 -vcodec h264 -c copy -f flv rtmp://弹性公网 ip:1935/live/live200,然后同样的可以用 rtc 播放器播放,这就是 rtmp 转 webrtc 的效果

SRS 性能优化

·对 srs 的优化,因为 webrtc 是使用的 udp 缓存,因此 linux 的 udp 缓存参数得增大,不然会因为本地 udp 缓存不够大,连本地上传的缓存都不够,导致掉帧。

# vi /etc/sysctl.conf

net.core.rmem_max=16777216

net.core.rmem_default=16777216

net.core.wmem_max=16777216

net.core.wmem_default=16777216

欢迎大家一起加入华为云!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Docker
    +关注

    关注

    0

    文章

    472

    浏览量

    11864
  • 华为云
    +关注

    关注

    3

    文章

    2566

    浏览量

    17454
收藏 人收藏

    评论

    相关推荐

    华为 Flexus X 实例 docker 部署 Rocket.Chat 构建属于自己的团队通讯协作平台

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-03 09:26 62次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> Rocket.Chat 构建属于自己的团队通讯协作平台

    华为 Flexus X 实例 docker 部署 ERPnext 构建属于自己的企业资源规划系统

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-03 09:24 66次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> ERPnext 构建属于自己的企业资源规划系统

    华为 Flexus X 实例 docker 部署 rancher 构建 k8s 集群

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-02 13:44 34次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> rancher <b class='flag-5'>并</b>构建 k8s 集群

    华为 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    的,由于华为 Flexus X 实例做了很多底层的性能优化,依托创新的大模型支持和智能全域调度,X
    的头像 发表于 01-02 13:43 55次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b><b class='flag-5'>部署</b>安装 Jupyter Notebook,学习 AI,机器学习算法

    华为 FlexusX 实例上实现 Docker 容器的实时监控与可视化分析

    华为Flexus服务器X实例   原生命令 查看正在运行的容器 [root@flexu
    的头像 发表于 01-02 13:42 33次阅读
    在<b class='flag-5'>华为</b><b class='flag-5'>云</b> FlexusX <b class='flag-5'>实例</b>上实现 <b class='flag-5'>Docker</b> 容器的实时监控与可视化分析

    华为 Flexus 服务器 X 实例部署 Note Mark 笔记工具

    前言 华为 Flexus 服务器 X 实例作为专为中小企业和开发者设计的新一代柔性算力
    的头像 发表于 01-02 13:42 27次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b><b class='flag-5'>部署</b> Note Mark 笔记工具

    华为 Flexus 服务器 X 实例Docker 环境下部署 JmalCloud 个人网盘

    前言 华为 Flexus 服务器 X 实例是专为中小企业和开发者设计的新一代柔性算力
    的头像 发表于 01-02 13:41 31次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>之 <b class='flag-5'>Docker</b> 环境下<b class='flag-5'>部署</b> JmalCloud 个人网盘

    华为 Flexus X 实例 docker 部署最新 gitlab 社区版,搭建自己的私人代码仓库

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-02 12:01 43次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b>最新 gitlab 社区版,搭建自己的私人代码仓库

    华为 Flexus X 实例 docker 部署 jdk21 最新版 jenkins 搭建自己的 devops 服务器

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-02 11:58 34次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> jdk21 最新版 jenkins 搭建自己的 devops 服务器

    华为 Flexus 服务器 docker 部署 srs6协议可使用 HLS 协议

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建
    的头像 发表于 01-02 11:58 29次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> <b class='flag-5'>srs6</b>,<b class='flag-5'>协议</b>可使用 HLS <b class='flag-5'>协议</b>

    华为 Flexus 服务器 X 实例的使用教程

    引言 选择一款性价比高、性能强劲的服务器是 IT 技术人员常面临的问题。华为Flexus 服务器
    的头像 发表于 12-30 09:16 148次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>的使用教程

    Flexus 服务器 X 实例:在 Docker 环境下搭建 java 开发环境

    和开发者精心打造。它以卓越的柔性算力,为我们在 Docker 环境下搭建 java 开发环境提供有力支撑。 一、Flexus 服务器 X 实例
    的头像 发表于 12-30 09:07 127次阅读
    <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>:在 <b class='flag-5'>Docker</b> 环境下搭建 java 开发环境

    华为 Flexus X 轻松实现 Redis 一主多从高效部署

    前言         华为 Flexus X 是一款专为高性能计算设计的服务器实例,其搭载的
    的头像 发表于 12-27 13:45 180次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> 轻松实现 Redis 一主多从高效<b class='flag-5'>部署</b>

    华为 Flexus X 实例 docker 部署 mediacms,功能齐全的现代化开源视频和媒体 CMS

    华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建 M
    的头像 发表于 12-25 17:51 157次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> mediacms,功能齐全的现代化开源视频和媒体 CMS

    华为 Flexus 服务器 X 实例 使用流程

    评测与应用体验:高性能与经济性的完美结合引言在计算领域,弹性算力的需求日益增长。传统服务器通常提供固定的规格,导致资源浪费和不匹配的性能问题。华为推出的
    的头像 发表于 12-24 17:28 153次阅读
    <b class='flag-5'>华为</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b> 使用流程