簡(jiǎn)介
HiStreamer是一個(gè)輕量級(jí)的媒體引擎組件,提供播放、錄制等場(chǎng)景的媒體數(shù)據(jù)流水線處理。
- 播放場(chǎng)景分為如下幾個(gè)節(jié)點(diǎn):數(shù)據(jù)源讀取、解封裝、解碼、輸出;
- 錄制場(chǎng)景分為如下幾個(gè)節(jié)點(diǎn):數(shù)據(jù)源讀取、編碼、封裝、輸出。
這些節(jié)點(diǎn)的具體功能,主要在插件中實(shí)現(xiàn)。可以插件的形式擴(kuò)展支持新的數(shù)據(jù)源、封裝格式、編解碼格式、輸出方式。
邏輯架構(gòu)
HiStreamer作為媒體引擎,向上對(duì)接player_framework(standard設(shè)備上)或者media_lite(mini/small設(shè)備上),再對(duì)外提供應(yīng)用API。它內(nèi)部分為三層:
- 應(yīng)用場(chǎng)景封裝層: 比如HiPlayer, HiRecorder。
- Pipeline框架層: 包括Pipeline框架,各個(gè)Filter節(jié)點(diǎn)實(shí)現(xiàn)。
- 插件層: 包括插件框架,各種插件。
插件列表
HiStreamer插件列表如下:
插件名稱(chēng) | 路徑 | 外部依賴(lài) | License | 功能 | 適用場(chǎng)景 |
---|---|---|---|---|---|
FFMPEG Adapter | plugins/ffmpeg_adapter | FFMPEG | LGPL etc. | 解封裝:mp3,m4a,mp4,wav 解碼:mp3,aac | 支持動(dòng)態(tài)鏈接的 small/standard設(shè)備 |
File Source | plugins/source/file_source | FileSystem | Apache | 讀取文件數(shù)據(jù) | 所有設(shè)備 |
Minimp3 Adapter | plugins/minimp3_adapter | minimp3 | CC0 | 解封裝: mp3 解碼: mp3 | 所有設(shè)備 |
Minimp4 Demuxer | plugins/demuxer/minimp4_demuxer | minimp4 | CC0 | 解封裝: m4a | 所有設(shè)備 |
Aac Demuxer | plugins/demuxer/aac_demuxer | NA | Apache | 解封裝: aac | 所有設(shè)備 |
HDI Sink | plugins/hdi_adapter | Audio HDI | Apache | 播放音樂(lè) | mini/small設(shè)備 |
目錄
倉(cāng)目錄結(jié)構(gòu)如下:
/foundation/multimedia/histreamer # HiStreamer媒體引擎組件業(yè)務(wù)代碼
├─LICENSE # 證書(shū)文件
├─engine # 引擎代碼
│ ├─foundation # 基礎(chǔ)工具類(lèi), 包括OS適配
│ ├─include # 為其它模塊調(diào)用histreamer暴露必要的頭文件,包括調(diào)用pipeline/filter,或者調(diào)用插件
│ │ ├─foundation # histreamer基礎(chǔ)工具庫(kù),包括日志打印、Buffer工具、操作系統(tǒng)適配、語(yǔ)言擴(kuò)展等
│ │ ├─pipeline # pipeline框架的頭文件,主要是pipeline/filter接口
│ │ └─plugin # 插件相關(guān)的頭文件
│ │ ├─common # 插件接口依賴(lài)的基礎(chǔ)類(lèi)型頭文件
│ │ └─interface # 插件接口
│ ├─pipeline # pipeline框架
│ │ ├─core # pipeline核心實(shí)現(xiàn)
│ │ ├─factory # filter工廠
│ │ └─filters # 若干filter節(jié)點(diǎn)實(shí)現(xiàn)
│ │ ├─codec # 編解碼節(jié)點(diǎn)實(shí)現(xiàn)
│ │ ├─common # filters依賴(lài)的基礎(chǔ)類(lèi)型定義
│ │ ├─demux # 解封裝節(jié)點(diǎn)實(shí)現(xiàn)
│ │ ├─muxer # 封裝節(jié)點(diǎn)實(shí)現(xiàn)
│ │ ├─sink # 輸出節(jié)點(diǎn)實(shí)現(xiàn)
│ │ └─source # 數(shù)據(jù)源節(jié)點(diǎn)實(shí)現(xiàn)
│ ├─plugin # 插件
│ │ ├─common # 插件接口依賴(lài)的基礎(chǔ)類(lèi)型定義
│ │ ├─core # 插件框架,各個(gè)插件的代理類(lèi)
│ │ └─plugins # 若干插件實(shí)現(xiàn)
│ │ ├─codec_adapter # 硬件編解碼適配
│ │ ├─minimp3_adapter # minimp3適配
│ │ ├─ffmpeg_adapter # FFMPEG適配(適配成封裝解封裝、編解碼插件)
│ │ ├─hdi_adapter # HDI適配(適配成輸出插件)
│ │ ├─lite_aac_decoder # 輕量級(jí)AAC解碼器插件
│ │ ├─demuxer # 解封裝插件
│ │ ├─sink # 輸出插件
│ │ └─source # 數(shù)據(jù)源插件
│ └─scene # 播放錄制等場(chǎng)景的封裝實(shí)現(xiàn)
│ │ ├─common # 共用的基礎(chǔ)類(lèi)型定義
│ │ ├─lite # 對(duì)接到輕量設(shè)備的接口實(shí)現(xiàn)
│ │ ├─player # 播放場(chǎng)景實(shí)現(xiàn)
│ │ ├─recorder # 錄制場(chǎng)景實(shí)現(xiàn)
│ │ └─standard # 對(duì)接到標(biāo)準(zhǔn)設(shè)備的接口實(shí)現(xiàn)
└─interface # 引擎對(duì)外接口
審核編輯 黃宇
審核編輯 黃宇
-
解碼
+關(guān)注
關(guān)注
0文章
181瀏覽量
27379 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42811
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論