• [热门活动] 华为云618,年中业务添动力,选择华为云更省心!精选CDN和视频云产品限时低价秒杀0.6折起
    华为云618,年中业务添动力,选择华为云更省心!华为云CDN618正式开启了,这次华为云CDN活动包括新人抢购专区CDN0.6元限时秒杀;企业新用户专区精选企业爆款CDN产品低至4.5折;5700元全场CDN产品通用满减券,可与活动价叠加使用最高折上立减4000元;CDN组合流量包新老同享券后低至0.044元/GB起,更多活动可前往华为云CDN和视频云专场。活动时间:2023年6月1日-2023年6月30日购买地址:cid:link_0一、新人抢购专区CDN全站加速/全时流量包50GB/0.6元/年限时秒杀,每日9:00开抢,优惠仅限一单,更多产品新客优惠请前往CDN和视频云专场。CDN企业新用户专享折扣CDN6:4组合流量包200TB券后低至10033元,优惠仅限一单,限量抢购。二、618大额礼券 ▪ 限时领5700元礼券已解锁!华为云实名认证用户可领全场CDN产品通用新购券!可与活动价同享,折上满减更优惠!三、CDN/全站加速系列,新老同享专区精选多款CDN/全站加速产品及服务,满足您的加速需求。全站加速新品公测价更优6.5折畅购,CDN流量包低至5.36折还可叠加使用满减券,优惠超乎想象!四、云视频系列产品,新老同享专区零硬件成本打造专属视频平台,直播、点播、MPC 限时特惠6折起购,华为云视频直播支持千万级并发,自研拥塞控制算法与智能调度策略,保证超清、流畅的直播效果,直播CDN流量包低至6.5折,华为云新老用户均可参与~五、CDN和点播限时免费试用在华为云官网完成华为云账号注册并实名认证后获得CDN和视频点播各一次的体验资格,每个账号限领一次,先到先得~六、认证或付费抽奖,赢免单! 活动期间用户完成企业认证,或实付金额≥1000元,即可各获得1次抽奖机会,100%中奖! HUAWEI FreeBuds 5等你带回家!
  • [技术干货] 数字站点相关培训赋能课程汇总
    序号课程名称相关产品课程目标课程大纲链接1摄像机APP Store:玩转软件摄像机APP开发SDC通过本课程的学习,了解软件定义摄像机的API接口形态、调用方式和开发流程。第1章 华为软件定义摄像机架构及能力介绍第2章 基于SDC实现HELLO功能应用第3章 Demo演示Link2华为软件定义摄像机模型转换与部署SDC深入了解深度学习算法从开发到部署的流程第1章 如何实现华为软件定义摄像机模型转换第2章 如何快速实现模型部署第3章 算法模型演示Link3软件定义摄像机APP开发入门SDC通过本课程的学习:1、掌握软件定义摄像机服务化接口调用方式2、熟悉demo中模型加载、推理及后处理的流程。3、掌握HoloSens一站式开发平台的使用方法。第1章 软件定义摄像机APP开发第2章 6步助力软件定义摄像机算法便捷上线第3章 AI模型转换为摄像机可执行的文件Link4HoloSens IVS1800背心对接详解IVS1800通过学习本课程,可以了解Holosens IVS1800产品基本能力;理解Holosens IVS1800北向接口。包括:了解北向接口是什么,理解常见对接场景接口调用流程,掌握接口测试集的使用方法,掌握常见对接问题处理思路,了解北向对接资料套件的获取方式。第1章 Holosens IVS1800产品基本能力第2章 HoloSens IVS1800北向接口详解第3章 HoloSens IVS1800测试集使用方法第4章 Holosens IVS1800常见对接问题处理FAQ第5章 Holosens IVS1800资料套件获取方式Link5HoloSens IVS3800北向对接详解IVS3800通过学习本课程,了解HoloSens IVS3800产品基本能力;理解HoloSens IVS3800北向接口,包括:了解北向接口是什么,理解常见对接场景接口调用流程,掌握接口测试集的使用方法,掌握常见对接问题处理思路,了解北向对接资料套件的获取方式。第一章 HoloSens IVS3800产品介绍第二章 HoloSens IVS3800北向接口详解第三章 HoloSens IVS3800测试集使用方法第四章 HoloSens IVS3800北向Demo使用指导第五章 HoloSens IVS3800北向对接FAQ第六章 HoloSens IVS3800资料套件获取Link6揭秘MessageFlow,物联APP开发管理利器MessageFlow通过学习本课程,了解什么是MessageFlow并掌握MessageFlow的第三方组件开发和APP编排。第1章 整体架构和功能模块介绍第2章 基础组件和APP开发流程介绍第3章 第三方组件和APP开发第4章 边侧引擎介绍Link7华为云IoT边缘IoTEdge专业服务IoTEdge通过本课程的学习,使学员:1、学习华为云IoT边缘IoT edge的技术基础知识、技术架构、功能等;2、了解华为云IoT边缘IoT edge基础概念,玩转IoT edge;3、了解华为云IoT边缘IoT edge的特色功能和优势等;4、学习如何基于华为云IoT边缘IoT edge完成项目交付。第1章 华为云IoT边缘IoT edge产品介绍第2章 华为云IoT边缘IoT edge产品规划设计介绍第3章 华为云IoT边缘IoT edge产品集成交付服务介绍第4章 华为云IoT边缘IoT edge产品运维服务介绍Link8华为云IoT设备接入IoTDA专业服务IoTDA通过学习本课程,可以使学员:1、学习华为云物联网设备接入服务的相关特性及应用场景等,并掌握其购买及使用方法;2、了解华为云物联网设备接入服务功能、玩转物联网平台;3、了解华为云物联网设备接入业务开发流程,项目交付流程;第1章 设备接入IoT DA产品介绍第2章 设备接入IoT DA规划设计实施介绍第3章 设备接入IoT DA集成交付服务介绍第4章 设备接入IoT DA运维服务介绍Link9华为数据库产品GaussDB介绍GaussDB了解数据库管理工作主要内容及数据库相关基础知识。1. 华为GaussDB 数据库总览2. 关系型数据库产品介绍3. NoSQL 数据库产品介绍Link10待更新    
  • [问题求助] 摄像头实时视频模拟
    要做一个演示页面,没有接入真实摄像头,想通过页面的视频播放组件播放一段视频,来模拟真实环境下的摄像头实时播放,可以通过什么方式实现?
  • 华为云视频直播 8点-18点流量大放“价”,费用降低40%,超好用!
    随着网络基础设施、云计算技术等不断发展,人们信息获取方式已大多从文字、图片等转变为视频直播的方式传递。 且互联网内容品质要求越来越高,巨大的网络分发需求消耗直播网络带宽越来越大,客户面临着较大的带宽成本压力。为有效地实现降本增效,让华为云视频直播普惠大众。华为云推出视频直播分时段流量包(8点-18点),是华为云针对08:00-18:00的直播闲时流量,推出的特惠资源包。现华为云开年采购季,云视频专场特惠进行中,视频直播闲时流量包8折,新用户还可领取专享610元大额礼券,可享折上9折优惠,活动时间:2023年3月1日-3月31日,更多视频服务活动请前往云视频专场~“直播CDN闲时流量包”是视频直播服务一种全新的计费方式,白天(8点-18点)单独计算流量消费,让客户增加忙闲时运营能力,不断控制并降低成本。对于带货直播、旅游直播、视频监控、在线教育、政企直播、赛事直播、健身直播等行业的直播业务,白天也有业务时段,错峰使用视频直播服务是最划算不过了!这样可以花费更少的钱使用同样的视频直播加速服务,使用分时段流量包一个月大概可以省40%的费用,实现了业务效率和用户体验双重提升。分时段流量包适用时段为北京时间00:80-18:00,白天都是大家学习、工作最繁忙的时段,相对大家的忙时视频直播正是闲时时段哦!华为云视频直播服务为行业提供高并发、低延迟、超清流畅、安全可靠的端到端直播解决方案。助力企业提高客户转化率,且拥有超低时延的直播能力,让主播和观众能够及时获得实时信息,提升直播实时体验。华为云视频直播服务全球3000+节点,全运营商覆盖确保接入质量稳定;海量带宽储备,全网带宽储备量高达100Tbps以上;高清低码,最大可节省30%以上流量和存储的实时转码功能;全天候全网健康度管理,基于服务质量智能精准调度,可靠稳定,支持千万级并发,自研拥塞控制算法与智能调度策略,保证超清、流畅的直播效果,为直播业务提供更高质量的加速服务,欢迎更多客户上华为云官网“开年采购季”云视频专场了解更多信息。[点这里]
  • [MindX SDK] 视频转码v2案例分享
    MindX SDK -- 基于Mxbase V2接口的Media Codec1 案例概述1.1 概要描述基于MindX SDK mxVision 3.0RC3 开发Media Codec的程序。本程序采用c++开发,使用MxBase V2接口。通过FFmpeg的拉流操作对输入的视频数据进行处理,将拉流后的帧数据进行视频解码处理为YUV格式图片,并将处理过的帧图片进行缩放到要求的尺寸。然后将缩放过的帧图片进行视频编码处理。最后,将编码后得到的数据写入文件,可以与原视频进行对比。注意需要自行准备视频进行验证。视频转码不止可以进行一路的视频转码,还可以进行多路视频转码,提高转码效率。程序输入:任意.h264格式或者.264格式视频程序输出:输出经过缩放的.h264格式或者.264格式的视频案例获取地址:cid:link_21.2 模型介绍视频转码是实现将视频解码、缩放、编码的流程。视频编码又称为视频压缩,伴随着用户对高清视频的需求量的增加,视频多媒体的视频数据量也在不断加大。如果未经压缩,这些视频很难应用于实际的存储和传输。而视频中是有很多冗余信息的,以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号。以4:2:2的采样频率为例,Y信号采用13.5MHz,色度信号U和V采用6.75MHz采样,采样信号以8bit量化,则可以计算出数字视频的码率为:13.58 + 6.758 + 6.75*8= 216Mbit/s。如此大的数据量如果直接进行存储或传输将会遇到很大困难,因此必须采用压缩技术以减少码率。1.3 实现流程1、基础环境:Ascend 310、MindXSDK 、Ascend-CANN-toolkit 2、测试视频准备:准备.h264格式或者.264格式的测试视频 3、业务流程编排与配置 4、V2接口c++推理流程代码开发 5.多路视频转码相应的脚本开发1.4 特性及适用场景MediaCodecV2是基于v2接口的视频转码,适用于.h264格式或者.264格式的视频进行视频转码, 在帧率为25fps的视频上,MediaCodecV2的性能和精度可以达到和v1接口一致,但是在其他的情况下的效果不够理想。2 软件方案介绍2.1 项目方案架构介绍本系统设计了不同的功能模块。主要流程为:对视频文件进行拉流处理,获取流中的帧信息,帧信息传入视频解码的V2接口中,利用imageprocessor中的resizeV2接口,对帧的大小进行调整,最后利用视频编码的v2接口,对调整后的帧进行视频编码处理,得到转码后的视频文件。各模块功能描述如表2.1所示:表2.1 系统方案中各模块功能:V1:序号子系统功能描述1数据输入调用MindX SDK的mxpi_rtspsrc对输入视频数据进行拉流处理2视频解码调用MindX SDK的mxpi_videodecoder,对输入的数据进行解码3调整大小调用MindX SDK的mxpi_imageresize,对输入的数据的大小进行调整4视频编码调用MindX SDK的mxpi_videoencoder,对调整后的数据进行编码处理V2:序号子系统功能描述1数据输入调用ffmpeg的相关接口,对视频进行拉流处理2视频解码调用VideoDecoder类提供的视频解码V2接口Decode,对输入的数据进行解码3调整大小调用imageprocessor类提供的图像尺寸大小变换插件resize,对输入的数据的大小进行调整4视频编码调用VideoEncoder类提供的视频解码V2接口Encode,对调整后的数据进行编码处理5结果保存将视频转码后的数据保存为.h264格式或者.264格式的文件2.2 代码目录结构与说明本工程名称为MediaCodecV2,工程目录如下图所示:. | |-------- logs // 存放视频转码的log信息 | |---- .keep |-------- mxbase | |---- CMakeLists.txt | |---- MediaCodecV2.cpp // 视频转码的源文件 | |---- MediaCodecV2.h // 视频转码的头文件 | |---- build.sh // 编译脚本 | |---- MainV2.h | |---- run.sh // 运行多路视频转码的脚本 | |---- show.sh // 运行显示log信息的脚本 | |---- stop.sh // 停止多路视频转码的脚本 |-------- out // 存放输出结果 | |---- .keep |-------- test | |---- .keep // 测试视频(需自行准备) |-------- README.md3 开发准备3.1 环境依赖说明推荐系统为ubuntu 18.04,环境依赖软件和版本如下表:软件版本说明获取方式mxVision3.0RC3mxVision软件包链接Ascend-CANN-toolkit5.1.RC1Ascend-cann-toolkit开发套件包链接操作系统Ubuntu 18.04操作系统Ubuntu官网获取ffmpegffmpeg 4.2.1视频音频处理工具包链接3.2 安装FFmpeg下载完解压,按以下命令编译即可./configure --prefix=/usr/local/ffmpeg --enable-shared make -j make install3.3 环境搭建3.2.1 环境变量设置# Mind SDK环境变量: .${SDK-path}/set_env.sh # CANN环境变量: .${ascend-toolkit-path}/set_env.sh # FFmpeg环境变量: export LD_LIBRARY_PATH=${FFmpeg安装路径}/lib:$LD_LIBRARY_PATH # 环境变量介绍 SDK-path:SDK mxVision安装路径 ascend-toolkit-path:CANN安装路径 envmxbase文件夹中的CMakeLists.txt文件中涉及到上面相关的环境变量,也需要在文件中进行相应的配置。4 转码流程开发实现4.1 V2接口编排 decode # 视频解码 resize # 图像缩放 encode # 视频编码(视频生成)4.2 主程序开发1、初始化V2接口。2、视频拉流。3、视频解码。4、图像缩放。5、视频编码。6、保存转码视频4.3 参数调节参数名称参数介绍修改方法默认值filepath测试视频路径在运行可执行命令或run.sh脚本中修改为具体的路径名称即可../test/test1.264outfile输出视频路径在运行可执行命令或run.sh脚本中修改为具体的路径名称即可../out/out.h264RESIZE_WIDTHresize的宽在MediaCodecV2.cpp文件中修改为具体的数值即可1280RESIZE_HEIGHTresize的高在python/main_v2.py文件中修改为具体的路径名称即可7205 编译与运行5.1 V2接口运行准备一个测试视频,置于 test 文件夹中(仅支持.h64格式或者.64格式,且帧率为25fps)进入mxbase目录代码编译:参考mxbase/build.sh脚本,将c++代码进行编译进入mxbase目录,键入执行指令,编译代码:bash build.sh然后会在mxbase目录下,生成可执行文件mediacodecV2注意:代码中使用的BlockingQueue类是使用的开源代码,需要自行添加代码所在位置:cid:link_0输入执行指令,发起视频转码性能测试:./mediacodecV2 ${测试图片路径} ${输出结果路径} 例如: ./mediacodecV2 ../test/1080p.h264 ../out/out.h264执行完毕后,会将程序输出的视频转码的结果,保存在工程目录下out中 (保证out文件在执行命令前存在)5.2 脚本运行5.2.1 运行多路通过计算视频编码的帧率和原视频的帧率进行对比。1)准备测试视频:自行下载.h264格式的视频。2)进入mxbase目录3)在run.sh 脚本,可修改测试视频的路径 nohup ./mediacodecV2 ${test_path}/xxx.264 ${out_path}/output${i}.264 > ${log_path}/output${i}.log 2>&1 & //xxx.264为自行准备的测试视频 // output${i}.264 后缀名根据准备的测试视频进行修改,.h264或者.264。4)运行run.sh 脚本,得到测试视频的输出和log信息键入执行指令,对测试视频发起多路转码验证测试:bash run.sh ${运行路数} 例如: bash run.sh 5执行完毕后,会在out和logs文件夹输出处理过的视频和log文件(转码时间在一定范围内浮动)5.2.2 log信息显示1)进入mxbase目录2)运行show.sh 脚本,得到测试视频的log信息注意:运行多路视频转码后,需等待一段时间,才能显示完整的log信息,否则只显示每秒的编码帧率,因为视频转码会根据不同的转码视频的大小运行不同的时间。键入执行指令,展示log文件信息:bash show.sh执行完毕后,会在控制台输出frame的resize大小、编码帧率和推理时间(推理时间在一定范围内浮动)5.2.3 停止多路视频转码1)进入工程目录2)运行stop.sh 脚本,得到测试视频的log信息键入执行指令,停止多路视频转码:bash stop.sh执行完毕后,会在控制台显示停止的多路转码的情况5.3 精度+性能验证5.3.1 V2精度+性能验证视频转码的路数和resize的宽高有关系,所以为了保证多路转码过程中,编码帧率保持稳定,所以在进行多路转码的时候,需要修改MediaCodecV2.cpp中的RESIZE_WIDTH和RESIZE_HEIGHT。不同的转码格式可以使用不同的路数进行转码,现在满足如下性能:格式路数D1(height: 480 width: 720)10CIF(height: 288 width: 352)16运行10路视频转码:步骤1:在MediaCodecV2.cpp中分别修改RESIZE_WIDTH和RESIZE_HEIGHT为720和480,将test1.264的视频转码为D1格式的视频 const uint32_t RESIZE_WIDTH = 720; const uint32_t RESIZE_HEIGHT = 480;步骤2:编译脚本步骤3:运行多路视频转码键入执行指令,对test1.264的测试视频发起精度及性能验证测试:bash build.sh bash run.sh ${运行路数} 例如: bash run.sh 10 bash show.sh //显示log结果执行完毕后,会在控制台输出10路log信息,显示frame的resize大小、编码帧率和推理时间(推理时间在一定范围内浮动)5.2 V1精度+性能验证v1的参数配置方式可以参考下方链接:参考链接:cid:link_1运行10路视频转码:步骤1:在create_pipeline.sh中分别修改width和height为720和480,将test1.264的视频转码为D1格式的视频,同时在rtsp_array配置10路流地址。步骤2:运行create_pipeline.sh脚本,在pipeline文件夹中,得到多个pipline文件步骤3:运行多路视频转码 键入执行指令,对test1.264的测试视频发起精度及性能验证测试:./script/create_pipeline.sh ./script/run.sh ${运行路数} 例如: ./script/run.sh 10 ./script/stop.sh //显示log结果执行完毕后,会在控制台输出10路的输出转码的帧率展示的log信息,输出如下结果:5.3 验证结论对比V1和V2的输出结果,可以得到以下结论:精度:V2接口和v1接口一样,根据不同转码格式,运行相同路数的视频转码,输出转码视频的格式分辨率和转码格式的分辨率保持一致,精度达标。性能:原视频帧率为25fps,多路视频转码过程中,每秒的编码帧率一直保持在25fps左右,平均帧率均在25.2fps左右,转码前后帧率均为25fps,性能达标。结论:V2接口的性能和精度达标。注意:log信息最后一秒的帧率可能不满足25fp,但是不影响性能和结果。6 常见问题6.1 路径问题问题描述:提示 Couldn't open input stream ../test/1080p.h264.解决方案:输入的视频不存在,检查输入路径是否正确。6.2 输出问题6.2.1 运行命令前没有新建out文件夹问题描述:提示failed to open file.解决方案:运行命令前新建out文件夹。6.2.2 运行命令没有输入输出路径问题描述:提示please input output path, such as ../out/out_test.h264.解决方案:运行命令时输入输出路径。6.3 格式问题问题描述:提示Couldn't decode mp4 file.解决方案:将输入视频更换为.h264格式或者.264格式视频。6.4 环境配置问题问题描述:提示类似error while loading shared libraries.so.3:cannot open shared object file.解决方案:在安装好FFmpeg之后,导入相关的环境变量。vim ~/.bashrc export MX_SDK_HOME=${SDK安装路径} export LD_LIBRARY_PATH=${FFmpeg安装路径}/lib:$LD_LIBRARY_PATH
  • [交流吐槽] 产品建议
    希望可以支持QQ微信hms登录,希望支持华为支付,希望可以使用字幕和自动录屏文字记录
  • [问题求助] ROMA调用奥看转码平台(混合云)获取实况播放地址,拿到的播流地址,放不出视频。(需加急帮忙看看)
    ROMA调用奥看转码平台(混合云)获取实况播放地址,拿到的播流地址,放不出视频,麻烦帮忙看看。
  • [热门活动] 给网站加个速,原来很简单!
     【CDN828最新活动】 【CDN免费流量包】大家访问网络上的资料,例如网站上的图片,视频 基本都是秒开的, 有没有想过这是为什么?如果全球用户,都去访问一台服务器,或者一个服务器集群,那么无论带宽多大,都要挤爆。所以 这个时候就需要使用CDN(Content Delivery Network)。估计很多录友都听说过这个词,但又不知道具体是做什么的,其实CDN就是一个内容分发的网络。CDN的原理是提前将内容(静态资源、视频、图片)提前加载到用户所在地区附近的服务器节点,这样用户就可以就近访问。现在无论是网站还是APP基本都离不开CDN加速。选哪家厂商的CDN因为有了云计算,所以很多技术应用 其实对我们来说都是唾手可得。CDN这种服务,我们也可以很方便的使用,给网站加速几乎什么都不用做,配置一下就可以了。那么使用哪家厂商的CDN呢?华为云是一个特别靠谱的选择。Why 华为云CDN?强大分发,高效下载有2000+中国大陆加速节点,涵盖了电信、联通、移动、教育网等主流运营商,以及多家中小型运营商。800+中国大陆境外加速节点。覆盖130多个国家/地区。保证将用户请求精准调度至最优边缘节点,提供有效且稳定的加速效果。有充足的带宽资源,全网带宽输出能力超过150Tbps。联动OBS,为源站减压华为云CDN发挥整体解决方案的优势采用CDN+OBS(对象存储)方案。用户访问资源的过程是这样的:该解决方案自动化完成OBS与CDN服务的配置与关联。我们可以把静态资源传到 OBS(对象存储服务器),然后华为云将 OBS数据 缓存到CDN。如果用户访问的话,将会访问,就近的CDN服务器,从而加快访问速度。而且上传新文件到OBS,可以自动触发CDN预热,更改OBS里的文件,也会自动触发CDN刷新。这么做有什么优势呢?低成本:CDN加速OBS桶资源后,资源缓存在CDN节点,无需通过公网带宽进行下载,有效降低带宽成本。高效率:华为云CDN具有加速资源丰富、节点分布广泛优势,保证将用户请求精准调度至较优边缘节点,提供有效且稳定的加速效果。一键部署:提供一键启动部署,5分钟即可自动化快速完成解决方案的部署。适用于如下场景:文件下载:通过HTTP/HTTPS提供文件下载业务的网站、游戏客户端、APP商店等应用或服务。音视频点播:在线教育类网站、在线视频网站、互联网电视点播平台、音乐视频点播APP等。图片素材加载:门户网站、电商平台、资讯APP、UGC应用(User Generated Content,用户原创内容)等。智能缓存,降本增效华为云在注重提升用户体验的同时也注重效率的提升。CDN边缘节点命中率的提升能大大降低回源频率和回源带宽占用。如图:华为云CDN智能缓存技术加上多级缓存调度,实时跟踪全局热度,通过超高速、大容量SSD存储,提高缓存命中率,使用户体验更优,同时还降低了回源带宽成本。华为云CDN+OBS案例火绒安全是一家专注、纯粹的安全公司,致力于在终端安全领域,为用户提供专业的产品和专注的服务。火绒安全使用了华为云CDN+OBS方案,OBS作为备份源站,CDN边缘节点从OBS获取数据,使用户请求无需回源获取资源,大大降低火绒安全源站压力,节约回源带宽成本,还保护了源站IP地址不外露。此外,使用华为云CDN闲时分时段计费模式,也使得凌晨和白天的CDN费用降低,满足了火绒安全在业务高峰时段降成本的要求。简易接入,小白上手最关键的是,华为云CDN接入方式真的非常简单,域名管理都是自助化,非常适合小白上手。建议大家直接去华为云CDN官网去看具体使用方法。现在华为云也是把CDN做到开箱即用的水平。用上华为云之后,面对涌入潮水的用户访问,你的网站依然稳得很。华为云828特惠华为云最近推出 828 云产品特惠活动,8月28日,华为云与生态伙伴联合发起首届828 企业节。为加速中小企业转型升级,华为云开启828特惠活动,众多产品以优惠折扣,提供给中小企业,减轻他们数字投入成本。华为云CDN快速安全更可靠,性能彪悍不怕测, CDN中国大陆全时流量包的价格,低至0.05元/GB,新老同享限时抢购中~ 优惠活动,推荐大家去官网查看,828活动确实很给力:
  • [Atlas500] 如何查询硬件编解码的资源使用率
    在Atlas500上有没有什么命令可以查看硬件编解码的使用率吗? npu-smi上可以查看npu的资源,内存的资源,但查不了硬件编解码的资源。请问有类似的命令查看硬件编解码资源吗?
  • [问题求助] 云速建站怎么添加视频?
  • [问题求助] 鲲鹏适配的视频转码和文件转换问题
    【功能模块】【操作步骤&问题现象】1、视频转码,基于ffmpeg软件,转码工具是基于win环境的2、文件转换,例如xlxs转pdf,基于openOffice软件,该软件无法适配麒麟系统请问有什么解决办法呢?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • 【SDK案例系列 01】基于MindX SDK的视频转码应用案例详解
    源码链接: cid:link_1一、使用live555搭建 rtsp server(1)安装live555wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz tar xzf live555-latest.tar.gz cd live ./genMakefiles linux-64bit #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的 make(2)启动rtsp servercd mediaServer ./live555MediaServer(3)验证rtsp server是否正常下面上传文件到 live555MediaServer 同级目录[root@localhost mediaServer]# [root@localhost mediaServer]# ls COPYING DynamicRTSPServer.cpp DynamicRTSPServer.o live555MediaServer.cpp Makefile Makefile.tail video.264 COPYING.LESSER DynamicRTSPServer.hh live555MediaServer live555MediaServer.o Makefile.head version.hh [root@localhost mediaServer]# 我上传了一个 video.264 那么,使用http协议访问的地址就行 http://你的ip:8000/文件名例:http://127.0.0.1:8000/video.264;使用rtsp协议访问的地址 http://你的ip/文件名例:rtsp://127.0.0.1/video.264然后请准备一个流媒体播放器,我下载的是vlc播放器输入测试地址:输入测试地址后点击播放,播放的时候能看到视频,说明rtsp server功能正常。二、安装昇腾驱动先安装昇腾驱动,昇腾驱动请参考各个产品安装手册,安装完成后npu-smi info 显示安装成功[root@localhost ~]# [root@localhost ~]# npu-smi info +-------------------------------------------------------------------------------------------------+ | npu-smi 22.0.2 Version: 22.0.2 | +------------------+--------------+---------------------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) | | Chip Device | Bus-Id | AICore(%) Memory-Usage(MB) | +==================+==============+===============================================================+ | 1 310 | OK | 12.8 45 0 / 0 | | 0 0 | 0000:05:00.0 | 0 2621 / 8192 | +==================+==============+===============================================================+三、安装MindX SDK > mxVision(1)MindX SDK需要通过官网获取。(2)mxVision说明手册:cid:link_0(3)安装MindX SDK./Ascend-mindxsdk-mxvision_3.0.RC2_linux-aarch64.run --install --install-path=/usr/local/sdk_home--install-path为指定安装的路径(4)安装成功后会提示如下信息Installing collected packages:mindx Successfully installed mindx-3.0.RC2(5)安装成功后在对应目录下查看,能看到mxVision[root@localhost sdk_home]# [root@localhost sdk_home]# pwd /usr/local/sdk_home [root@localhost sdk_home]# ls mxVision mxVision-3.0.RC2 [root@localhost sdk_home]# [root@localhost sdk_home]#(6)MindX SDK使用中需要用到OSD功能,安装后需要执行以下命令,生成om文件bash /usr/local/sdk_home/mxVision/operators/opencvosd/generate_osd_om.sh执行成功后,显示如下效果[root@localhost ~]# bash /usr/local/sdk_home/mxVision/operators/opencvosd/generate_osd_om.sh ASCEND_HOME is set to /usr/local/Ascend by user Set ASCEND_VERSION to the default value:ascend-toolkit/latest ATC start working now,please wait for a moment. ATC run success, welcome to the next use. The model has been successfully converted to om,please get it under /usr/local/sdk_home/mxVision/operators/opencvosd. [root@localhost ~]# (9)安装完MindX SDK后,需要配置环境变量.bashrc文件添加以下环境变量# 安装mxVision时配置 . /usr/local/sdk_home/mxVision/set_env.sh用户也可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:a) 以运行用户在任意目录下执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后一行后面添加上述内容。b) 执行:wq!命令保存文件并退出。c) 执行source ~/.bashrc命令使其立即生效。四、使用video_transcoding1、修改run_cpp.sh中MX_SDK_HOME为MindX SDK安装目录export MX_SDK_HOME=/usr/local/sdk_home/mxVision2、修改data/pipeline/test.pipeline中rtspUrl,rtspUrl修改为拉取视频流的链接"rtspUrl": "rtsp://127.0.0.1/video.264"3、修改run_cpp.sh权限chmod +x run_cpp.sh4、执行run_cpp.sh./run_cpp.sh5、目录下会生成out.h264[root@localhost video_transcoding]# [root@localhost video_transcoding]# ls README.md build cpp data main out.h264 run_cpp.sh [root@localhost video_transcoding]# 五、video_transcoding详解1、技术流程图视频解码:调用硬件(DVPP)解码能力,转换为 YUV 格式图像数据。图像缩放:基于硬件(DVPP)图像加速处理能力,将图像缩放到一定尺寸大小。视频编码:调用硬件(DVPP)编码能力,将 YUV 格式的图像数据转换为 H264 视频流。2、pipeline详解{ "encoder": { "stream_config": { ##设置业务流在哪个芯片上处理 "deviceId": "0" }, "mxpi_rtspsrc0": { ##拉取视频流 "props": { "rtspUrl": "rtsp://127.0.0.1/video.264", "channelId": "0" }, "factory": "mxpi_rtspsrc", "next": "queue0" }, "queue0":{ ##队列缓存 "props":{ "max-size-buffers":"50" }, "factory":"queue", "next": "mxpi_videodecoder0" }, "mxpi_videodecoder0": { ##视频解码(纯硬件) "props": { "inputVideoFormat": "H264", "outputImageFormat": "YUV420SP_NV12", "vdecChannelId": "0" }, "factory": "mxpi_videodecoder", "next": "queue1" }, "queue1":{ ##队列缓存 "props":{ "max-size-buffers":"50" }, "factory":"queue", "next": "mxpi_imageresize0" }, "mxpi_imageresize0": { ##视频缩放(纯硬件) "props": { "dataSource": "mxpi_videodecoder0", "resizeHeight": "288", "resizeWidth": "352" }, "factory": "mxpi_imageresize", "next": "queue2" }, "queue2":{ ##队列缓存 "props":{ "max-size-buffers":"50" }, "factory":"queue", "next": "mxpi_videoencoder0" }, "mxpi_videoencoder0": { ##视频编码(纯硬件) "props": { "dataSource": "mxpi_imageresize0", "imageHeight": "288", "imageWidth": "352", "inputFormat": "YUV420SP_NV12", "outputFormat": "H264", "fps": "1", "iFrameInterval": "50" }, "factory": "mxpi_videoencoder", "next": "queue3" }, "queue3":{ ##队列缓存 "props":{ "max-size-buffers":"50" }, "factory":"queue", "next": "appsink0" }, "appsink0": { ##视频流输出 "factory": "appsink" } } }3、源码详解namespace { std::string ReadPipelineConfig(const std::string& pipelineConfigPath) // 读取pipeline配置文件 { std::ifstream file(pipelineConfigPath.c_str(), std::ifstream::binary); if (!file) { LogError << pipelineConfigPath <<" file dose not exist."; return ""; } file.seekg(0, std::ifstream::end); uint32_t fileSize = file.tellg(); file.seekg(0); std::unique_ptr<char[]> data(new char[fileSize]); file.read(data.get(), fileSize); file.close(); std::string pipelineConfig(data.get(), fileSize); return pipelineConfig; } } int main(int argc, char* argv[]) { // 读取pipeline配置文件 std::string pipelineConfigPath = "data/pipeline/test.pipeline"; std::string pipelineConfig = ReadPipelineConfig(pipelineConfigPath); if (pipelineConfig == "") { LogError << "Read pipeline failed."; return APP_ERR_COMM_INIT_FAIL; } // 初始化 stream manager 资源 MxStream::MxStreamManager mxStreamManager; APP_ERROR ret = mxStreamManager.InitManager(); if (ret != APP_ERR_OK) { LogError << "Failed to init Stream manager, ret = " << ret << "."; return ret; } // 根据指定的pipeline配置创建Stream ret = mxStreamManager.CreateMultipleStreams(pipelineConfig); if (ret != APP_ERR_OK) { LogError << "Failed to create Stream, ret = " << ret << "."; return ret; } // 创建空的h264文件 FILE *fp = fopen("./out.h264", "wb"); if (fp == nullptr) { LogError << "Failed to open file."; return APP_ERR_COMM_OPEN_FAIL; } bool m_bFoundFirstIDR = false; bool bIsIDR = false; uint32_t frameCount = 0; uint32_t MaxframeCount = 1000; std::string streamName = "encoder"; int inPluginId = 0; while (1) { // 获取视频编码后的视频帧 MxStream::MxstDataOutput* output = mxStreamManager.GetResult(streamName, inPluginId); if (output == nullptr) { LogError << "Failed to get pipeline output."; return ret; } // H264视频格式,第一帧写入必须是IDR帧 bIsIDR = (output->dataSize > 1); if(!m_bFoundFirstIDR) { if(!bIsIDR) { continue; } else { m_bFoundFirstIDR = true; } } // 把视频编码后的数据帧写入h264文件 if (fwrite(output->dataPtr, output->dataSize, 1, fp) != 1) { LogInfo << "write frame to file fail"; } frameCount++; if (frameCount > MaxframeCount) { LogInfo << "write frame to file done"; break; } delete output; } // 关闭h264文件 fclose(fp); // 销毁Streams mxStreamManager.DestroyAllStreams(); return 0; }
  • 短视频转码加速
    短视频行业的内容去头部化趋势较为明显,而短视频内容的永久存储又给业务的运营成本带来较大的压力。所以,针对短视频的压缩可以大幅降低短视频平台OPEX。FPGA视频转码加速服务可以高效的实现复杂编码算法,提升视频压缩比和压缩效率。优势2+倍性能;2+倍能耗比通过实测,FP1单卡实例,可以支持路4路720P30(H.265),12路720P30(H.264)为同等CPU虚拟机规格的x倍。同时实现2+倍的能耗比降低。灵活可编程与ASIC硬件相比,FPGA灵活可编程,非常适合当前编码标准不断变化的情况下,进行编码算法的硬件化。用户可以根据需要,灵活部署H.264,H.265,以及下一代的AV1算法。弹性可伸缩相对于自建数据中心的编码服务器,FPGA视频编码加速云服务,可以更好的支持客户在高峰时段进行弹性扩容,将业务的突发流量,部署在云端进行编码加速。
  • FPGA视频转码加速服务
    FPGA视频转码加速服务支持H.265,H.264编码标准,提供高画质、高密度、低时延等档位的FPGA硬件编码器,支持直播,点播,短视频等场景,满足客户不同的视频编码加速需求。
  • [教程] 利用函数服务对新上传的OBS对象进行视频转码
    1      简介利用华为云的媒体转码(MPC)服务可以对OBS桶中的视频对象转码为适应各种终端(PC、TC、Phone等)播放的格式,同时华为云的函数工作流(FunctionGraph)服务,通过设定新对象上传事件触发视频转码函数。2      效果展示新建一个北京区域的OBS桶obs-chongchong-mpc,并新建两个文件夹,video-input1/ 存放新上传的源视频,video-output1/ 存放转码后的目标视频(目标格式为m3u8)。然后向video-input1/ 中上传两个mp4结尾的源视频文件。约1分钟后,会在video-output1/ 中生成这两个源视频文件转码后的目标视频文件夹(子目录为源视频对象的文件路径命名)。3      详细操作步骤3.1      创建北京一区域的OBS桶目前媒体转码MPC服务中视频转码功能只支持北京一,所以目前暂时只能使用北京一区域的OBS桶。登录华为云OBS控制台界面,这里举例新建obs-chongchong-mpc为名称的北京一区域OBS桶,并在上面新建两个文件夹,video-input1/ 存放新上传的源视频,video-output1/ 存放转码后的目标视频。注:如果需要转换多种格式的源视频,需要添加多个后缀不同的事件通知。 3.2      配置媒体转码MPC服务登录华为云MPC控制台界面,选择北京一区域,在“云资源授权---桶授权”页签下找到3.1中新建的obs-chongchong-mpc 桶,并点击授权,使之变成已授权的状态。3.3      配置消息通知SMN服务登录华为云SMN控制台界面,选择北京一区域,在“主题管理---主题”页签点击“创建主题”按钮生成名称为TestTopicMsg 的主题。     创建好以后,点击TestTopicMsg主题,进入到该“主题详情”页面。      点击“设置主题策略”按钮,选中“可发布消息的服务”列表中的OBS服务和MPC服务,并点击确定,这样这两个服务才可以触发此消息通知主题。之后回到3.1中创建的OBS桶中,创建消息通知事件,进入到桶详情界面,在“事件通知”页签下点击“创建”按钮,在弹出的“创建事件通知”对话框中填写消息信息:事件通知名称输入:(自定义)事件选择:“ObjectCreated”前缀输入:“video-input1/”(步骤3.1中video-input1定义的源视频上传目录)后缀输入:“.mp4”(设定自己需要进行转码的视频格式后缀)通知类型中SMN主题,选择刚创建的北京一TestTopicMsg的SMN主题。     同理再创建后缀为.avi的事件通知,如下图所示:注:如果需要转换多种格式的源视频,需要添加多个后缀不同的事件通知。3.4      创建统一身份认证IAM服务委托登录华为云IAM控制台界面,在“委托”页签点击“创建委托”按钮,弹出“创建委托”界面。填写委托信息:委托名称输入:“fgs_trust” (自定义)委托类型选择:“云服务”云服务选择:“FunctionGraph”持续时间选择:“永久”权限选择:分别修改“全局服务>全局”、“全局服务>对象存储服务”、“华北-北京一>cn-north-1”的权限集,选择“基本”。信息填写完毕后,点击“确定”按钮即创建成功。3.5      创建函数工作流FunctionGraph服务函数登录华为云FunctionGraph控制台界面,选择北京一区域,在“函数---函数列表”页签点击“创建函数”按钮,弹出“创建委托”界面。填写函数信息:函数名称输入:“JavaTest”所属应用选择:“default”委托名称选择:“fg-trust”(选择3.4章节创建的IAM委托名称)运行时语言选择:“Java8”函数执行入口输入:com.huawei.demo.Transcoding.smnTest代码上传方式,选择文件本地MPCTest.zip进行上传(MPCTest.zip为编译后的JAVA包,需要先下载到本地再上传,下载地址:https://obs-tools.obs.cn-north-1.myhuaweicloud.com/zdh/MPCTest.zip)。信息填写完毕后,点击“创建函数”按钮即创建成功。     创建好以后,在“函数列表”页面,点击JavaTest函数,进入到该详情页面。      选择“配置”页面,配置相关参数,内存选择256M,执行超时时间填写10,环境变量需要填写2个键:pathDst键的值为3.1中配置的存放转码后目标视频目录video-output1/,templateID键的值为MPC媒体转码平台的模板ID,此处填写模板ID为7000570的MPC预置视频转码模板,更多的模板设置请参考4.1章节。     选择“触发器”页面,订阅SMN消息主题,触发器类型选择“消息队列服务(SMN)”,主题名称选择3.3创建的TestTopicMsg 消息主题,点击“确定按钮”,最终再点击下右上角的“保存”按钮,将所有的函数配置进行保存。     之后向3.1中的OBS桶video-input1目录中上传mp4和avi为结尾的视频对象时,都会相应转换到目标目录video-output1中,效果查看2章节的展示。4      注意事项4.1      MPC媒体转码平台的模板ID的选择3.5章节中的templateID键的值为MPC媒体转码平台的模板ID,模板ID来自两种,一种是系统预置模板(由于系统预置模板是根据分辨率、码率等做的最佳配置,所以建议优先使用系统预置模板),另一各是自定义模板和模板组(如何创建,参考链接:https://support.huaweicloud.com/usermanual-mpc/mpc010008.html)。本文3章节中采用的是系统预置模板,模板ID为7000570。5      附录相关控制台链接:OBS控制台:https://storage.huaweicloud.com/obsMPC控制台:https://console.huaweicloud.com/mpcSMN控制台:https://console.huaweicloud.com/smnIAM控制台:https://console.huaweicloud.com/iamFunctionGraph控制台:https://console.huaweicloud.com/ functiongraph