簡介
HiStreamer是一個輕量級的媒體引擎組件,提供播放、錄制等場景的媒體數據流水線處理。
- 播放場景分為如下幾個節點:數據源讀取、解封裝、解碼、輸出;
- 錄制場景分為如下幾個節點:數據源讀取、編碼、封裝、輸出。
這些節點的具體功能,主要在插件中實現。可以插件的形式擴展支持新的數據源、封裝格式、編解碼格式、輸出方式。
邏輯架構
HiStreamer作為媒體引擎,向上對接player_framework(standard設備上)或者media_lite(mini/small設備上),再對外提供應用API。它內部分為三層:
- 應用場景封裝層: 比如HiPlayer, HiRecorder。
- Pipeline框架層: 包括Pipeline框架,各個Filter節點實現。
- 插件層: 包括插件框架,各種插件。
插件列表
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設備 |
目錄
倉目錄結構如下:
/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 # 引擎對外接口
審核編輯 黃宇
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
解碼
+關注
關注
0文章
184瀏覽量
27736 -
鴻蒙
+關注
關注
59文章
2491瀏覽量
43721
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置
本文介紹OpenHarmony5.0 DevEco Studio開發工具安裝與配置,鴻蒙北向開發入門必備!由觸覺智能Purple Pi OH鴻蒙開發

開源啦!!!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來一起共創
Hello;大家好,我是陳楊。好久沒更新了,首先是自己本職工作比較忙,基本沒時間寫作。其次就是學習技術,自學鴻蒙ArkTS語言已經接近半年了,也算半路出師了,這次將分享我封裝的組件庫,所以有啥講錯
發表于 03-15 15:21
【「極速探索HarmonyOS NEXT 」閱讀體驗】 初印象:一本純血鴻蒙應用開發入門的好書
非常有幸的于近日收到了電子發燒友寄來的《 極速探索HarmonyOS NEXT **** 純血鴻蒙應用開發實踐》這本由清華大學出版社出版的一本純血鴻蒙應用開發
發表于 03-04 12:41
《HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發
《HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發 隨著HarmonyOS NEXT發布,鴻蒙生態日益壯大,廣大開發者對于
發表于 01-02 14:24
OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示
開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區推薦

評論