关于后端:利用华为云ECS服务器搭建安防视频监控平台华为云至简致远

【摘要】 这篇文章介绍华为云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进行举报,并提供相干证据,一经查实,本社区将立即删除涉嫌侵权内容。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理