README.md
1# HiStreamer<a name="EN-US_TOPIC_0000001148809513"></a>
2
3- [HiStreamer<a name="EN-US_TOPIC_0000001148809513"></a>](#histreamer)
4 - [Introduction<a name="section1158716411637"></a>](#introduction)
5 - [Directory Structure<a name="section161941989596"></a>](#directory-structure)
6 - [Repositories Involved<a name="section1533973044317"></a>](#repositories-involved)
7
8## Introduction<a name="section1158716411637"></a>
9
10HiStreamer is the foundation module of the multimedia subsystem. It provides a processing pipeline and plug-ins required by the media framework, such as the file source, codecs, muxer and demuxer, and audio and video data processor.
11
12## Directory Structure<a name="section161941989596"></a>
13
14The structure of the repository directory is as follows:
15
16```
17/foundation/multimedia/histreamer
18├── LICENSE # License file
19└── ohos.build # Build file
20```
21
22## Repositories Involved<a name="section1533973044317"></a>
23
24multimedia\_histreamer
25
26
README_zh.md
1# 媒体引擎组件<a name="ZH-CN_TOPIC_0000001148809513"></a>
2
3- [媒体引擎组件<a name="ZH-CN_TOPIC_0000001148809513"></a>](#媒体引擎组件)
4 - [简介<a name="section1158716411637"></a>](#简介)
5 - [逻辑架构<a name="section_histreamer_arch"></a>](#逻辑架构)
6 - [插件列表<a name="section_histreamer_plugins"></a>](#插件列表)
7 - [目录<a name="section161941989596"></a>](#目录)
8 - [相关仓<a name="section1533973044317"></a>](#相关仓)
9
10## 简介<a name="section1158716411637"></a>
11
12HiStreamer是一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理。
13- 播放场景分为如下几个节点:数据源读取、解封装、解码、输出;
14- 录制场景分为如下几个节点:数据源读取、编码、封装、输出。
15
16这些节点的具体功能,主要在插件中实现。可以插件的形式扩展支持新的数据源、封装格式、编解码格式、输出方式。
17
18## 逻辑架构<a name="section_histreamer_arch"></a>
19HiStreamer作为媒体引擎,向上对接media_standard(standard设备上)或者media_lite(mini/small设备上),再对外提供应用API。它内部分为三层:
20- 应用场景封装层: 比如HiPlayer, HiRecorder。
21- Pipeline框架层: 包括Pipeline框架,各个Filter节点实现。
22- 插件层: 包括插件框架,各种插件。
23
24
25
26## 插件列表<a name="section_histreamer_plugins"></a>
27HiStreamer插件列表如下:
28| 插件名称 | 路径 | 外部依赖 | License | 功能 | 适用场景 |
29| -- | -- | -- | -- | -- | -- |
30| FFMPEG Adapter| plugins/ffmpeg_adapter | FFMPEG | LGPL etc. | 解封装:mp3,m4a,mp4,wav<br>解码:mp3,aac | 支持动态链接的<br>small/standard设备 |
31| File Source | plugins/source/file_source | FileSystem | Apache | 读取文件数据 | 所有设备 |
32| Minimp3 Adapter | plugins/minimp3_adapter | minimp3 | CC0 | 解封装: mp3<br>解码: mp3 | 所有设备 |
33| Minimp4 Demuxer | plugins/demuxer/minimp4_demuxer | minimp4 | CC0 | 解封装: m4a | 所有设备 |
34| Aac Demuxer | plugins/demuxer/aac_demuxer | NA | Apache | 解封装: aac | 所有设备 |
35| HDI Sink | plugins/hdi_adapter | Audio HDI | Apache | 播放音乐 | mini/small设备 |
36
37## 目录<a name="section161941989596"></a>
38
39仓目录结构如下:
40
41```
42/foundation/multimedia/histreamer # HiStreamer媒体引擎组件业务代码
43├─LICENSE # 证书文件
44├─engine # 引擎代码
45│ ├─foundation # 基础工具类, 包括OS适配
46│ ├─pipeline # pipeline框架
47│ │ ├─core # pipeline核心实现
48│ │ ├─factory # filter工厂
49│ │ └─filters # 若干filter节点实现
50│ │ ├─codec # 编解码节点实现
51│ │ ├─demux # 解封装节点实现
52│ │ ├─sink # 输出节点实现
53│ │ └─source # 数据源节点实现
54│ ├─player # 播放器封装
55│ └─plugin # 插件
56│ ├─common # 插件接口依赖的基础类型定义
57│ ├─core # 插件框架
58│ ├─interface # 插件接口
59│ └─plugins # 若干插件实现
60│ ├─minimp3_adapter # minimp3适配
61│ ├─ffmpeg_adapter # FFMPEG适配(适配成封装解封装、编解码插件)
62│ ├─hdi_adapter # HDI适配(适配成输出插件)
63│ ├─demuxer # 解封装插件
64│ ├─sink # 输出插件
65│ └─source # 数据源插件
66└─interface # 引擎对外接口
67```
68
69## 相关仓<a name="section1533973044317"></a>
70
71- media_standard: <br>https://gitee.com/openharmony/multimedia_media_standard
72
73- media_lite: <br>https://gitee.com/openharmony/multimedia_media_lite
74