OpenHarmony媒体子系统媒体引擎组件

1、简介

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

  • 播放场景分为如下几个节点:数据源读取、解封装、解码、输出;
  • 录制场景分为如下几个节点:数据源读取、编码、封装、输出。

        这些节点的具体功能,主要在插件中实现。可以插件的形式扩展支持新的数据源、封装格式、编解码格式、输出方式。

2、逻辑架构

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

  • 应用场景封装层: 比如HiPlayer, HiRecorder。
  • Pipeline框架层: 包括Pipeline框架,各个Filter节点实现。
  • 插件层: 包括插件框架,各种插件。

3、插件列表

         HiStreamer插件列表如下:

插件名称 路径 外部依赖 License 功能 适用场景
FFMPEG Adapter plugins/ffmpeg_adapter FFMPEG LGPL etc. 解封装:mp3,m4a,mp4,wav
解码:mp3,aac
支持动态链接的
small/standard设备
File Source plugins/source/file_source FileSystem Apache 读取文件数据 所有设备
Minimp3 Adapter plugins/minimp3_adapter minimp3 CC0 解封装: mp3
解码: mp3
所有设备
Minimp4 Demuxer plugins/demuxer/minimp4_demuxer minimp4 CC0 解封装: m4a 所有设备
Aac Demuxer plugins/demuxer/aac_demuxer NA Apache 解封装: aac 所有设备
HDI Sink plugins/hdi_adapter Audio HDI Apache 播放音乐 mini/small设备

4、媒体引擎组件代码目录   

/foundation/multimedia/histreamer      # HiStreamer媒体引擎组件业务代码
├─LICENSE                              # 证书文件
├─engine                               # 引擎代码
│  ├─foundation                        # 基础工具类, 包括OS适配
│  ├─pipeline                          # pipeline框架
│  │  ├─core                           # pipeline核心实现
│  │  ├─factory                        # filter工厂
│  │  └─filters                        # 若干filter节点实现
│  │      ├─codec                      # 编解码节点实现
│  │      ├─demux                      # 解封装节点实现
│  │      ├─sink                       # 输出节点实现
│  │      └─source                     # 数据源节点实现
│  ├─player                            # 播放器封装
│  └─plugin                            # 插件
│     ├─common                         # 插件接口依赖的基础类型定义
│     ├─core                           # 插件框架
│     ├─interface                      # 插件接口
│     └─plugins                        # 若干插件实现
│         ├─minimp3_adapter            # minimp3适配
│         ├─ffmpeg_adapter             # FFMPEG适配(适配成封装解封装、编解码插件)
│         ├─hdi_adapter                # HDI适配(适配成输出插件)
│         ├─demuxer                    # 解封装插件
│         ├─sink                       # 输出插件
│         └─source                     # 数据源插件
└─interface                            # 引擎对外接口

5、代码约束

          需要C++11版本或以上。

猜你喜欢

转载自blog.csdn.net/fanyun_01/article/details/129869490
今日推荐