• [其他问题] hyper tuner检测不到进程
    请问一下大家ps-a能查看到进程,但是性能检测工具一直检测不到进程是什么问题呢?
  • [课程学习] 基于MindX SDK的中文语音识别推理实验--swjtu寒假特别版
    关于 基于MindX SDK的中文语音识别推理实验 这个实验,首先是完成ECS环境搭建,再次推荐大家去看昇腾官方视频,里面有详细的步骤,我看的是B站的视频,在此把视频链接放出来,大家可以去看一下【【昇腾小姐姐教你趣味实验】昇腾工业质检应用实践】 https://www.bilibili.com/video/BV1ir4y1V7aK/?p=11&share_source=copy_web&vd_source=df5a85a5c10967c9daaf8538d21c2219 需要看P11-P13三节视频,视频中有一个mxvision的安装,在本实验也是必须的,在此方式百度云链接,大家可以自行下载,官方也有3.0版本,我的是2.0.3版本 链接:https://pan.baidu.com/s/12o6lZmhJ60NAYgKk8Mg6-A 提取码:4e3y注:由于老师发的文档里面并没有相应的安装代码,所以我自己准备了一份在附件里面,大家可以自行下载,但是一定要跟着视频做,以免出错。在环境安装好之后,根据老师的文档里面做就可以,在mobaxterm里面将文件解压和部分环境搭建完成 在此也放上官方视频 【【昇腾小姐姐教你趣味实验】基于MindX SDK的中文语音识别推理实验】 https://www.bilibili.com/video/BV1Xe4y1f7tU/?share_source=copy_web&vd_source=df5a85a5c10967c9daaf8538d21c2219 跟着视频里面做就可以。接下来是针对大家可能遇到的问题(其实是我遇到的问题)提供一些解决方案,亲测有效首先是可能遇到的No module named xxx 的问题(1)如果是MxpiDataType_pb2、或者_StreamManagerApi.so,那么就是环境变量问题,你需要修改环境变量,也就是/root/AutoSpeechRecognition/目录下的rush.sh文件中的PYTHONPATH,在此附上截图,但是mxvision2.0.3版本貌似不需要修改直接可以调用,mxvision3.0版本修改后有用。(2)如果是_bz2、_lzma等,可以采用类似下列的代码修改,在此附上我查到的帖子链接http://t.csdn.cn/a7Hn8cd /usr/local/python3.7.5/lib/python3.7/lib-dynload sudo cp /usr/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.so ./sudo mv _lzma.cpython-36m-x86_64-linux-gnu.so _lzma.cpython-37m-x86_64-linux-gnu.so还有cannot load library ‘xxx.so‘的问题,这个直接用下面代码就行,但是建议是放在/usr/local/python3.7.5/lib/python3.7/lib-dynload目录下面,你可以先cd一手,切换到该目录apt install libsndfile1以上便是我对这个实验的一些见解,希望能帮到大家。祝大家生活愉快!
  • [互动交流] 容器中如何禁止下载上传功能
    各位老师,请问 我现在在服务器的docker环境里,起了容器(centos或者ubuntu) 让用户进行作为client机器访问集群,如何禁止用户在此容器里 的下载或者上传操作呢?我能想到的是 容器里 禁止安装rzsz等工具,请问有没有通过 端口号直接禁止相关操作的行为,或者其他方式?
  • [技术干货] 基于STM32+华为云IoT设计的智慧路灯(从0开始上云搭建系统框架)
    一、前言近年来,物联网引领了继计算机、互联网之后世界信息产业的第三次发展浪潮,且逐步在各行各业得到更广泛的应用。物联网的定义是万物互联,表示任何设备都可以连在一起,进行数据交互。那么物联网到底是什么?设备如何上云?云平台又是什么?很多不是物联网专业的,不是搞嵌入式的或者是刚学习物联网的都不太清楚,虽然概念性的东西百度一大堆,书上也是各种专业词汇,如果无法将这些概念性的东西实体化,最终还是理解不了整个流程,云里雾里。那么接下来以华为云IOT平台为例,从最基础开始一步一步的完成一个智慧路灯的项目开发,让大家对物联网有个详细的理解。本次讲解的智慧路灯是一个真实产品模型,去年我在老家的庭院就安装了一个太阳能智慧路灯,使用了一年多了感觉非常不错。先介绍下这个款太阳能智能路灯支持的功能:(1)支持太阳能充电,也支持接市电。(2)路灯本身支持独立联网,也支持连接WIFI(如果是家里庭院使用,一般可以接自己家里的WIFI,如果有的话)。(3)路灯上有球形监控摄像头,能监控四周。(4)在厂家提供的手机APP上可以远程查看路灯的电量,充电状态,充电强度,环境光强度,环境温度湿度,查看摄像头画面,远程开关灯、拍照等等。 通过湿度的检测,检测到下雨时手机上还会进行弹窗提示。那么本篇文章的目的就很明确了:利用华为云IOT作为云平台,自己购买硬件实现这款路灯的所有功能(不能说完全一样,但是基本功能都要实现出来)。需要使用的到华为云的产品如下:(1)OBS数据存储(存储上传的数据)(2) IoTDA设备接(设备上云)(3)ECS云服务器(搭建流媒体服务器,接收摄像头的RTMP流)(4)数字化大屏--数据可视化DLV二、整体设计思路在进行正式设计开发之前,先把整体的思路捋一捋。2.1 开发流程下面列出本次开发流程:(1). 注册华为云账号,在物联网模块里,创建产品,创建物模型,创建设备。(2). 采用MQTT客户端,以软件来模拟设备的方式登录华为云物联网平台,实现路灯数据的模拟上传。(3). 开发底层硬件代码,完成设备上云的对接。(4). 购买ECS云服务器,搭建NGINX服务器,作为流媒体服务器接收摄像头上传的数据流。(5). 创建OBS数据存储桶,完成数据存储。(6). 创建数据可视化DLV大屏,显示设备上报的数据。2.2 硬件介绍首先说明: 因为本项目并不是商业项目,目的是以智慧路灯产品的功能开发过程来演示一款物联网产品的开发流程。 所以在硬件选型上不考虑成本,能用模块就采用模块实现。本次设计的智慧路灯硬件上分为3个部分:(1)路灯的太阳能充电部分 : 直接采用现成的充电模块 + 锂电池 + 太阳能板。(2)路灯的传感器数据采集部分 : 单片机采用STM32(小熊派) + NBIOT-BC20 + 温湿度传感器DHT11 + 光敏传感器BH1750(3)摄像头监控部分: 采用树莓派4B + 一个USB摄像头来实现(联网就是直接将网线口插家里的路由器),功能上:利用ffmpeg采集声卡声音、摄像头数据编码RTMP格式后上传到华为云ECS服务器,NGINX接收到数据再转成为HLS格式(HTTP协议),再通过数据可视化DLV大屏的HLS播放器控件进行显示播放。2.3 物理网知识点科普在完成实际操作之前,先提前了解一些知识。本次完成的智慧路灯就是一个典型的物联网产品。 物联网主要体现就是万物互联。 这里面的万物一般说的就是设备,比如:家里的冰箱,电风扇,窗帘,或者是外面马路上的行驶的汽车,商店前台的共享充电宝,工厂里运行的机器这些都是设备。互联表示设备之间可以互相连接,进行数据交换。 设备互联之后,数据就能得到共享,不再是单机设备,可以进行联动操作,能发掘出设备的更多价值。物联网里的设备是如何实现互联的?在物联网里要完成设备连接的方式有很多种,比如:GSM(2-3-4-5G,)、NB-IoT,LORA、WIFI,Zigbee、蓝牙、有线方式(485,CAN,RS232,USB)都可以完成设备连接通信。说到这个设备互联,就有人发言了,怎么没看到MQTT,COAP,HTTP这些协议呀? 从事物联网的人员一定有听过NB-IoT,wifi,蓝牙,zigbee,MQTT,COAP这些词。 那么这些协议直接的关系一定是要搞清楚。上面提到的连接方式:WIFI,Zigbee、蓝牙 这些都是物理层的协议,这些都需要硬件芯片模组支持。 而刚才说的MQTT,COAP,HTTP都是应用层协议,也就是纯软件协议,一般是用来对接服务器,对接云平台的。 所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层应用协议。问题: 设备如何上云?设备要上云就需要遵循云平台,云服务器的协议才能进行通信,比如:MQTT协议、HTTP协议等等。 如何才能支持MQTT协议,HTTP协议?可以采用WIFI,GSM、NBIOT模块进行协议转换,通过MQTT协议连接云平台。问题:设备上云后有什么直观的体验?这个可以从生活中的几个实际场景进行体验:(1)智能摄像头:摄像头上云之后,可以在任何地方打开手机查看家里的监控,实时防盗监控,出远门也安心了。(2)空调、窗户、窗帘设备上云:上云之后,在手机里远程控制家里的设备开关。 在炎热的夏天,下班时可以在手机上控制打开空调制冷、关闭窗户,拉上窗帘。 增强体验感。(3)智能鱼缸上云: 可以远程给鱼儿投喂食物,了解鱼缸里水质情况,含氧量,换水等操作,还能通过摄像头查看鱼缸里的情况,出差都能了解家里的情况。(4)智能花盆上云: 手机上随时了解土壤含水量、周围光照度,空间湿度情况,还能通过手机控制水泵进行浇水。(5)智能井盖上云:城市的井盖下都是污水管道,在井盖上可以安装各种检测传感器,上云之后,城市环境管理局可以详细了解到城市每个井盖的详细数据,在地图上可以看到每个井盖的位置。 通过井盖传感器检测可以了解井盖下的有害气体,易燃气体浓度。下暴雨之后,还可以了解那里管道拥堵,可以第一时间排险。还有很多很多的案例..............三、云平台产品、设备、物模型创建3.1 华为云IOT平台介绍华为云物联网平台(IoT设备接入云服务)提供海量设备的接入和管理能力,可以将IoT设备联接到华为云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品。使用物联网平台建造一个完整的物联网解决方案主要包括3部分:物联网平台,业务应用和设备。1,物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户快速构建各种物联网业务应用。2,设备可以通过固网,2G / 3G / 4G / 5G,NB-IoT,Wifi等多种网络接入物联网平台,并使用LWM2M / CoAP或MQTT协议将业务数据上报到平台,平台也可以将控制命令下发给设备。3,业务应用通过调用物联网平台提供的API,实现设备数据采集,命令下发,设备管理等业务场景。物联网平台支持终端设备直接连接,也可以通过工业网关或家庭网关连接;支持多网络接入,多协议接入,系列化代理连接,解决设备接入复杂的微小和碎片化难题;也提供了更丰富完备的设备管理能力,简化了海量设备管理复杂性,减少了人工操作,提升了管理效率。设备+物联网平台+应用事是最为通用的场景,设备将数据上报到IoT平台,IoT平台对设备进行管理,同时针对不同的事件类型,转换数据推送到用户应用,同时应用可以将命令下发到IoT平台,平台可以缓存/实时下发命令给设备。3.2 创建产品从这里就开始手把手操作了,完成云平台产品创建,设备创建,物模型构建,设备上云测试等等。(1) 登录华为云官网没注册账号就先注册(注册了就忽略,直接登录官网地址: https://www.huaweicloud.com/在产品目录下,找到物联网,再找到IOTDA(2)ioTDA页面链接: http://https://www.huaweicloud.com/product/iothub.html(3)查看平台服务器接入地址这个信息对接下来连接华为云物联网平台很重要: 端口: 1883  域名: a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com  IP地址: 121.36.42.100(4)创建产品先云平台先创建一个自己的产品模型。根据自己的产品名字,类型填充: 协议选择MQTT协议,数据格式选择JSON格式。下面的设备类型选择自定义类型。点击确认创建成功。(5)创建自定义模型-添加服务ID产品创建之后,在产品选项页面,点击自己的产品,进入产品详情页面。产品模型用于描述设备具备的能力和特性,平台提供多种方式定义产品模型; 如果没有定义产品模型,设备上报数据时平台仅直接转发,不做解析。点击下面的自定义模型按钮,开始创建模型。设置服务ID:(6)添加属性每个设备都有自己的属性。通俗来讲: 属性字段存放设备上传的数据类型。 比如:根据 温度传感器、湿度传感器、光敏传感器采集的数据类型,在设备模型里就需要创建对应的属性字段来存放这些数据类型。接下来就创建属性:【1】温度字段【2】湿度字段【3】光照强度字段【4】路灯的电量【5】路灯的手动开关按钮路灯除了自动模式下可以自动开关灯外,还能能支持云端手动开关控制。 这个按钮字段的访问权限也给成可读可写。(后续的应用侧开发,可能需要修改这个字段)属性字段添加完毕:(7)总结到这里属性字段已经添加成功。 这创建自定义模型这一步里面设置的服务ID和属性字段的名字比较重要。接下来的设备向服务器上传数据时,规定的JSON格式中就需要填服务ID和对应的属性名称。这样服务器收到数据之后,才知道这个数据是给设备的哪一个字段赋值。下面做个总结,方便后续直接拿来使用。 服务ID:         LED        属性名称  数据类型   访问方式    描述  Button     int(整型)   可读,可写 路灯的手动开关按钮  humidity int(整型)   可读 环境湿度  temperature int(整型)   可读 环境温度  light int(整型)    可读 环境光强度  Power int(整型)   可读 路灯剩余电量    3.3 创建设备前面一步创建的产品模型是一个抽象的框架,在产品下面的设备才对应具体的硬件。 所以,一个产品下可以创建关联很多的设备。(1)注册设备在对应的产品模型下添加设备。创建完成后,保存设备的ID和设备密匙。我的设备密匙如下: {      "device_id": "634e3e423ec34a6d03c84bfb_1126626497",      "secret": "1126626497"  }这个密匙信息就是设备的身份信息,接下来的MQTT协议交互里,就需要通过这个设备身份信息生成MQTT登录参数,也就是MQTT三元组。(2)设备创建成功根据前面的操作,一个新设备就创建好了。目前还没有登录,这里就还是处于未激活状态。(3)生成MQTT登录三元组拿到设备的密匙信息,利用华为云提供的MQTT连接鉴权信息生成工具,生成MQTT鉴权三元组。在线工具的地址:https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/根据界面提示,填入设备密匙,点击Generate,生成信息。得到的信息如下: ClientId    634e3e423ec34a6d03c84bfb_1126626497_0_0_2022101806  Username    634e3e423ec34a6d03c84bfb_1126626497  Password    67ffb4d7ddc66e6292276aefe5bcc3df0448a3883b0438aaa073113185d7ec20接下来就可以利用这3个参数连接设备设备了。(4)利用MQTT客户端模拟设备登录(激活设备)下面使用的这个MQTT客户端是我自己开发的,主要是方便大家使用连接华为云进行测试。在文章最后会附上工具的下载地址。打开MQTT客户端之后,根据界面提示,填入对应的参数: 这些参数都在前面介绍了的。填好之后,点击登录。登录成功,软件会收到云平台的回应:接下来打开云平台的设备页面,查看状态: 目前设备已经在线了 。目前设备已经激活,还没有上传数据。(5)MQTT主题格式说明设备登录激活之后,接下来的步骤就是上传数据到云平台。MQTT里要了解2个操作操作:订阅主题、发布主题。在产品页面,可以看到主题的格式,以及对于主题的用途:【1】订阅主题对于设备而言,一般会订阅平台下发消息给设备 这个主题。设备想接收平台下发的消息,就需要订阅平台下发消息给设备 的主题,订阅后,平台下发消息给设备,设备就会收到消息。主题的格式如下: $oc/devices/{device_id}/sys/messages/down        根据当前的路灯设备,最终的格式:  $oc/devices/634e3e423ec34a6d03c84bfb_1126626497/sys/messages/down【2】发布主题对于设备,发布主题,也就显示向云平台上传数据。发布的主题格式如下: $oc/devices/{device_id}/sys/properties/report  ​  根据当前的路灯设备,最终的格式:  $oc/devices/634e3e423ec34a6d03c84bfb_1126626497/sys/properties/report发布主题时,需要上传数据,这个数据格式是JSON格式。上传的JSON数据格式如下: {    "services": [     {        "service_id": <填服务ID>,        "properties": {          "<填属性名称1>": <填属性值>,          "<填属性名称2>": <填属性值>,          ..........       }     }   ]  }根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。根据这个格式,组合一下智慧路灯一次上传的数据: {"services": [{"service_id": "LED","properties":{"temperature":24,"humidity":60,"light":1200,"Power":80}}]}(6)利用MQTT客户端上传数据到云平台根据得到的主题格式,和数据格式,填入到MQTT客户端软件里发送。发送成功后,打开云平台页面可以查看到上传的数据。到此,一个物联网产品的模型已经完成。四、构建数据可视化服务(DLV)为了方便显示数据可视化服务器,可以利用华为云的数据可视化服务(DLV)来进行展示数据。华为云物联网平台提供了数据转发服务,对于设备上报的数据,可以选择让平台将设备上报数据推送给应用服务器,由应用服务器进行保存;还可以选择让平台将设备上报数据转发给对象存储服务(OBS),由OBS进行存储,进行永久保存。 数据可视化服务(DLV)可以从OBS文件读取数据呈现为可视化报表,实现数据的可视化显示。接下来要完成的任务是: 将路灯上报的数据转发到OBS存储桶里,然后可视化服务DLV再读取数据进行显示。4.1 创建OSB存储桶地址: https://www.huaweicloud.com/product/obs.html对象存储服务(Object Storage Service,OBS)是一个基于对象的存储服务,提供了海量、安全、高可靠、低成本的数据存储能力。(1)选择管理控制台(2)创建桶填充桶信息: 我这里选择的是 华北-北京一我这里因为要长期使用,这里选择1年的购买权。(3)创建成功4.2 配置数据转发规则(1)创建规则选择左侧导航栏的规则>数据转发,单击右上角的创建规则。填充规则转发的信息:参数名参数说明规则名称自定义,如: led_obs。规则描述自定义,如数据转发至OBS服务。数据来源选择“设备属性”。触发事件自动匹配“设备属性上报”。资源空间和上一步创建的产品所在的资源空间保持一致。点击继续设置:(2)设置转发目标单击添加,设置转发目标。这里的区域选择--华北-北京一。 因为前面的OBS桶创建的时候,设置区域设置的是北京一,然后点击授权。授权之后,选择刚才创建的OBS桶,设置存储数据的目录和文件名字。 文件类型选择CSV。下面设置转发的字段: (如果提示没有授权,点击授权即可)这个转发字段就是表示需要存放的数据是那些,对于路灯而言,肯定是需要存储上报的温度、湿度、电量、光照强度的属性的。 这些属性在创建产品的时候设置,设备上报的也是这些属性。这是设备上传一次云平台的完整数据: {    "resource": "device.property",    "event": "report",    "event_time": "20221018T131627Z",    "request_id": "5ee95a0c-262d-43c3-8d31-af453f9952ef",    "notify_data": {      "header": {        "app_id": "7211833377cf435c8c0580de390eedbe",        "device_id": "634e3e423ec34a6d03c84bfb_1126626497",        "node_id": "1126626497",        "product_id": "634e3e423ec34a6d03c84bfb",        "gateway_id": "634e3e423ec34a6d03c84bfb_1126626497"     },      "body": {        "services": [         {            "service_id": "LED",            "properties": {              "temperature": 28,              "humidity": 62,              "light": 1300,              "Power": 90           },            "event_time": "20221018T131627Z"         }       ]     }   }  }如果我的路灯属性里有一个温度属性字段temperature,我想转发设备上传的这个温度字段,就可以这样写: notify_data.body.services[0].properties.temperature后面的存储目标字段,为了好区分,直接填temperature即可。如果要转发湿度字段humidity,就按下面这样写: notify_data.body.services[0].properties.humidity剩下的按照自己的需要转发的填写即可。如果存储数据时,想知道这个数据是那个产品,那个设备上传的,也可以将设备ID和产品ID转发存储起来:格式如下。 notify_data.header.app_id    notify_data.header.device_id我这里只是转发了路灯的4个属性字段:确定后,点击设置完成。(3)启用规则设置完成后,点击启用规则。(4)规则修改如果后续需要修改规则,可以点击设置转发目标页面,点击右下角的修改。可以进行规则修改:(5)数据上报测试为了验证转发规则是否生效,接下来使用MQTT客户端多上报几次数据到云平台。上传之后,打开OBS存储桶的控制台页面。打开转发规则存储的OBS桶。找到存储数据的文件,点击下载。下载下来,打开可以看到存储的数据:到此,数据转发,存储已经成功了。4.3 配置数据可视化服务数据可视化服务(Data Lake Visualization)是一站式数据可视化平台,适配云上云下多种数据源,提供丰富多样的2D、3D可视化组件,采用拖拽式自由布局,可以快速定制和应用属于自己的数据大屏。地址:https://console.huaweicloud.com/dlv/?locale=zh-cn&region=cn-north-1#/dlv/screen/list(1)购买服务套餐新用户使用,有一个月基础版的使用权限。 可以点击体验试用获取。 已购买的,直接点击进入控制台。如果体验期已过,就需要自己购买,我这里选择购买1年的基础版60块钱。注意: 这个区域要选择与OBS存储桶一个区域。 否则到时候用不了。购买成功:(2)新建数据连接使用OBS数据源,可以将大屏与OBS服务建立数据连接,在大屏上展示存储在OBS中的CSV文件的数据。选择CSV文件:这里需要填:访问密钥(AK和SK)。获取步骤如下: 1. 登录管理控制台(或者点击右上角自己的用户名)。  2. 将鼠标移到右上角的用户名上,在下拉列表中单击“我的凭证”。  3. 进入“我的凭证”后,在单击“访问密钥”。  4. 在“访问密钥”页面中,可以查看已有的访问密钥ID(即AK),如果要同时获取AK和SK,可以单击“新增访问密钥”创建并下载访问密钥,下载的密钥文件中包含AK和SK。点击新增访问密匙:创建后下载下来:得到密匙之后,填充数据连接的配置:数据连接创建成功:(3)新建大屏选择空白大屏,填好名字,创建大屏。大屏创建成功:(4)新建数据转换器每个控件的数据源如果需要实时读取,需要新建数据转换器。在上方按钮里选择数据转换器。新建一个名称为led_data的数据转换器。关于数据转换器的使用说明,看这里:https://support.huaweicloud.com/usermanual-dlv/dlv_01_0718.html本次新建转换器,不用改代码,直接默认即可。【1】点击 + 号。【2】输入led_data 按下回车。【3】创建完成(5)编辑大屏界面的话,可以根据控件自行设计。我这里采用文本控件来显示路灯设备上传的数据。选中文本控件之后,右边的数据源选择--CSV文件,选择创建的数据连接,再选择数据转换器,然后下面选择文本里需要显示的字段。【1】 拖一个标题控件,用于显示大屏的名称修改属性后:【2】拖一个表格轮播控件,用来显示设备的数据。然后将控件的尺寸合理的设置一下,点击控件,选择控件数据的来源为CSV文件,然后设置数据连接器,设置映射显示的字段。然后将字段展开,设置每个数据对应的名称。如果觉得字体小了,可以改变字号:如果想改变轮播图的样式,也可以在这里设置:下面是创建好的界面:如果想显示设备上传的数据时间,可以在 规则转发里 ,将设备上报的时间也转发存放到CSV文件里,DLV大屏就可以显示时间了。(6)预览界面(7)发布界面分享链接:https://console.huaweicloud.com/dlv/vision/share/?id=a4b0adf1d0d94b29aafd53fda4a3d0cc&locale=zh-cn&region=cn-north-1在界面可以看状态已经是发布状态了:然后将链接分享给其他人,都可以通过浏览器打开访问查看效果。这是手机上查看效果:到此,DLV大屏已经配置完毕。五、ECS云服务器部署流媒体服务器智慧路灯上有一个监控摄像头,为了方便查看摄像头推送的视频流,这里购买华为云的ECS服务器,部署NGINX服务器,接收流媒体数据。5.1 购买ECS服务器官网地址: https://www.huaweicloud.com/【1】选择弹性云服务器 ECS。【2】区域选择华北北京一。【3】系统选择CentOS 7.4 。【4】配置网络【5】立即购买5.2 登录ECRS服务器在控制台选择云服务器,直接网页上登录终端即可。5.3 部署NGINX服务器(1) 先安装一些工具yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel gcc gcc-c++ yum install -y vim wget lsof git zip unzip(2)获取Nginx二进制源码rtmp模块暂时只支持Nginx13-15版本,当前就在官网下载Nginx14wget http://nginx.org/download/nginx-1.14.2.tar.gz tar xvf nginx-1.14.2.tar.gz (3)获取nginx-rtmp-modulewget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.1.tar.gz tar xvf v1.2.1.tar.gz(4)编译nginxcd nginx-1.14.2 ./configure --add-module=../nginx-rtmp-module-1.2.1/ --with-http_ssl_module make && make install #建立软链接 ln -s /usr/local/nginx/sbin/nginx /usr/bin特别说明:如果在配置时报错,一般就是缺东西了,安装了再配置。 比如:报错 ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the mo ....        解决:  yum -y install pcre-devel  yum -y install openssl openssl-devel(5)修改Nginx的配置文件打开/usr/local/nginx/conf/nginx.conf文件,在文件最后面加入下面的配置。 rtmp {        server {            listen 8888;            application live {                live on;           }           }    }上面8888是rtmp推流和拉流的端口。修改nginx.conf之后,重启nginx服务: sudo service nginx restart重启服务之后,使用netstat -ltn命令查看TCP监听的端口,确认下Nginx的监听端口是否正常。正常情况,一个是我们自己设置的rtmp服务监听端口8888,还有一个80是Nginx默认的HTTP服务监听端口。接下来可以在浏览器里输入本机IP地址:http://127.0.0.1/,查看Nginx服务开启状态。(6)设置开机启动 wget http://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx  ​  chmod +x /etc/init.d/nginx  ​  update-rc.d nginx defaults(7)控制nginx服务的3个命令: 启动、停止、重启 service nginx start  service nginx stop  service nginx restart  或者 nginx -s reload  (运行中生效配置文件)(8)进行rtmp推流 服务器搭建好之后,推流和拉流的地址就是:  rtmp://<服务器IP地址>:8888/live/<推流存放的目录>  例如: rtmp://127.0.0.1:8888/live/xl(9)nginx保存推流视频文件如果需要让推流上来的文件保存下来后续进行查看历史文件,可以配置nginx进行保存。在原来的/usr/local/nginx/conf/nginx.conf配置文件里rtmp模块中增加新的配置: record all;  record_unique on;  record_path "./video";  #视频缓存的路径  record_suffix -%Y-%m-%d-%H_%M_%S.flv;完整/usr/local/nginx/conf/nginx.conf里的rtmp模块的配置如下: #RTMP服务  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;         }           }  }配置之后执行命令nginx -s reload重启服务器即可。(10)rtmp直播流转为hls直播流什么是HLS直播流? HLS 全称是 HTTP Live Streaming,是一个由 Apple 公司提出的基于 HTTP 的媒体流传输协议,用于实时音视频流的传输。目前HLS协议被广泛的应用于视频点播和直播领域。  ​  原理介绍  HLS 跟 DASH 协议的原理非常类似。通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件,提供给客户端,让客户端顺序地拉取这些媒体文件播放,来实现看上去是在播放一条流的效果。由于传输层协议只需要标准的 HTTP 协议,HLS 可以方便的透过防火墙或者代理服务器,而且可以很方便的利用 CDN 进行分发加速,并且客户端实现起来也很方便。  ​  HLS 把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS 是音视频的媒体信息。HLS协议编码格式要求: 视频的编码格式:H264  音频的编码格式:AAC、MP3、AC-3  视频的封装格式:ts  保存 ts 索引的 m3u8 文件配置/usr/local/nginx/conf/nginx.conf将RTMP流转为HLS流。在http模块的server配置里增加新的配置: location /live_hls{    types {    #m3u8 type设置    application/vnd.apple.mpegurl m3u8;    #ts分片文件设置    video/mp2t ts;   }   #指向访问m3u8文件目录   alias ./m3u8File; #和rtmp模块里的hls_path设置路径一样   add_header Cache-Control no-cache; #禁止缓存  }在rtmp模块的server配置里增加新的配置: hls on;   #开启hls  hls_path ./m3u8File;  #hls的ts切片存放路径 (这是个目录,会自动创建的)  hls_fragment 2s;  #本地切片长度  hls_playlist_length 6s;#HLS播放列表长度/usr/local/nginx/conf/nginx.conf文件的完整的配置如下: worker_processes  1;   #Nginx进程数,建议设置为等于CPU总核数    events {      worker_connections  1024;  #工作模式与连接数上限  }    rtmp_auto_push on;    #RTMP服务  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;                hls on;   #开启hls              hls_path ./m3u8File;  #hls的ts切片存放路径              hls_fragment 2s;  #本地切片长度              hls_playlist_length 6s;#HLS播放列表长度         }           }  }    #HTTP服务  http {      include       mime.types;      default_type  application/octet-stream;      sendfile        on;      keepalive_timeout  65;        server {          listen       8099;          server_name  localhost;            location / {              root   html;              index  index.html index.htm;         }            location /live_hls{      types{      #m3u8 type设置   application/vnd.apple.mpegurl m3u8;   #ts分片文件设置   video/mp2t ts;   }   #指向访问m3u8文件目录   alias ./m3u8File;   add_header Cache-Control no-cache; #禁止缓存   }            location /control{      rtmp_control all;   }     location /stat{      rtmp_stat all;   rtmp_stat_stylesheet stat.xsl;   }   location /stat.xsl{      root ./nginx-rtmp-module-master;   }          # redirect server error pages to the static page /50x.html          #          error_page   500 502 503 504  /50x.html;          location = /50x.html {              root   html;         }     }  }配置之后重启服务器即可。5.4 视频推流测试按照前面的配置,RTMP推流地址和HTTP访问地址如下: 接下来硬件上采集到摄像头数据,通过ffmpeg编码后,直接填写下面地址进行推流即可。 RTMP推流和拉流地址: rtmp://127.0.0.1:8888/live/video01  ​  ​  那么对应的HTTP的访问地址:http://127.0.0.1:8099/live_hls/video01.m3u8说明: 转为HLS流之后,如果浏览器支持HLS流就可以直接输入地址播放。一般手机浏览器都支持的。比如:苹果手机的自带浏览器,QQ浏览器等浏览器都支持直接播放HLS流。PC机的谷歌浏览器默认是不支持的。六、硬件设计硬件上分为两个部分: (1)摄像头部分 (2)太阳能充电+传感器部分5.1 摄像头监控实现(1)硬件组成摄像头远程监控部分采用:树莓派4B + USB摄像头实现。 视频压缩,编码,推流采用ffmpeg实现。(2)编译FFMPEG视频编码,推流需要用到ffmpeg的库,需要先下载ffmpeg源码进行编译,得到xxx.so。由于编译ffmpeg需要一些其他的库,再编译ffmpeg之前先编译其他的一些库。【1】编译安装NASM 下载NASM库: http://distfiles.macports.org/nasm/ pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/nasm-2.14.02.tar.bz2 ./  pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf nasm-2.14.02.tar.bz2  pi@raspberrypi:/media/pi/DS小龙哥/work $ cd nasm-2.14.02/  pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ ./configure  pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ make  pi@raspberrypi:/media/pi/DS小龙哥/work/nasm-2.14.02 $ sudo make install【2】编译X264下载地址: https://www.videolan.org/developers/x264.html pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/x264-master.tar.bz2 ./  pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf x264-master.tar.bz2  pi@raspberrypi:/media/pi/DS小龙哥/work $ cd x264-master/  pi@raspberrypi:/media/pi/DS小龙哥/work/x264-maste $ ./configure --prefix=$PWD/_install  --enable-shared  pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ make && make install  pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ sudo cp _install/include /usr/ -rf  pi@raspberrypi:/media/pi/DS小龙哥/work/x264-master $ sudo cp _install/lib /usr/ -rf【3】编译ffmpeg下载地址: http://www.ffmpeg.org/download.html pi@raspberrypi:/media/pi/DS小龙哥/work $ mv /home/pi/Downloads/ffmpeg-4.2.2.tar.bz2 ./  pi@raspberrypi:/media/pi/DS小龙哥/work $ tar xvf ffmpeg-4.2.2.tar.bz2  pi@raspberrypi:/media/pi/DS小龙哥/work $ cd ffmpeg-4.2.2/  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo apt-get install libomxil-bellagio-dev  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ ./configure --enable-shared --prefix=$PWD/_install --enable-gpl --enable-libx264 --enable-omx-rpi --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal --enable-encoder=h264_omx --enable-omx  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ make && make install  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/include /usr/ -rf  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/lib /usr/ -rf  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ sudo cp _install/bin /usr/ -rf  pi@raspberrypi:/media/pi/DS小龙哥/work/ffmpeg-4.2.2 $ ffmpeg -v  ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers    built with gcc 8 (Raspbian 8.3.0-6+rpi1) .. .....................     ..........................(3)推流代码推流代码篇幅较长,这里就不贴出来了。不过这个功能也可以采用命令行实现: 推流本地实时音频视频到流媒体服务器  示例:  [xl@DS_小龙哥 linux_c]$ ffmpeg -f video4linux2  -r 12 -s 640x480 -i /dev/video0 -f alsa -i default -ar 44100 -ac 1 -f mp3 -qscale 10 -f flv "rtmp://127.0.0.1:8086/live/123"  ​  参数解析:  -f video4linux2 指定linux下的视频驱动框架  -s 640x480  指定视频尺寸  -i /dev/video0 摄像头节点  f alsa 声卡驱动框架  -i default  选择声卡,这里选择默认声卡  -ar 44100  声音采样频率  -ac 1   单声道  -f mp3  MP3音频  -qscale 10 设置画面质量,值越小画面质量越高  f flv   指定封装格式  "rtmp://127.0.0.1:8086/live/123"  流媒体服务器地址(4)DLV可视化大屏显示监控视频由于华为云的DLV可视化服务组件里的rtmp播放器在基础版里无法使用,这里的推流就不用DLV进行演示了。 如果买了高版本的DLV可视化服务,将RTMP或者FLV播放控件拖到界面上,在属性里设置ECS服务器里的推流地址即可播放监控视频了。5.2 智慧路灯部分智慧路灯硬件: 太阳能充电板 + 锂电池 + 充电模块 + STM32F103系统板 + BH1750光强传感器 + DHT11温湿度传感器 + BC20-NBIOT模块。(1)硬件组成【1】太阳能板【2】充电模块【3】BC20 -- NBIOT模块【4】温湿度 + 光敏传感器(2)BC20上云调试BC20是一款高性能、低功耗、多频段、支持 GNSS 定位功能的 NB-IoT 无线通信模块。BC20 在设计上 兼容移远通信 GSM/GPRS/GNSS 系列的 MC20 模块,方便客户快速、灵活的进行产品设计和升级。 BC20 提供丰富的外部接口和协议栈,同时支持中国移动 OneNET 物联网云平台,为客户的应用提供极 大的便利。【1】上电初始化操作 查询模块是否正常  AT  ​  OK  ​  ​  获取卡号,查询卡是否插好  AT+CIMI  ​  460041052911195  ​  OK  ​  ​  激活网络  AT+CGATT=1  ​  OK  ​  ​  获取网络激活状态  AT+CGATT?  ​  +CGATT: 1  ​  OK  ​  ​  查询网络质量  AT+CSQ  ​  +CSQ: 26,0  ​  OK        AT+CEREG=? //检查网络状态  +CEREG: 0,1 //找网成功  OK【2】连接MQTT服务器 连接MQTT服务器  AT+QMTOPEN=0,"a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com",1883  ​  OK  ​  +QMTOPEN: 0,0  ​  ​  登录MQTT服务器  命令格式: AT+QMTCONN=<tcpconnectID>,<clientID>,<username>,<password>  AT+QMTCONN=0,"6210e8acde9933029be8facf_dev1_0_0_2022021913","6210e8acde9933029be8facf_dev1","6cea55404b463e666cd7a6060daba745bbaa17fe7078dfef45f8151cdf19673d"  ​  OK  ​  +QMTCONN: 0,0,0  ​  ​  订阅主题  命令格式: AT+QMTSUB=<tcpconnectID>,<msgID>,"<topic1>”,<qos1>[,"<topic2>”,<qos2>…]  ​  AT+QMTSUB=0,1,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/messages/down",2  ​  OK  ​  +QMTSUB: 0,1,0,2  ​  ​  发布主题  命令格式:AT+QMTPUB=<tcpconnectID>,<msgID>,<qos>,<retain>,"<topic>","<msg>"  ​  先发送指令:  AT+QMTPUB=0,0,0,0,"$oc/devices/6210e8acde9933029be8facf_dev1/sys/properties/repor"  ​  等待返回 ">"  接着发送数据.不需要加回车。  "{"services": [{"service_id": "gps","properties":{"longitude":12.345,"latitude":33.345}}]}"  数据发送完毕,再发送结束符。 十六进制的值--0x1a  。某些串口调试助手可以适应ctrl+z 快捷键输入0xA  等待模块返回"OK",到此数据发送完成。      OK  ​  +QMTPUB: 0,0,0(3)STM32硬件代码这里的完整工程代码篇幅较多,这里就不贴出来了。对于华为云iot平台而言,这里硬件实现的代码最终功能与上面的MQTT软件模拟效果是一样的。 采集硬件上的数据上传到云平台。七、总结通过智慧路灯的项目,介绍了一个物联网设备如何上云,云平台如何配置,数据可视化大屏如何对接显示的整个流程。 如果手上没有智慧路灯的硬件,也可以通过文中介绍的MQTT客户端软件,模拟设备数据进行数据上传,一样可以完成云端的所有操作。 有了可视化大屏,就可以实时查看设备的状态,本次的例子里设计的界面比较简单,如果想设计酷炫,可以查看官方的模板,在新建大屏的时候可以选择模板进行创建。
  • [云实验室] wget https://transtestdata.obs.cn-north-4.myhuaweicloud.com/sample-objectdetection.zip 404
    wget https://transtestdata.obs.cn-north-4.myhuaweicloud.com/sample-objectdetection.zip这个网址404,寄
  • [ManageOne二...] ManageOne API支持GPU生命周期管理吗
    请问ManageOne 或者  华为stack 支持通过API对GPU进行生命周期管理吗,与ECS的API接口是否一致?
  • [问题求助] 鲲鹏平台应用软件移植调优综合实验 基于华为云鲲鹏弹性云服务器部署OA系统。
    在该课程中,我在部署安装OA系统时,需要下载classpath.txt文件,但是视频中和实验指导书中的链接已经失效,wget https://hcia.obs.cn-north-4.myhuaweicloud.com/v1.5/classpath.txt,该步骤在实验指导书第34页,4.8步骤处在网上实在不到资源,寻求大佬帮助。
  • [技术干货] AI智能
    感受到了AI的强大,简简单单输入一个字就可以自动作诗,堪比曹植的七步成诗。
  • [技术干货] 使用CodeArts IDE for RemoteShell 连接华为云ECS主机
    简介本章节主要介绍使用RemoteShell插件的远程主机和用户连接、管理代理配置、用户操作远程文件系统及获取华为云服务器相关功能,支持开发者在完全不需要拥有远程开发环境源代码的情况下,也能轻松获得远程开发体验。使用CodeArts IDE for RemoteShell,您可以连接华为云ECS主机或任意主机。一、下载安装CodeArts IDE for Remoteshell现已开放公测,下载获取免费体验。二、创建主机连接RemoteShell支持创建主机(可多台)远程连接,在新建远程连接时,可选择使用或不使用代理进行连接,身份认证支持密码、密钥、双因子三种方式。当RemoteShell自动打开远程主机终端,成功获取远程文件系统时,说明主机连接成功,界面提示如下:在使用过程中,可对远程主机基本信息进行修改,也可以移除主机和断开所有主机连接。三、proxy配置管理可以新增,编辑,删除proxy。如果您需要配置全局代理,可以在“应用程序代理”中进行修改。如果您的远程主机需要使用代理进行连接,只可选用列表中其中一个或不使用代理,即在创建主机连接时选中某个代理或者不使用,或对已有主机信息进行修改。四、增加用户使用连接创建主机连接成功后,会自动增加当前用户的远程使用权限。同时也支持一台主机增加多用户连接。当RemoteShell自动打开远程主机终端,成功获取相应的远程文件系统,说明用户连接成功。在使用过程中,可对用户连接的基本信息进行修改,也可以移除该用户和断开该用户的连接。五、操作远程文件系统和远程终端创建主机连接成功后,即可操作远程文件系统。文件系统通过文件树右键菜单即可对内部文件/文件夹进行上传、下载、复制粘贴、删除、重命名等操作。可直接编辑文件代码,也可通过顶部菜单“编辑文件”功能或编辑区右键菜单进行相关操作。通过文件右键菜单可对文件和终端进行拆分、关闭等操作。与语言服务相关的代码补全、重构、跳转、修复、华为云SDK代码补全助等功能,请您持续关注后续迭代版本。2. 远程终端多终端分区布局:您可以在同一个页面中创建多个RemoteShell终端,并可以直接拖动窗口,随意组合成您喜欢的布局。六、获取华为云服务器首先需要使用华为云账号即可完成登录:2.登录成功后才能获取,绿色表示当前可连接的远程机,点击按钮可以继续执行连接到该主机的操作。
  • [技术干货] 服务器被攻击多久可以恢复?-转载
     服务器被攻击的时候不同机房做出的应对策略也是不同的,一般情况下2h内可以解封,最迟24h,如果解封后仍被攻击,那么,就可能会更久,也许是48h/72h,也许是直接永久封死。  那么,作为一名维护网站安全的管理员,当网站遭受黑客攻击的时候,应该怎么处理?  1、断开网络链接  当服务器遭受黑客攻击的时候,应该在第一时间里断开所有网路链接,即可断开黑客攻击。  2、修改账号密码  如果你的服务器是租用的,那么在接手服务器后,应该及时修改登录密码,密码尽可能的设置复杂一些,这样的话,才能有效降低服务器被盗用的概率,确保网站能够正常健康运行。  3、追踪攻击者  服务器被攻击后,应该根据系统日志,对所有网站数据进行排查,寻找可疑者,找出网站攻击者。  4、及时修复系统漏洞  多数情况下,网站攻击者会根据系统存在的BUG发动攻击,这个时候网站安全员要根据系统日志分析,查看入侵服务器的方式,并及时进行修复。  5、限制登录后台的IP  限制登录后台的Ip,这样的话,异地登陆或者当别人登录后台时候,便会有提示,除了你自己别人都是无法登录的,相当于给我们的网站添加了一道完全密码。  6、实时进行数据备份  在进行系统数据备份的时候,这里一定要注意查看在实时备份的系统数据里面是否夹杂着攻击源,一旦发现应及时删除。  7、禁止下载其它软件  互联网时代,很多软件都会隐形让用户安装一些带有安全隐患的插件,这些插件往往带有一定病毒,一旦下载了,病毒便会植入服务器,可能会出现盗用网站数据、攻击服务器的情况。  8、定期进行网站维护  定期进行网站维护是一个网站能够健康持续良好运营的关键,因此,定时进行网站维护是网站安全员非常重要的工作之一。  9、重装系统  网站被攻击后,一定要及时进行系统重装,网站被攻击的方式多种多样,如果我们不能确保网站是通过哪种方式被攻击的时候,只有重装系统才能彻底清除攻击源。 ———————————————— 版权声明:本文为CSDN博主「聚名网」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zacji/article/details/128238203 
  • [分享交流] 华为云的服务器可能是各大厂商中最便宜的了
    华为云的服务器可能是各大厂商中最便宜的了。 已经从华为云这边连续买了两个了,三年几千块钱,别的云服务厂商,三年得要2-3w,真的不是一点半点的差距啊
  • [问题求助] docker容器内项目连接rds问题
    ↵rds(mysql)白名单添加了宿主机ecs的ip,docker容器内项目连接服务器超时,初步怀疑是rds白名单未添加docker容器ip,但docker每次重启ip会更改,请问如何配置可以使项目访问到rds
  • [问题求助] 如何使用java开发对openguass数据库的应用呢?
    如题,网上使用jdbc,odbc连接openguass的教程太少了,求推荐!
  • [互动交流] oneav是什么
    我想问一下这个oneav是什么?服务器目前情况,安装了bt面板的lnmp手动安装了pm2,利用pm2启动了一个nodejs项目,可是那个项目只显示了一个静态网页。不知道为什么,即使使用了pm2,nodejs项目还是会异常停止
  • [互动交流] 欧拉安装moreutils报错:nothing provides perl(IPC::Run)
    华为云ECS(x86) + openEuler 20.03 64位欲安装moreutils:sudo dnf install moreutils报错: Problem: conflicting requests - nothing provides perl(IPC::Run) needed by moreutils-0.49-2.el7.x86_64 (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)求助力!
总条数:1069 到第
上滑加载中