您的位置:首页 > 移动互联

OpenHarmony新音视频引擎——HiStreamer(OpenHarmony3.0线上发布会)

发布时间:2017-03-03 09:40:18  来源:互联网     背景:

  OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。面对万物互联时代种类众多、且差异巨大的终端设备,我们为OpenHarmony打造了一款新的音视频引擎——HiStreamer。

  一、 HiStreamer产生背景

  数字多媒体技术在过去的数十年里得到了飞速的发展,音乐、电话、电视、电影、视频会议等等,伴随着我们度过每一天。为了给用户提供丰富的多媒体处理能力,业界已经有比较成熟的音视频引擎,比如开源的音视频引擎GStreamer。为什么我们还要打造一款新的音视频引擎呢?

  随着万物互联时代的到来,越来越多的智能化设备出现在我们的生活中。比如:智能冰箱可以通过屏幕和声音,告诉人们储藏的菜品快要过期了;智能闸机可以通过人脸识别,自动完成检票工作;智能门锁可以通过语音和视频,提升开锁的效率和安全性......

  与PC、手机等标准(Standard)设备不同,很多智能化设备的CPU处理能力比较弱、内存也比较小,传统的音视频引擎无法支持此类设备。HiStreamer应运而生,既支持轻量级的Mini/Small设备,也支持Standard设备(目前支持部分功能)。HiStreamer在不断发展和完善中,未来将会支持Standard设备的更多功能。

  二、 “管道+插件”,实现弹性部署

  为了支持Mini/Small/Standard设备,HiStreamer采用管道(Pipeline)和插件(plugin)的软件架构,从而可以根据设备的硬件和需求差异进行弹性部署。HiStreamer把音视频处理的每个过程抽象成节点,上一个节点的输出,作为下一个节点的输入,把多个节点连接起来,整体形成一个管道(Pipeline),完成音视频的数据读取、解封装、解码、输出的完整流程。同时,插件可以为Pipeline的节点提供丰富的扩展功能,让HiSteamer的音视频处理能力更强大。

  1. Pipeline框架介绍

  为了让大家理解HiStreamer的Pipeline框架,下面以MP3音频播放为例讲解:

  输入是一个MP3文件,输出是播放出的音乐,这中间经过了很多步骤。

  先来看一下MP3文件结构:

苹果se正面外观

OpenHarmony3.0线上发布会

图1 MP3文件结构

MIUI12.5内测机型

  MP3文件由ID3 Metadata容器头和若干MP3 Frame(MP3数据帧)构成。每个MP3 Frame又由MP3 Header(MP3头信息)和MP3 Data构成。这一系列的MP3 Frame称为ES Data( Element Stream Data)。

  ● ID3 Metadata:容器头,主要包括标题、艺术家、专辑、音轨数量等。

  ● MP3 Header:包含MP3 Sync word(标识MP3数据帧起始位置)和MPEG版本信息等。

  ● MP3 Data:包含压缩的音频信息。

  播放MP3文件,首先需要把MP3文件数据读进来,然后去掉ID3 Metadata容器头(即解封装),再把一系列MP3 Frame解压缩成PCM(Pulse-Code Modulation)数据,最后驱动喇叭发声。这个过程按顺序可以抽象成如下四个节点:

OpenHarmony3.0线上发布会

图2 MP3音频播放的Pipeline

  1. 输入节点(MediaSourceFilter): 读取MP3原始数据,传给下一个节点。

  2. 解封装节点(DemuxerFilter): 解析ID3 Metadata容器头信息,作为后续节点的参数输入,并且把一帧帧MP3 Frame(即ES Data)传给后续的解码节点。

  3. 解码节点(AudioDecoderFilter): 把ES Data解码成PCM数据,传给输出节点。

华硕eee pc 4g

  4. 输出节点(AudioSinkFilter): 输出PCM数据,驱动喇叭发声。

深圳方舱医院项目

  由以上示例可知,HiStreamer通过Pipeline框架把音视频处理的每个过程抽象成一个个节点。这些节点是解耦的,可以灵活拼装,从而可以根据业务需要拼装出不同的Pipeline。同时,为了使多个节点能更好地协同工作,HiStreamer还支持节点间的参数自动协商。

  2. HiStreamer插件介绍

  了解了HiStreamer的Pipeline框架后,我们再来看看HiStreamer插件。

  HiStreamer的Pipeline框架的很多节点(比如输入节点、解封装节点、解码节点、输出节点等)都支持插件扩展。通过插件,节点的功能变得更加丰富、更加强大。

  插件的应用场景非常广泛,比如:

  ● 媒体格式非常多,且以后还会有新的格式产生,可以通过插件支持新的媒体格式。

  ● 不同OS平台或设备,处理方式存在差异,可以通过插件支持不同的处理方式。

  ● 不同类型的设备,需求不同,能提供的CPU/ROM/RAM资源多少也不同,也可以通过插件来支持。

  3. 弹性部署

  HiStreamer基于管道(Pipeline)和插件(plugin)的软件架构,可以根据设备的硬件和需求差异实现弹性部署。

OpenHarmony3.0线上发布会

图3 HiStreamer弹性部署

  如图3所示,Mini设备(比如音箱),它的CPU处理能力很弱,ROM/RAM资源很少,需要的功能也比较少,只需要音频播放功能。HiStreamer可以配置成只支持音频播放,并且选择轻量级的插件,配置同步解码模式,减少资源消耗。而Small设备,CPU处理能力强一些,ROM/RAM空间大一些,需要音频播放和视频播放功能。HiStreamer可以配置成支持音视频播放,并且选择功能更强的插件。

  三、HiStreamer逻辑架构

  经过上面的介绍,我们了解了HiStreamer的“管道+插件”的软件架构。下面我们再来看看HiStreamer的详细的逻辑架构。

OpenHarmony3.0线上发布会

图4 HiStreamer逻辑架构图

极客大学java进阶训练营怎么样

  HiStreamer主要由HiStreamer引擎和HiStreamer插件构成。

  其中,HiStreamer引擎又分为以下四层:

  ● 业务封装层:基于Pipeline封装实现播放器、录音机功能,简化上层应用使用。

  ● Pipeline框架层:提供Pipeline和若干个节点(输入、解封装、解码和输出)的实现,支持把多个节点连接在一起形成Pipeline。

  ● 插件管理层:用于插件生命周期管理,支持动态加载或静态链接两种方式使用插件。

  ● 工具库层:提供框架依赖的工具,隔离操作系统差异,提供调测功能。

  HiStreamer插件,则分为平台软件插件和厂商硬插件两类:

  ● 平台软件插件:由OpenHarmony平台提供,可跨产品复用的软件算法插件。

  ● 厂商硬插件:由厂商提供的基于硬件加速的插件,如硬件加速的编解码插件。

  应用开发者可以直接使用现成的插件来实现多媒体功能,节省大量的开发时间。插件越丰富,HiStreamer的音视频处理能力会更强大。OpenHarmony欢迎广大开发者参与HiStreamer插件的开发,一起来丰富HiStreamer插件!

  四、HiStreamer插件开发及实例

  下面就为大家介绍HiStreamer插件的开发过程及实例讲解,感兴趣的小伙伴们赶紧学起来,一起参与HiStreamer插件开发吧~

  1. 插件的开发

  HiStreamer插件的开发主要分为插件定义功能实现两个部分。

  (1)插件定义

  HiStreamer插件是通过PLUGIN_DEFINITION宏来定义的。以输入插件FileSource为例,定义代码如下:

OpenHarmony3.0线上发布会

  使用PLUGIN_DEFINITION宏定义插件(即上面最后一行代码)时,传入了四个参数:

  a) 插件名称:即示例中的“FileSource”。

  b) License信息:即示例中的“LicenseType::APACHE_V2”。

  c) 插件注册函数:即示例中的“FileSourceRegister”,该函数描述了插件基本信息,包括插件对象创建函数,并且还调用AddPlugin把插件注册到系统中。

  d) 插件反注册函数:可以传为空实现。

  (二)功能实现

  实现插件功能时,需根据要实现的插件类型,继承对应插件接口类,并实现相关接口。比如实现输入插件FileSource,需要继承SourcePlugin,并实现SetSource、Read等接口,代码如下:

OpenHarmony3.0线上发布会

  FileSource插件的完整代码可参考码云平台OpenHarmony项目:

  https://gitee.com/openharmony/multimedia_histreamer/tree/master/engine/plugin/plugins/source/file_source

  2. 插件的部署

  使用PLUGIN_DEFINITION定义的HiStreamer插件,可以是单一功能的插件,也可以是有多个功能的插件包。每个这样的插件或插件包,可以独立编译成.a或者.so,分别对应以下两种部署方式:

  ● 静态部署:一般用在mini设备上,插件编译成静态库.a,链接到系统中。

  ● 动态部署:一般用在small/standard设备上,插件编译成动态库.so,放到系统指定目录下,动态加载运行。

  3. 插件的运行

  插件开发完成且部署到系统之后,HiStreamer启动时就会自动完成插件的注册。下一步,就是运行插件了。

  运行新实现的插件,需要先满足该插件的运行条件。比如:FileSource只会在播放本地文件时运行;MP3解码插件只会在播放MP3文件时运行......

  开发者可以通过日志信息,查看是否运行了自己的插件。如果有别的插件注册到系统中,导致自己的插件无法运行时,可以卸载引起干扰的插件。卸载动态部署的插件,删除对应的.so即可;卸载静态部署的插件,需要修改编译脚本取消对应插件的编译。

  五、结束语

  OpenHarmony欢迎广大开发者一起加入HiStreamer插件开发,扩展自己想要的媒体功能,共同丰富HiStreamer媒体生态!

  同时,预告大家: HiStreamer的下一个版本将为Standard设备增强更多功能,敬请期待!

  本期关于HiStreamer的介绍就到这里了,想要了解更多HiStreamer的信息,请参考码云平台OpenHarmony项目:

  https://gitee.com/openharmony/multimedia_histreamer


返回网站首页

本文评论
寻找元宇宙黑马,中国元宇宙创新应用大赛百万大奖,等你来拿!
  如果说 过去20年最大的创业机会属于移动互联网,那么,未来20年乃至30年、40年,必将是元宇宙创业的黄金时期。iphone A15芯片魅族Flyme更新  2021年到2022年,国家先后提出“...
日期:06-10
杉岩数据入选首届粤港澳大湾区金融科技飞鱼企业20榜单_深圳杉岩数据上市
  “湾区金科、‘鱼’跃千里”。1月10日,首届粤港澳大湾区金融科技飞鱼企业20榜单正式揭晓。杉岩数据凭借领先的大数据智能存储技术和产品、丰富的金融场景落地实践,于近百...
日期:07-25
绿米Aqara:抢滩千亿智能家居市场,打造高品质、低能耗全屋智能_绿米全屋智能家居销售
  智能家居虽然最早不是在我国诞生,但从2019年开始,我国已经成为了全球最大的物联网市场,也将成为全球最大的智能家居市场消费国。在这个背景下,绿米联创抢滩千亿智能家居市场...
日期:07-29
极米投影仪z6x使用说明_你的投影竟然可以这么玩 !极米NEW Z6X点亮快乐时刻
  作为投影仪发烧友的笔者,已经将家里的投影仪代替了电视,成为了家里的主力观影设备,影音资源丰富还能适配多种场景使用的优质投影仪,相对是提升幸福感的宝藏产品,但是大多数朋...
日期:07-28
要坐端正哦!明基MindDuo 2 Plus智能儿童台灯新品上市「明基mindduo台灯怎么样」
  下班回到家,孩子又在用什么姿势花样看书?是两手抱膝式、盘腿打坐式、斜倚望月式,还是匍匐前进式?孩子们的搞笑坐姿让家长们忍俊不禁,但是欢笑背后潜藏着近视和驼背的风险。...
日期:07-25
5g智慧农业设备_中国移动5G打造智慧农业新样板
  你听说过用5G技术种田吗?近年来,5G技术持续应用在智慧农业领域,使温度、湿度、肥力等影响农作物生长的因素得到数字技术的全程管控,真正实现了精准化种植。中国移动作为我...
日期:11-11
OpenHarmony版本再升级 吹响技术创新时代的号角「openharmony开发应用」
  4月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)技术日在深圳举办,对OpenHarmony 3.1 Release版本核心技术进行了深入解读,同时分享了生态的最新进展。全新的OpenH...
日期:07-14
小米:推出生态链小泽医生果蔬净化器「小米有品果蔬净化机」
  8月26日消息,我们绝大多数人对食材表面农药残留对身体健康的影响不太了解。随着农业科技的进步,蔬菜水果、家畜家禽的生长期越来越短,绝大部分需要多种激素或催化剂加速...
日期:08-27
tcl智能锁客服_体验化服务+人性化服务 TCL智能锁推动行业标准新升级
  随着现代人对门锁的安全性、便利性的需求增加,迅速变成了年轻人必买的科技家居产品。数据显示,2019年国内智能门锁市场渗透率仅达到7%,而同期韩国等成熟市场渗透率高达70%,...
日期:07-26
加码“福利+内容”投入 腾讯应用宝8周年生日派对正式开启
  9月25日至9月29日,腾讯应用宝正式开启“8周年生日派对”。用户可以在腾讯应用宝App进入活动页面,通过获取口令、下载指定App、邀请新用户三种方式获得抽奖机会,赢取丰厚奖...
日期:07-27
火山引擎:视频创作为何需要质量治理?
  9月9日,火山引擎增长沙龙-人工智能专场于在上海举行。火山引擎邀请了内部技术专家,分享了移动端视频编辑面临的稳定性挑战以及视频编辑质量治理的意义。美国语音公司巨头N...
日期:07-28
昆仑芯inside | “超级电脑”成湖北宜昌城市治理“黑科技”
  近日,由于在城市治理领域崭露头角,一项被称为“超级电脑”的“黑科技”进入大众视野,引起广泛关注。  这台“超级电脑”位于湖北省宜昌市点军区,每秒最大51,200万亿次计算...
日期:07-29
黑鲨四磁动力肩键如何运作_磁动力升降肩键+120W +144Hz,黑鲨4S打造极致游戏体验
  10月13日,全新黑鲨4S系列正式发布,为2021年下半年的游戏手机市场投下了一枚重磅炸弹。全新黑鲨4S系列全系标配磁动力升降肩键、120W极速闪充、三星E4发光材料144Hz+720Hz...
日期:07-27
三星内存卡行车记录仪_三星推出全新PRO Endurance存储卡,专为监控和行车记录仪使用
  耐用,高容量的microSD存储卡,可长达16年的连续录制和回放,捕捉关键时刻核酸检查网上查看  据韩媒报道,拥有先进存储技术的三星电子宣布推出其新的microSD存储卡,三星PRO E...
日期:07-10
行业观察丨那么多PPF,为什么选威固汽车膜?(ppf车膜怎么样)
  近几年PPF(漆面保护膜)市场呈现“百花齐放”的现象,泛数市场上的PPF,光品类就达十余种,为广大车主提供了更多的选择。但是,在“一窝蜂”的品类趋向下,高收入人群依旧倾向于选...
日期:03-02
2022公认最好的4K投影仪当贝X3 Pro用户的真实体验,都在这里了「当贝x3投影仪对比度」
为了搭建心心念的家庭影院,最近入手了一台当贝X3 Pro,那画质简直绝了,和在电影院看的效果几乎一样,看来以后再也不用往电影院跑了,在家就能享受影院级的视听。那这么多投影仪中,我...
日期:10-12
极米rs pro2投影距离_极米RS Pro2:两大特性成就最具性价比4K投影
  今年双十一,极米的4K旗舰投影RS Pro2卖爆了。仅仅几天的大促,GMV就达到了8000万,也创下了行业4K投影的销量纪录。4K加巨幕是理所当然的配置,为什么直到今年才爆发?如果你也...
日期:07-26
2022家用激光投影仪推荐,2022高性价比的激光投影仪推荐!「投影网2020年家用最好投影仪」
  最近看到很多人都在讨论激光投影仪哪款好?性价比高这个话题!如今激光技术的逐渐发展已经被应用到了很多的领域了,无论是电视、测量、投影仪激光技术都是属于顶尖的技术;...
日期:09-02
大悦房地产_大悦城控股喜获地产行业大奖,备受业内外认可与赞誉
  2022年1月19日,第十三届地产中国论坛暨中国房地产红榜在北京举办,论坛由中国互联网新闻中心·中国网·地产主办,主题为“新趋势、新品牌、新营销”。整个地产行业面对着变...
日期:07-14
获得场景视频穿越场景直播发布会,引领企业直播新趋势_全场景直播
  直播,伴随着时代的浪潮已渗入到各行各业,成为企业发展的“新基建”,而随着5G网络和AR、XR、MR等虚拟技术的不断发展,虚实结合的元宇宙直播将给企业注入更多新生力量,给...
日期:02-27