【鸿蒙实战开发】HarmonyOS之媒体引擎组件

13 篇文章 3 订阅
12 篇文章 0 订阅

简介

HiStreamer是一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理。

●播放场景分为如下几个节点:数据源读取、解封装、解码、输出;
●录制场景分为如下几个节点:数据源读取、编码、封装、输出。
这些节点的具体功能,主要在插件中实现。可以插件的形式扩展支持新的数据源、封装格式、编解码格式、输出方式。

逻辑架构

HiStreamer作为媒体引擎,向上对接player_framework(standard设备上)或者media_lite(mini/small设备上),再对外提供应用API。它内部分为三层:

●应用场景封装层: 比如HiPlayer, HiRecorder。
●Pipeline框架层: 包括Pipeline框架,各个Filter节点实现。
●插件层: 包括插件框架,各种插件。
在这里插入图片描述

插件列表

HiStreamer插件列表如下:

在这里插入图片描述

目录

仓目录结构如下:

/foundation/multimedia/histreamer      # HiStreamer媒体引擎组件业务代码
├─LICENSE                              # 证书文件
├─engine                               # 引擎代码
│  ├─foundation                        # 基础工具类, 包括OS适配
│  ├─include                           # 为其它模块调用histreamer暴露必要的头文件,包括调用pipeline/filter,或者调用插件
│  │  ├─foundation                     # histreamer基础工具库,包括日志打印、Buffer工具、操作系统适配、语言扩展等
│  │  ├─pipeline                       # pipeline框架的头文件,主要是pipeline/filter接口
│  │  └─plugin                         # 插件相关的头文件
│  │      ├─common                     # 插件接口依赖的基础类型头文件
│  │      └─interface                  # 插件接口
│  ├─pipeline                          # pipeline框架
│  │  ├─core                           # pipeline核心实现
│  │  ├─factory                        # filter工厂
│  │  └─filters                        # 若干filter节点实现
│  │      ├─codec                      # 编解码节点实现
│  │      ├─common                     # filters依赖的基础类型定义
│  │      ├─demux                      # 解封装节点实现
│  │      ├─muxer                      # 封装节点实现
│  │      ├─sink                       # 输出节点实现
│  │      └─source                     # 数据源节点实现
│  ├─plugin                            # 插件
│  │  ├─common                         # 插件接口依赖的基础类型定义
│  │  ├─core                           # 插件框架,各个插件的代理类
│  │  └─plugins                        # 若干插件实现
│  │      ├─codec_adapter              # 硬件编解码适配
│  │      ├─minimp3_adapter            # minimp3适配
│  │      ├─ffmpeg_adapter             # FFMPEG适配(适配成封装解封装、编解码插件)
│  │      ├─hdi_adapter                # HDI适配(适配成输出插件)
│  │      ├─lite_aac_decoder           # 轻量级AAC解码器插件
│  │      ├─demuxer                    # 解封装插件
│  │      ├─sink                       # 输出插件
│  │      └─source                     # 数据源插件
│  └─scene                             # 播放录制等场景的封装实现
│  │  ├─common                         # 共用的基础类型定义
│  │  ├─lite                           # 对接到轻量设备的接口实现
│  │  ├─player                         # 播放场景实现
│  │  ├─recorder                       # 录制场景实现
│  │  └─standard                       # 对接到标准设备的接口实现
└─interface                            # 引擎对外接口

写在最后

●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
●点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
●关注小编,同时可以期待后续文章ing ,不定期分享原创知识。

在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值