华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs并调优,可使用webrtc与rtmp

news2024/10/7 2:18:33

华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs并调优,可使用webrtc与rtmp

什么是华为云云耀云L实例

  • 云耀云服务器L实例,面向初创企业和开发者打造的全新轻量应用云服务器。提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等。

开始接触华为云云耀云L实例

  • 获取华为云云耀云服务器L实例后第一步就是先去华为云上重置服务器密码
    在这里插入图片描述

在这里插入图片描述

  • 重置完毕后用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)

docker相关

什么是docker

  • Docker 是一个开源的平台,它允许开发者和系统管理员在容器中构建、打包和运行任何应用程序。容器类似于虚拟机,但比传统的虚拟机更为轻量,它们共享同一个操作系统内核,而不是每一个都有自己的操作系统

docker环境的安装

  • 然后进行docker容器的安装,安装最新版本的docker
###装必须的一些工具
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
  • 配置启动docker与docker的开机自启
[root@hcss-ecs-496b ~]# systemctl start docker
[root@hcss-ecs-496b ~]# systemctl enable docker
  • 查看安装的docker版本
[root@hcss-ecs-496b ~]# docker -v
Docker version 24.0.6, build ed223bc

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
  • 用的版本为srs5.0稳定版
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     registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/https.docker.conf

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

  • 但是这个版本启动后只支持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

  • 可以看到有很多配置文件,里面也有我们刚才docker容器启动时指定的配置文件https.docker.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;
    }
  • 把两个off修改为on即可
  • 配置文件修改好后,我们还需要把文件放进去,这里我们把改好的配置文件映射到容器内部,来达到我们想要的效果

重新部署srs容器并启动

  • 之前部署的srs服务还启动着,我们需要先停止服务,重新起一个新的,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
  • 查看docker ps 可以看到容器正常运行着,这就代表着srs服务已经部署完毕了

配置云耀云服务器L实例安全组

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

  • 进入安全组的配置页面
    在这里插入图片描述

  • 点击创建安全组
    在这里插入图片描述

  • 创建安全组
    在这里插入图片描述

  • 配置规则
    在这里插入图片描述

  • 选择添加规则
    在这里插入图片描述

  • 这里我们开放1985,1935,8080,8088,1990,8000,这些端口,其中8000一定是自定义udp协议,其他都是tcp,这点非常重要
    在这里插入图片描述

  • 把我们刚才的华为云实例加入安全组
    在这里插入图片描述

  • 然后把默认的安全组移除实例
    在这里插入图片描述

  • 这样我们的实例就只受一个安全组保护,我们的端口也就开放成功了


srs功能测试

srs服务器监控

  • 部署完毕srs后,那肯定是要对srs进行功能测试
    在这里插入图片描述

  • 点击SRS控制台,再点击连接srs
    在这里插入图片描述
    服务器ip填弹性公网ip,然后端口填1990,点击连接到SRS,就可以看到服务器的运行状态与srs的运行状态,以及负载网速cpu磁盘等各种信息
    在这里插入图片描述

webrtc推拉流测试

  • 点击进入SRS播放器,选择rtc推流,然后再另开一个页面选择rtc播流
  • 推流配置,把端口改为1990,这是https的端口,然后再把地址复制到播流那边,就可以看到摄像头的画面了
    在这里插入图片描述

在这里插入图片描述

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

rtmp推流

  • rtmp推流,我一般是使用ffmpeg,指令为ffmpeg -re -i test.mp4 -vcodec h264 -c copy -f flv rtmp://弹性公网ip:1935/live/live2001,然后同样的可以用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1001805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUUCTF Reverse/[2019红帽杯]childRE

查看信息 分析代码 int __cdecl main(int argc, const char **argv, const char **envp) {__int64 v3; // rax_QWORD *v4; // raxconst CHAR *v5; // r11__int64 v6; // r10int v7; // er9const CHAR *v8; // r10__int64 v9; // rcx__int64 v10; // raxunsigned int v12; // ec…

基于人工智能与边缘计算Aidlux的工业表面缺陷检测

一:训练yolov8得到onnx模型(相关教程有很多) 二:模型转化: 网站: https://aimo.aidlux.com/ 输入试用账号和密码: 账号:AIMOTC001,密码:AIMOTC001 我们选择 TensorFlowLite 一步步完成转化 …

自然语言处理应用(二):自然语言推断

自然语言推断 自然语言推断(Natural Language Inference)是指通过对自然语言文本进行逻辑推理和推断,判断两个句子之间的关系,通常包括三种关系:蕴含(entailment)、矛盾(contradict…

Java通过http请求的方式调用他人的接口

本功能的实现,去不参数于这篇博客,给这位大神点赞 基于Spring Boot使用Java调用http请求的6种方式 文章目录 业务背景第一步,配置url第二步,封装请求体,RequestBody第三步,使用HttpURLConnection调用服务…

机器学习(8)---数据预处理

文章目录 一、数据预处理1.1 数据无量纲化1.2 数据归一化1.3 数据标准化1.4 处理选择 二、缺失值2.1 填补的类和参数2.2 用Pandas和Numpy进行填补 三、处理分类型特征:编码与哑变量3.1 编码3.2 哑变量(独热编码) 一、数据预处理 1.1 数据无量…

【java】【SSM框架系列】【二】SpringMVC

目录 一、SpringMVC简介 1.1 SpringMVC概述 1.2 入门案例 1.3 入门案例工作流程分析 1.4 Conrtoller加载控制与业务BEAN加载控制 1.5 PostMan 二、请求与响应 2.1 请求映射路径 2.2 请求参数 2.2.1 Get 2.2.2 Post 2.2.3 SpringMVC解决post请求中文乱码处理 2.2.4 …

有效回文字符串(Valid palindrome)

题目描述 思路分析 代码实践 java: public class Solutation1 {//定义一个方法,判断是否是有效数字或者字母private static boolean isValid(char c) {//如果不是字母或者数字,那就返回一个flase//这里调用了Character类里面的方法return Character.i…

openwrt开启SSH远程访问与开启WEB远程访问——三种方法

openwrt 开启SSH远程访问 首先,你的电脑用网线连接路由器LAN口是可以访问WEB页面和SSH连接的。 例如,电脑1连接Openwrt路由器,可以进行SSH连接到openwrt 路由器。但是电脑2无法远程访问Openwrt路由器网页和SSH远程连接。 本次操作固件版本…

前端面试题JS篇(5)

如何判断一个对象是空对象 1、使用 JSON 自带的stringify方法判断 let obj{}; console.log(JSON.stringify(obj)"{}"); 2、使用 ES6 新增的方法 Object.keys()来判断 Object.keys(obj).length0 如果 new 一个箭头函数的会怎么样 箭头函数是ES6中的提出来的&…

python main 函数-启动-传递参数 python 打包 exe C# 进程传参

Part1:Python main 传递参数 在Python编程中,我们经常需要从命令行或其他外部环境中获取参数。Python提供了一种简单而灵活的方式来处理这些参数,即通过main函数传参 1.python main 函数-启动-传递参数 test.py import sysdef main():# 获取命令行参…

代码随想录算法训练营day48|打家劫舍 |198.打家劫舍|213.打家劫舍II|337.打家劫舍 III

198.打家劫舍 力扣题目链接 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给…

Pytorch intermediate(三) BiLSTM

Bi-directional Long Short-Term Memory,双向LSTM网络。 有些时候预测可能需要由前面若干输入和后面若干输入共同决定,这样会更加准确。因此提出了双向循环神经网络,网络结构如上图。 构建LSTM模型时,在参数中添加bidirectionalTr…

面试半个月后的一些想法

源于半个月面试经历后的一些想法,刚开始想的是随便写写,没想到居然写了这么多。 找不到目标找不到意义亦或是烦躁的时候,就写写文章吧,把那些困扰你很久的问题铺开来 花时间仔细想想,其实真正让我们生气懊恼&#xff0…

轻松搭建本地知识库的ChatGLM2-6B

近期发现了一个项目,它的前身是ChatGLM,在我之前的博客中有关于ChatGLM的部署过程,本项目在前者基础上进行了优化,可以基于当前主流的LLM模型和庞大的知识库,实现本地部署自己的ChatGPT,并可结合自己的知识…

华为OD机考算法题:分奖金

题目部分 题目分奖金难度难题目说明公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字…

我们这一代人的机会是什么?

大家好,我是苍何,今天作为专业嘉宾参观了 2023 年中国国际智能产业博览会(智博会),是一场以「智汇八方,博采众长」为主题的汇聚全球智能技术和产业创新的盛会,感触颇深,随着中国商业…

在Linux(Centos7)上编译whisper.cpp的详细教程

whisper.cpp的简单介绍: Whisper 是 OpenAI 推出的一个自动语音识别(ASR)系统,whisper.cpp 则是 Whisper 模型的 C/C 移植。whisper.cpp 具有无依赖项、内存使用量低等特点,支持 Mac、Windows、Linux、iOS 和 Android …

免费开源音乐聚合软件-洛雪音乐助手

一、软件介绍 洛雪音乐助手(LX Music),一个基于 Electron Vue 开发的免费开源音乐聚合软件,软件聚合多个音乐平台搜索接口,提供音乐在线播放和下载,而且免费无广告,支持在Windows、Mac OS、L…

CSP 202109-1 数值推导

答题 一眼看上去好像有点复杂&#xff0c;稍微想一下就知道&#xff0c;最大值就是把所有B加起来&#xff0c;最小值就是把不重复的B加起来&#xff0c;用set搞定不重复的元素 #include<iostream> #include<set> using namespace std; int main(){int n,max0,min0…

ARM接口编程—Interrupt(exynos 4412平台)

CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务&#xff0c;若需要则给予其服务&#xff0c;若不需要一段时间后再次询问&#xff0c;周而复始中断 CPU执行程序时若硬件需要其服务&#xff0c;对应的硬件给CPU发送中断信号&#xff0c;CPU接收到中断信号…