【摘要】这篇文章介绍华为云 ECS 服务器的购买、部署、登录、应用的整体流程,在服务器部署 NGINX 服务,搭建一个安防视频监控平台,本地开发了配套的 RTMP 流媒体推流客户端、RTMP 播放器,实现整体成果演示。RTMP 流媒体推流客户端就是用来模仿摄像头硬件设施,RTMP 流媒体推流客户端在笔记本电脑上运行,将笔记本电脑上的摄像头音视频流实时推流到华为云服务器转存。
1. 前言
利用华为云 ECS 服务器搭建安防视频监控平台【华为云至简致远】
DS 小龙哥 发表于 2022/06/11 20:34:36 275 0 0【摘要】这篇文章介绍华为云 ECS 服务器的购买、部署、登录、应用的整体流程,在服务器部署 NGINX 服务,搭建一个安防视频监控平台,本地开发了配套的 RTMP 流媒体推流客户端、RTMP 播放器,实现整体成果演示。RTMP 流媒体推流客户端就是用来模仿摄像头硬件设施,RTMP 流媒体推流客户端在笔记本电脑上运行,将笔记本电脑上的摄像头音视频流实时推流到华为云服务器转存。1. 前言华为云的弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮忙用户打造牢靠、平安、灵便、高效的应用环境,确保服务长久稳固运行,晋升运维效率。弹性云服务器从创建到动员只需几分钟,客户将具备云服务器的超级管理员权限,轻松安排各种使用。这篇文章介绍华为云 ECS 服务器的购买、部署、登录、应用的整体流程,在服务器部署 NGINX 服务,搭建一个安防视频监控平台,本地开发了配套的 RTMP 流媒体推流客户端、RTMP 播放器,实现整体成果演示。RTMP 流媒体推流客户端就是用来模仿摄像头硬件设施,RTMP 流媒体推流客户端在笔记本电脑上运行,将笔记本电脑上的摄像头音视频流实时推流到华为云服务器转存。
2. 购买云服务器
如果之前没有应用过华为云的 ECS 服务器,能够先申请试用 1 个月,理解服务器的根本应用而后再购买,不得不说提供这个试用服务还是十分不错。产品试用支付地址: https://activity.huaweicloud….
每天 9:30 开抢,每天限量 100 份,这个页面不仅有云服务器能够支付试用,还有云数据库、沙盒等其余产品。
我这里支付了 2 核 4G S6 云服务器,这个服务器是配套华为自研 25GE 智能高速网卡,实用于网站和 Web 利用等中轻载企业应用。
抉择配置的时候发现 S6 规格的曾经没有了,来晚了。
S6 规格没有了,就抉择了 S3,2 核,4GB 的配置结算。
页面向下翻,上面抉择零碎预装的零碎,我这里抉择 ubuntu 20.04,装置 NGINX,来搭建流媒体服务器。
页面持续下翻,设置云服务器名称,设置零碎的 root 明码。
接着就能够持续去领取了。
购买后期待一段时间,系统资源就即可调配实现。
3. 登录云服务器
云服务器的治理控制台从这里进入: https://www.huaweicloud.com/p… 在官网主页,点击产品,找到计算选项,就能够看到弹性云服务器 ECS,点击进去就能够看到治理控制台的选项。
在弹性云服务器的选项页面能够看到方才购买的云服务器,如果点击进去提醒该区域没有可用的服务器,阐明区域抉择的不对,在上面截图红色框框的地位能够看到可用的区域切换按钮,切换之后就行了。
点击服务器左边的更多,能够对服务器重装系统、切换操作系统、关机、开机、重启、重置明码等操作。
接下来先点击登录,理解一下登录的流程,看看零碎进去的成果。
云服务器反对 SSH 协定近程登录,能够在浏览器上间接应用 CloudShell 形式或者 VNC 形式登录,如果自身你本人也是应用 Linux 零碎,能够在 Linux 零碎里通过 ssh 命令间接登录,如果是在 windows 下能够应用 SecureCRT 登录。
其余登录形式。
最不便的登录形式,间接在控制台应用 VNC 在浏览器里登录,点击立刻登录。
依据提醒输出用户名,明码后,按下回车键即可登录。用户名间接输出 root,明码就是方才配置云服务器时,填入的 root 明码。留神: Linux 下输出明码默认都是暗藏的,也就是在键盘上输出密码界面上是不会有反馈的,本人依照正确的明码输出即可。
用户名、明码输出正确后,登录胜利。能够点击全屏模式,更好的操作。
4. 应用 CloudShell 登录云服务器
在页面上间接点击 CloudShell 登录按钮。CloudShell 形式比 VNC 形式不便、晦涩多了,也反对命令的复制粘贴。
输出明码点击连贯。
登录胜利进入终端。
5. 应用 SecureCRT 登录云服务器
下面演示了两种登录形式,都是间接在浏览器里登录,这种两种形式比拟来看,VNC 形式效率最低,CloudShell 相对来说要不便很多。个别我本人失常开发时,都是应用第三方工具来登录的,如果自身本人开发环境的电脑就是 Linux,MAC 等,能够间接应用 ssh 命令登录,这种形式操作晦涩不便。如果在 windows 下,能够应用第三方软件登录。我当初应用的零碎是 win10,在 windows 零碎下有很多近程终端软件反对 SSH 登录到 Linux 云服务器,我以后采纳的应用 SecureCRT 6.5 来作为登录终端,登录云服务器。留神: SecureCRT 6.5 登录高版本 Linux 零碎会呈现 Key exchange failed 问题,导致登录失败,比方: 登录 ubuntu 20.04 零碎。呈现这种问题须要对系统 ssh 配置文件进行增加配置。增加配置的流程: 命令行输出:
vim /etc/ssh/sshd_config
在文件最初增加:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
保留退出。
重启 ssh 服务
service ssh restart
如果不想这么麻烦的去批改配置文件,那么最简略的方法就是: 切换操作系统,换一个低版本的,比方:ubuntu18.04 即可。在云服务器的控制台,找到本人的服务器,而后抉择切换操作系统。
依据界面上的疏导流程,切换即可。更换新的零碎须要 1~4 分钟工夫,略微期待一下即可。
如果要应用近程 SSH 协定形式登录云服务器,须要具备以下几个前提条件。[1]弹性云服务器状态为“运行中”。
[2]弹性云服务器曾经绑定弹性公网 IP,绑定形式请参见绑定弹性公网 IP。
[3]所在平安组入方向已凋谢 22 端口,配置形式请参见配置平安组规定。
[4]应用的登录工具(如 PuTTY,SecureCRT`)与待登录的弹性云服务器之间网络连通。例如,默认的 22 端口没有被防火墙屏蔽。
然而这些配置不必放心,在购买服务器后,依据疏导一套走完,下面的这些配置都曾经默认配置好了,不必本人再去独自配置。零碎切换胜利后,关上 SecureCRT 6.5 软件,进行登录。SecureCRT 6.5 整体而言还是挺好用的。如果本人没有SecureCRT,本人下载一个即可。当然,不肯定非要应用 SecureCRT`,其余还有很多 SSH 近程登录工具,喜爱哪个应用哪个。上面介绍
SecureCRT ` 登录的流程。
抉择新建会话。
抉择 SSH2 协定。
主机名就填服务器的公网 IP 地址,端口号默认是 22,用户名填 root。
本人云服务器的公网 IP 地址,在控制台能够看到。
软件点击下一步之后,能够填充形容信息,备注这个链接是干什么的。
抉择方才新建的协定端口点击连贯。
云服务器连贯上之后,软件界面会弹出对话框填充用户名、明码。
登录胜利的成果如下。
软件能够配置一些选项,让界面合乎 Linux 终端配色,能够批改字体大小、字体编码等等。
配置后的成果。
6. 装置 NFS 服务器
为了不便向服务器上拷贝文件,能够采纳 NFS 服务器、或者 FTP 服务器 这些形式。我本地有一台 ubuntu 18.04 零碎笔记本,我这里采纳 NFS 形式拷贝文件下来。(1)装置 NFS 服务器 root@ecs-348470:~# sudo apt-get install nfs-kernel-server
(2)创立一个 work 目录不便当做共享目录应用 root@ecs-348470:~# mkdir work
(3)编写 NFS 配置文件 NFS 服务的配置文件为 /etc/exports,如果零碎没有默认值,这个文件就不肯定会存在,能够应用 vim 手动建设,而后在文件外面写入配置内容。/home/work *(rw,no_root_squash,sync,no_subtree_check,insecure)
配置文件里参数的含意:
(4)NFS 服务器相干指令 /etc/init.d/nfs-kernel-server start #启动 NFS 服务
ufw disable #敞开防火墙
/etc/init.d/nfs-kernel-server restart #重启 NFS 服务
exportfs -arv #共享门路失效
(5)本地客户机挂载服务器的目录 wbyq@wbyq:~$ sudo mount -t nfs -o nolock 122.112.212.171:/home/work /home/wbyq/mnt/
(6)设置华为云服务器的安全策略须要把华为云服务器的端口号凋谢进去,不然其余客户端是无法访问服务器的。我这里比拟粗犷间接,间接将所有端口号,所有 IP 地址都凋谢进去了。
(7)本地客户机挂载服务器测试 挂载指令:sudo mount -t nfs -o nolock 122.112.212.171:/home/work /home/wbyq/mnt/
7. 装置 NGINX(配置 RTMP 服务)
(1)下载编译时须要依赖的一些工具 root@ecs-348470:~# sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
(2)下载 NGINX 编译须要的软件包 root@ecs-348470:~# mkdir nginx
root@ecs-348470:~# cd nginx/
root@ecs-348470:~# wget http://nginx.org/download/ngi…
root@ecs-348470:~# wget http://zlib.net/zlib-1.2.11.t…
root@ecs-348470:~# wget https://ftp.pcre.org/pub/pcre…
root@ecs-348470:~# wget https://www.openssl.org/sourc…
root@ecs-348470:~# wget https://github.com/arut/nginx…
(3)下载后的文件全副解压 root@ecs-348470:~# tar xvf openssl-1.0.2k.tar.gz
root@ecs-348470:~# tar xvf nginx-rtmp-module-master.tar.gz
root@ecs-348470:~# tar xvf nginx-1.8.1.tar.gz
root@ecs-348470:~# tar xvf pcre-8.40.tar.gz
root@ecs-348470:~# tar xvf zlib-1.2.11.tar.gz
(4)配置 NGINX 源码,生成 Makefile 文件 root@ecs-348470:~# cd nginx-1.8.1/
root@ecs-348470:~# ./configure –prefix=/usr/local/nginx –with-debug –with-pcre=../pcre-8.40 –with-zlib=../zlib-1.2.11 –with-openssl=../openssl-1.0.2k –add-module=../nginx-rtmp-module-master
执行完上一步之后,关上 objs/Makefile 文件,找到 -Werror 选项并删除。(5)编译并装置 NGINX root@ecs-348470:~/nginx/nginx-1.8.1# make && make install
装置之后 NGINX 的配置文件寄存门路:/usr/local/nginx/nginx:主程序
(6)查看 NGINX 的版本号 root@ecs-348470:/usr/local/nginx/sbin# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.8.1
(5)在配置文件里退出 RTMP 服务器的配置 root@ecs-348470:~# vim /usr/local/nginx/conf/nginx.conf
关上文件后,在文件最初退出以下配置:
rtmp {
server {
listen 8888;
application live {
live on;
record all;
record_unique on;
record_path "./video"; #视频缓存的门路
record_suffix -%Y-%m-%d-%H_%M_%S.flv;
}
}
}
这样配置之后,服务器收到 RTMP 流会在 NGINX 的当前目录下,创立一个 video 目录用来缓存视频。客户端向服务器推流之后,服务器就会缓存视频到设置的目录。(5)查看配置文件是否正确 root@ecs-348470:/usr/local/nginx/sbin# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
(6)NGINX 罕用的 3 个命令 sudo service nginx start
sudo service nginx stop
sudo service nginx restart
(7)启动 NGINX 服务器 sudo service nginx start
8. 摄像头推流音视频到服务器
为了模仿摄像头实时监控推流,我这应用 QT+FFMPEG 编写了一个小软件,在 windows 下运行,推流本地笔记本电脑的数据到服务器。软件运行之后,将本地音频、视频编码之后通过 RTMP 协定推流到 NGINX 服务器。软件运行成果:
推流工具运行过程中成果。
9. 编写本地 RTMP 流播放器
在下面第 8 大节,通过推流客户端模仿摄像头,曾经将本地的摄像头数据实时推流到服务器了,那么还差一个播放器,为了不便可能在任何有网的中央实时查看摄像头的音频和图像,还须要编写一个 RTMP 流媒体播放器。我这里的播放器内核是采纳 libvlc 开发的,应用 QT 作为 GUI 框架,开发了一个流媒体播放器,能够实时拉取服务器上的流数据,并且还反对回放。因为服务器上的 NGINX 配置了主动保留的参数,能够将推上去的流按时间段保留下来。输出服务器地址之后就能够拉取流进行播放。
点击获取回放列表,能够查看服务器上保留的历史视频回放播放。
10. 总结
相较于传统服务器,云服务器具备多方面的劣势,利用弹性计算劣势,帮忙企业实现云上业务的部署与利用,,能够依据本身须要自定义服务器配置,灵便地抉择设定所需的内存、CPU、带宽等配置,整体上减小了企业本人搭建服务器开发的老本,还省了服务器的一大堆维护费用。
【华为云至简致远】有奖征文炽热进行中:https://bbs.huaweicloud.com/b…
【版权申明】本文为华为云社区用户原创内容,转载时必须标注文章的起源(华为云社区),文章链接,文章作者等根本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌剽窃的内容,欢送发送邮件至:cloudbbs@huaweicloud.com 进行举报,并提供相干证据,一经查实,本社区将立即删除涉嫌侵权内容。