• [产品讨论] 视频流媒体的容器化改造
    (1)流媒体应用有:媒体采集系统、媒体制作系统、点播系统、视频流推送系统.几类应用比较适合容器化部署:一是功能单一的应用,即微服务(这也是为什么现在大家一谈到微服务就会谈到容器,一谈到容器就会谈到微服务的原因);二是无状态的应用,容器的一个最大的优点就是可以快速创建(秒级),对于无状态的应用,可以通过快速横向扩容来提升并发处理能力;三是变更频繁的应用,容器是基于镜像创建的,对于变更频繁的应用,只要能保证镜像在测试环境测试没有问题,那么在生产环境上线由于环境差异导致出问题的概率就会少的多;四是对于需要在一个站点快速部署的应用组,对于需要在一个新站点快速部署的应用组,使用容器技术能够结合容器平台自身的特性,快速创建一个新的站点。(2)容器化改造思路1:负载均衡应用改造点:选择合适的负载均衡器中小型的Web应用可以使用ngnix或HAProxy,大型网站或重要的服务可以使用LVS,目前该企业业务较小,选取nginx作为负载均衡器!2:web应用改造点:应用存在长时间执行请求   增加消息队列,通过消息队列将长任务与用户请求解耦3:应用服务器应用改造点:应用实例依赖于本地的存储来持久化数据如果是日志,建议变成流汇聚到分布式日志系统中。如果必须要使用存储,要使用共享文件系统如NFS(3)采用华为云CCE集群服务CCE引擎核心优势支持裸金属容器服务,流媒体服务性能提升200%以上。视频流媒体对网络性能以及服务器运算能力要求苛刻。CCE支持裸金属容器服务,如图1,视频应用可基于裸金属服务部署,容器直接运行在物理机上,无任何虚拟化性能缺失,可获得和物理机同等的超优性能,视频业务性能提升200%以上。图1 裸金属容器服务视频网站应用放在pod里视频文件放在OBS里有状态pod 无状态pod流媒体加CDN加速服务ClusterIP:集群内访问表示工作负载暴露给同一集群内其他工作负载访问的方式,可以通过“集群内部域名”访问Nodeport:在每个节点的IP上开放一个静态端口,通过静态端口对外暴露服务。节点访问 ( NodePort )会路由到ClusterIP服务,这个ClusterIP服务会自动创建。通过请求<NodeIP>:<NodePort>,可以从集群的外部访问一个NodePort服务Loadbalance:可以通过弹性负载均衡从公网访问到工作负载,与弹性IP方式相比提供了高可靠的保障,一般用于系统中需要暴露到公网的服务。
  • [MindX SDK] 【200dk】【目标检测功能】connect stream failed.stream不存在
    【功能模块】自己写一个处理视频的样例。环境是开发和运行合一部署的,都是200dk上。200dk是5.0.2 alpha2。【操作步骤&问题现象】1、自己编写pipeline和main.py,怀疑rtsp的地址存在问题。我在200dk上用live555打开服务器,在ubuntu中用ffplay rtspURL是能够得到视频的。同理,我猜测200dk运行的pipeline的地址应该没问题。2、现在的报错是在GetProtobuf处出现了问题。一直连接不上stream【截图信息】1、报错2、live555【日志信息】(可选,上传日志内容或者附件)main1.py的内容:pipeline的主要内容:
  • [问题求助] 大数量级的H264视频同时编码和解码推荐什么型号的卡?
    大数量级的H264视频同时编解码(二次编码)推荐使用什么型号的卡?用什么开发包?
  • [其他] 能否提供以下视频会议设备的开发类型及涉及的操作系统?
    能否提供以下视频会议设备的开发类型及涉及的操作系统?SMC2.0SCCloudmcuRSE6500esight TE40/TE50BOX300IdeahubTE mobile&TE desktopHW cloudlink
  • [问题求助] CloudLink Kit_21.0.0.6 JSSDK无法隐藏软终端视频页面按钮,跪求大佬们帮忙
    使用了CloudLink Kit_21.0.0.6的DEMO,修改其中tsdkClient初始化方法中的相关UI组件参数。但是没有生效全系列CloudLink Kit_21.0.0.6的demo配套sdkCloudLink Kit_21.0.0.6升级说明支持按钮定制CloudLink Kit_21.0.0.6JSSDK说明支持按钮的控制事实上两个参数的值全部设置成1隐藏也没有生效
  • [问题求助] 造成网页视频播放卡顿都有哪些原因啊????????????????
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] hilens的摄像头如何录制视频,并且保存在自己想要保存 的位置
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 【离线部署工具ascend-deployer】☆实用工具推荐☆ 助力用户实现快速部署
    ★推荐★  离线部署工具ascend-deployer,满足用户多样化部署需求延伸阅读  工具安装:【ascend-deployer快速入门指导】命令行安装:【CANN 环境搭建指导视频】【昇腾视界 下期内容由你定】关于离线部署工具ascend-deployer使用指导的形式你更喜欢长图文还是演示视频?可以在评论区留言感兴趣的形式或者主题我们将根据大家的建议推出下期内容走过路过不要错过哟~~~
  • [问题求助] hilens studio与手机摄像头实现视频流显示的错误
    、hilens studio与手机摄像头实现视频流显示的时候,请问出现这个要怎么办啊?
  • [MindX SDK] 实时人脸检测案例分享
    # MindX SDK -- 人脸检测参考设计案例 ## 1 案例概述 ### 1.1 概要描述 在本系统中,目的是基于MindX SDK,在华为云昇腾平台上,开发端到端**实时人脸检测**的参考设计,实现**对三路视频中的人脸以及人脸关键点进行检测**的功能,达到性能要求 ### 1.2 模型介绍 本项目用到了一个模型: 用于人脸检测的Yunet模型 Yunet模型相关文件可以在此处下载:https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/yunet/yunet.onnx ### 1.3 实现流程 1、基础环境: MindX SDK : 版本2.0.4 获取方式:https://www.hiascend.com/software/Mindx-sdk ubuntu : 版本:18.04 获取方式:请上ubuntu官网获取 Ascend-CANN-toolkit: 版本:5.0.4 获取方式:https://www.hiascend.com/software/cann/commercial 2、模型转换:利用atc工具完成模型转化:yunet.onxx --> yunet.om 3、业务流程编排与配置 4、开发检测后处理插件YunetPostProcess 5、python主程序代码开发 技术流程图如下: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/13/1657676880325366760.png) ### 1.4 代码地址 > 本项目的代码地址为:https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/contrib/yunet ## 2 软件方案介绍 ### 2.1 项目方案架构介绍 表2.1 系统方案中各模块功能: | 序号 | 子系统 | 功能描述 | | ---- | -------------- | ------------------------------------------------------------ | | 1 | 视频输入流 | 接收外部调用接口的输入视频路径,对视频进行拉流,并将拉去的裸流存储到缓冲区(buffer)中,并发送到下游插件。 | | 2 | 视频解码 | 用于视频解码,当前只支持H264格式。 | | 3 | 数据分发 | 对单个输入数据进行2次分发。 | | 4 | 数据缓存 | 输出时为后续处理过程创建一个线程,用于将输入数据与输出数据解耦,并创建缓存队列,存储尚未输入到下流插件的数据。 | | 5 | 图像处理 | 对解码后的YUV格式的图像进行放缩。 | | 6 | 模型推理插件 | 目标检测。 | | 7 | 模型后处理插件 | 对模型输出的张量进行后处理,得到物体类型数据。 | | 8 | 目标框转绘插件 | 物体类型转化为OSD实例 | | 9 | OSD可视化插件 | 实现对视频流的每一帧图像进行绘制。 | | 10 | 视频编码插件 | 用于将OSD可视化插件输出的图片进行视频编码,输出视频。 | ### 2.2 代码目录结构与说明 本工程名称为Yunet实时人脸检测,工程目录如下图所示: ```` ├── build.sh ├── config │ ├── face_yunet.cfg # yunet配置文件 │ └── Yunet.aippconfig # 模型转换aipp配置文件 ├── kpmain.py # 关键点信息输出代码 ├── main.py # 单路视频输出代码 ├── test.py # 三路后处理性能测试代码 ├── models │ └── Yunet.onnx ├── pipeline │ ├── InferTest.pipeline # 三路后处理性能测试pipeline │ ├── PluginTest.pipeline # 原方案插件性能测试pipeline │ ├── KPYunet.pipeline # 关键点信息输出pipeline │ └── Yunet.pipeline # 单路视频输出pipeline ├── plugin │ ├── build.sh │ ├── CMakeLists.txt │ ├── YunetPostProcess.cpp # 人脸检测框后处理代码 │ └── YunetPostProcess.h ├── plugin2 │ ├── build.sh │ ├── CMakeLists.txt │ ├── KPYunetPostProcess.cpp # 人脸关键点后处理代码 │ ├── KPYunetPostProcess.h ├── plugin3 │ ├── build.sh │ ├── CMakeLists.txt │ ├── TotalYunetPostProcess.cpp # 人脸检测框与关键点后处理代码(以供可视化) │ └── TotalYunetPostProcess.h ├── README.md └── run.sh ```` ## 3.1 环境依赖说明 环境依赖软件和版本如下表: | 软件名称 | 版本 | | :-----------: | :---------: | | ubantu | 18.04.1 LTS | | MindX SDK | 2.0.4 | | Python | 3.9.2 | | CANN | 5.0.4 | | numpy | 1.22.3 | | opencv-python | 4.5.5 | | 软件名称 | 版本 | 说明 | 使用教程 | | -------- | ----- | ------------------------------ | ------------------------------------------------------------ | | live555 | 1.09 | 实现视频转rstp进行推流 | [链接](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/Live555%E7%A6%BB%E7%BA%BF%E8%A7%86%E9%A2%91%E8%BD%ACRTSP%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md) | | ffmpeg | 4.2.1 | 实现mp4格式视频转为264格式视频 | [链接](https://gitee.com/ascend/mindxsdk-referenceapps/blob/master/docs/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/pc%E7%AB%AFffmpeg%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B.md#https://ffmpeg.org/download.html) | 本项目适用于单人及多人正脸视频。对于人脸侧面视频,可以将人脸位置正确标出,但关键点信息标注准确率较低。本项目可以适用于仰卧人脸,但不适用于侧卧人脸。 特别地,在无人脸的情况下,我们在视频左上角设置了红色提示点。当左上角像素出现红色时,说明此场景没有检测出人脸。(下面给出该特殊点检测框的数据信息) ```` "MxpiObject":[{"classVec":[{"classId":3,"className":"","confidence":0,"headerVec":[]}],"x0":0,"x1":0,"y0":0,"y1":0}] ```` 另外,本项目要求输入视频为1920*1080 25fps视频,不支持25帧率以上视频。 ### 3.2 环境搭建 在编译运行项目前,需要设置环境变量: ```bash . /usr/local/Ascend/ascend-toolkit/set_env.sh . ${SDK安装路径}/mxVision/set_env.sh export install_path=/usr/local/Ascend/ascend-toolkit/latest export PATH=${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH export ASCEND_OPP_PATH=${install_path}/opp ``` 注:其中SDK安装路径${MX_SDK_HOME}替换为用户的SDK安装路径。 ### 3.3 模型转换 本项目中使用的模型是yunet模型,onnx模型可以直接[下载](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/yunet/yunet.onnx)。下载后使用模型转换工具ATC将onnx模型转换为om模型,模型转换工具相关介绍参考[链接](https://support.huaweicloud.com/tg-cannApplicationDev330/atlasatc_16_0005.html) 模型转换步骤如下: 设置ATC env:当前目录下运行 ```` export install_path=/usr/local/Ascend/ascend-toolkit/latest export PATH=/usr/local/python3/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg:$PYTHONPATH export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH export ASCEND_OPP_PATH=${install_path}/opp ```` cd到models文件夹,运行 ```` atc --framework=5 --model=yunet.onnx --output=yunet --input_format=NCHW --input_shape="input:1,3,120,160" --log=debug --soc_version=Ascend310 --insert_op_conf=../config/Yunet.aippconfig ```` 执行该命令后会在指定输出.om模型路径生成项目指定模型文件`yunet.om`。若模型转换成功则输出: ``` ATC start working now, please wait for a moment. ATC run success, welcome to the next use. ``` aipp文件配置如下: ``` aipp_op { related_input_rank : 0 src_image_size_w : 160 src_image_size_h : 120 crop : false aipp_mode: static input_format : YUV420SP_U8 csc_switch : true rbuv_swap_switch : false matrix_r0c0 : 256 matrix_r0c1 : 454 matrix_r0c2 : 0 matrix_r1c0 : 256 matrix_r1c1 : -88 matrix_r1c2 : -183 matrix_r2c0 : 256 matrix_r2c1 : 0 matrix_r2c2 : 359 input_bias_0 : 0 input_bias_1 : 128 input_bias_2 : 128 mean_chn_0 : 0 mean_chn_1 : 0 mean_chn_2 : 0 min_chn_0 : 0.0 min_chn_1 : 0.0 min_chn_2 : 0.0 var_reci_chn_0 : 1.0 var_reci_chn_1 : 1.0 var_reci_chn_2 : 1.0 } ``` ## 4 实时人脸检测流程开发实现 ### 4.1 pipeline编排 ``` mxpi_rtspsrc mxpi_videodecoder # 视频解码 mxpi_imageresize # 图像缩放 tee # 解码视频分发 mxpi_tensorinfer # 模型推理 mxpi_objectpostprocessor # 模型后处理 mxpi_object2osdinstances # osd实例化 mxpi_channelimagesstitcher # 图片合并 mxpi_channelosdcoordsconverter mxpi_opencvosd mxpi_videoencoder appsink ``` ### 4.2 实时人脸检测后处理库开发 参考分类识别模型后处理库开发。 > 参考链接:https://gitee.com/ascend/docs-openmind/blob/master/guide/mindx/sdk/tutorials/quick_start/4-2%E6%A8%A1%E5%9E%8B%E5%90%8E%E5%A4%84%E7%90%86%E5%BA%93(%E5%86%85%E7%BD%AE%E7%B1%BB%E5%9E%8B)%E5%BC%80%E5%8F%91%E8%B0%83%E8%AF%95%E6%8C%87%E5%AF%BC.md ### 4.3 主程序开发 1、初始化流管理。 2、加载视频,进行推理。 3、获取pipeline各插件输出结果,解析输出结果。 4、根据识别结果在视频中标出人脸信息 5、测试性能,获取输出视频帧率 6、销毁流 ## 5 编译与运行 `main.py`:用来生成端对端单路推理的可视化视频,以提供单路推理结果可视化的应用样例 `kpmain.py`:用来生成单路关键点后处理的数据结果(用来确保关键点类型后处理的实现成功,关键点效果看main.py的可视化结果) (`kpmain.py`在此项目中不是必须的,当前没有keypoint类型osd支持下,仅给出单路pipeline输出数据信息供参考) `test.py`:用来输出端对端三路推理的后处理结果,以检测三路推理性能是否达标 需要注意的是,本项目后处理插件支持三路视频推理的后处理,但由于mxVision-2.0.4暂不支持三路后处理输出,所以此处采取单路视频可视化和三路推理性能检测两部分,分别提供可视化应用与性能检测的功能。 1.编译后处理插件 `cd`到`plugin`目录,`mkdir`新建文件夹`build` `cd`到`build`,运行 ```` cmake .. make -j make install ```` 如果权限问题,`cd`到MindSDK安装路径的`lib/modelpostprocessors`目录,将`libyunetpostprocess.so`的权限更改为`640`。 对于`plugin2`、`plugin3`目录也同样处理。 2.`config/face_yunet.cfg` 确认权限`640`。 3.运行`main.py`程序 `cd`到根目录,运行 ```` bash run.sh ```` 最后会得到`result.264`即为输出结果 ## 6 常见问题 ### 权限问题 **问题描述:** ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/13/1657676735740192074.png) **解决方案:** cd到run包的./lib/modelpostprocessors目录,运行 ```` chmod 640 libyunetpostprocess.so ```` 对于plugin2、plugin3目录也同样处理。 ### 负荷问题 若视频解码器负荷过高则会出现以下问题: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/13/1657676706976134205.png) ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/13/1657676761121560284.png) 导致此问题的可能原因为:视频帧率过高、视频尺寸过大或解码器正在同时解码过多其他视频 解决方案:确保三路视频都为1920*1080 25fps并且减少其它任务的运行 ## 7 参考链接 > Yunet模型,参考链接:https://github.com/ShiqiYu/libfacedetection
  • [二次开发] 通过RESTful API接口获取SmartRooms智能协同大屏的sip号码发起视频呼叫
    目前越来越多的客户使用并购买了华为云会议的SmartRooms大屏设备,它可以同样加入到华为云会议中,通过RESTful API调用的方式将设备拉入会议中,满足企业多场景自定义下的使用问题。SmartRooms激活具体步骤可参考链接:https://support.huaweicloud.com/smartroom-meeting/toctopics/zh-cn_topic_0000001167929241.html调用服务端查询企业通讯录接口serchKey字段中填写SmartRooms的名称,便于搜索响应样例获取到sip号码后,可以通过创建会议接口自动邀请或者会中邀请与会人添加SmartRooms到会议中SmartRooms可设置来电自动接听(可选)
  • [问题求助] hilens怎么保存视频,
    【功能模块】hilens【操作步骤&问题现象】1、检测结果能显示,不知如何保存,用什么保存,sd卡,还是上传云端2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 智慧园区业务资产说明之——视频播放(MediaPlayer)(下)
    附录播放器界面按钮功能表2 播放器界面按钮功能按钮功能详情备注标题栏显示设置后的title,建议设置为cameraName,视频调阅名称。无关闭按钮点击后关闭播放器无屏幕双击屏幕视频全屏播放无暂停按钮播放按钮点击后暂停或播放录像回放无控制云台按钮点击后打开或关闭云台控制台无截屏按钮点击后,进行屏幕图像截取。无全屏按钮点击后视频全屏播放点击按键Esc退出全屏云台控制台功能表3 云台控制功能云台控制台功能详情备注控制云台转向按钮点击后摄像机向按钮标识方向进行转动按住按钮摄像机开始转动,当停止按住按钮时,摄像机转动停止。缩小按钮点击后,通过改变摄像机变焦,使视野变小,画面变大。按住按钮摄像机开始变焦,当停止按住按钮时,摄像机变焦停止。放大按钮点击后,通过改变摄像机变焦,使视野变大,画面变小。按住按钮摄像机开始变焦,当停止按住按钮时,摄像机变焦停止。四屏直播表4 四屏直播功能四屏播放功能功能详情备注实时浏览(单摄像机)在选中的屏幕中,播放相对应摄像机的视频重复选择同一屏幕进行播放,则仅最后传入的对应摄像机编码的视频。实时浏览(URL)在选中的屏幕中,播放相对应URL的视频重复选择同一屏幕进行播放,则仅最后传入的对应URL的视频。实时浏览(多摄像机)播放传入的播放相对应摄像机编码的实时视频使用该功能将取消所有正在播放的视频。录像回放四屏转为单屏,播放相对应摄像机编码,相对应时间的回放视频无录像回看(URL)四屏转为单屏,播放相对应URL的回放视频无传参表5 传参功能事件参数实时浏览(单摄像机)thisObj.triggerEvent("startLive",params);cameraCode, cameraName实时浏览(URL)thisObj.triggerEvent("startLiveUrl", param);url, title实时浏览(多摄像机)thisObj.triggerEvent("startLives",params);cameraCodes录像回放thisObj.triggerEvent("startPlayBack",params);cameraCode,cameraName,startTime,endTime录像回看(url)thisObj.triggerEvent('startPlayBackUrl', param);url, title设置详情表6 设置详情设置基础说明Custom Config组件名称默认为widget+数字Window Type可选择单屏(Single Screen)或四屏播放(Four Screens)Live Media Type播放视频直播的类型,如HTMLPlay Back Media Type播放视频回看的类型,如HTMLSwitch To Live Or Record Mode允许或禁止直播与录像功能切换ServerLive Url/VideoProxy/0.1.0/livePlayback Url/VideoProxy/0.1.0/playbackPTZ Url/VideoProxy/0.1.0/ptzScreen Capture Url/VideoProxy/0.1.0/live/shotScreen Capture PlayBack Url/VideoProxy/0.1.0/playback/shotGet Video Proxy Config/VideoProxy/0.1.0/getConfigPlayer StyleWidth设置组件宽度Height设置组件高度Position可选择组件位置样式,默认(default)或固定(fixed)Top距离页面顶部的距离Bottom距离页面底部的距离Left距离页面左侧的距离Right距离页面右侧的距离z-index堆叠层级保活时间间隔无保活服务地址无ParametersTitle视频标题Move可选择组件是否可拖拽标题改变位置,不可拖拽(Non-dragging)或可拖拽(dragging)Show Head可选择是否显示头部Show Close Button可选择是否显示关闭按钮Show Player可选择是否显示组件Show ToolBar可选择是否显示工具栏Show Slider可选择是否显示进度条Show Play Button可选择是否显示播放按钮Show Opt Button可选择是否显示控制按钮Show FullScreen Button可选择是否显示全屏按钮ParametersZoomZoom说明:当设置为“Zoom”时,可以缩放播放框的大小,最小播放框为默认大小,最大为999*666 px。设置桥接器无FlowConnector_POST可选择组件桥接器POST请求类型FlowConnector_GET可选择组件桥接器GET请求类型FlowConnector_PUT可选择组件桥接器PUT请求类型FlowConnector_DELETE可选择组件桥接器DELETE请求类型建议测试设置表7 设置详情设置基础说明Custom ConfigWindow TypeSingle ScreenLive Media Type奥看HTTP-FLV,登虹HTMLPlay Back Media Type奥看HTTP-FLV,登虹HTMLSwitch To Live Or Record Mode允许切换ServerLive Url/VideoProxy/0.1.0/livePlayback Url/VideoProxy/0.1.0/playbackPTZ Url/VideoProxy/0.1.0/ptzScreen Capture Url/VideoProxy/0.1.0/live/shotScreen Capture PlayBack Url/VideoProxy/0.1.0/playback/shotGet Video Proxy Config/VideoProxy/0.1.0/getConfigParametersMoveNon-draggingShow HeadshowShow Close ButtonshowShow PlayershowShow ToolBarshowShow SliderhideShow Play ButtonshowShow Opt ButtonshowShow FullScreen ButtonshowZoomZoom设置桥接器无FlowConnector_POSTAPIConnector_POSTFlowConnector_GETAPIConnector_GETFlowConnector_PUTAPIConnector_PUTFlowConnector_DELETEAPIConnector_DELETE依赖表8 依赖#依赖类型依赖对象依赖描述1后台API: camera.direction.post基线默认提供camera.direction.post来操控摄像机。在项目定制中可以替换为其他后台API。动作表9 动作#动作名称动作说明入参1Open Camera Window打开指定摄像机的视频流播放小窗口。Camera:要打开的摄像机信息。包含摄像机的设备ID、摄像机的视频流地址URL。2Close Camera Window关闭指定摄像机的视频流播放小窗口。Camera:要关闭的摄像机信息。
  • [技术干货] 智慧园区业务资产说明之——视频播放(MediaPlayer)(中)
    MediaPlayer组件使用流程MediaPlayer使用流程如下。在调用MediaPlayer组件的组件中写入触发事件语句。创建流式高级页面后,拖入调用MediaPlayer组件的组件及MediaPlayer组件。对组件进行设置。保存,发布页面。传入相应参数,开始播放。以实况播放为例,下面详细介绍如何配置MediaPlayer组件。若未创建APP,创建APP。如:testMediaPlayer。打开已有项目或刚创建的项目testMediaPlayer,点击左侧Page文件夹操作,添加高级页面,填写页面标题,页面路径(填写时页面路径可与页面标题一致)。布局类型选择流式布局。在项目中加入资源依赖VideoJs7.6.1,点击新建资源,在搜索栏输入videoJs(已引入库中VideoJs资源的名称),点击搜索结果,选择新增。在资源列表中显示VideoJs,则资源依赖已添加成功,若在搜索栏中未找到VideoJs资源,则需要添加资源到库中。再重复上述添加步骤。在将调用MediaPlayerWidget的组件(例MediaPlayerTest),写入触发事件语句。点击创建的页面,点击页面左侧自定义组件,将MediaPlayerTest和MediaPlayerWidget分别拖拽至页面中。选择MediaPlayerWidget组件,点击工具栏设置,进行组件设置:设置桥接器设置事件。选择设置事件(以设置start play live为例),点击“”进行设置,进入事件编辑,点击新建动作,选择MediaPlayer,选中对应动作(start play live),点击确定。进行组件设置后,点击“”进行保存发布。点击“”查看页面。功能描述表1 功能描述#功能点详细描述依赖和约束1连接视频源并播放直播视频该组件可以接收外部传入的直播视频流地址,显示一个小窗口来播放视频流。该组件可支持的视频流协议包括:RTSPMP4HTTP-FLVHTML该组件可以同时打开多个小窗口来播放不同源的视频流。该组件可以调整小窗口大小,移动小窗口位置,放大小窗口为全屏。该组件本身不显示。仅显示视频直播小窗口。2控制摄像机该组件可以控制摄像机,包括:控制转动方向(上下左右转动)拉近放远镜头拍摄一张照片控制摄像机,需要设置发送命令的REST接口。如果没有设置则不显示相应控制按钮。
  • [技术干货] 智慧园区业务资产说明之——视频播放(MediaPlayer)(上)
    概述该组件用来播放和控制摄像机。在园区应用中,经常需要在界面上调出某个摄像机的直播视频。适用范围该组件适用于桌面浏览器、平板浏览器、大屏幕展示。暂不适用于手机终端展示(后续将改造为支持手机终端展示)。该组件适用于所有园区类型。功能介绍组件显示界面播放功能实时浏览(单摄像机):通过传入摄像机编码(cameraCode),播放相对应摄像机编码的实时视频。可通过在屏幕进行鼠标拖拽、滑动滚轮及云台控制台,控制摄像机转向及变焦。实时浏览(URL):通过传入URL,播放相对应URL的实时视频。实时浏览(多摄像机):通过传入摄像机编码(cameraCodes),播放相对应摄像机编码的实时视频。仅适用于四屏播放,且最多同时播放四个实时视频。如使用单屏播放,仅播放输入的第一个摄像机编码的实时视频。录像回放:通过传入摄像机编码(cameraCode)、开始时间(startTime)及结束时间(endTime),播放相对应摄像机编码,相对应时间的回放视频。录像回看(url):通过传入URL,播放相对应URL的回放视频。四屏播放功能,可对四屏中任意一屏点击选中,选中屏幕与未选中屏幕功能独立,四屏播放功能见附录。