簡介
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文章
180瀏覽量
27364 -
鴻蒙
+關注
關注
57文章
2310瀏覽量
42743
發布評論請先 登錄
相關推薦
鴻蒙實戰項目開發:【短信服務】
、OpenHarmony 多媒體技術、Napi組件、OpenHarmony內核、Harmony南向開發、鴻蒙項目實戰等等)鴻蒙(Harmon
發表于 03-03 21:29
鴻蒙媒體開發【簡述】
錄制)、圖片等。
如下圖所示,媒體系統面向應用開發提供音視頻應用、圖庫應用的編程框架接口;面向設備開發提供對接不同硬件芯片適配加速功能;中間以服務形態提供媒體核心功能和管理機制。
音
發表于 02-28 17:53
鴻蒙開發OpenHarmony組件復用案例
)
}
}, item => item)
}
}
}
本文主要是對鴻蒙開發基礎當中的OpenHarmony技術組件復用示例, 更多鴻蒙開發
發表于 01-15 17:37
鴻蒙開發基礎-Web組件之cookie操作
})
...
}
...
本文章主要是對鴻蒙開發當中ArkTS語言的基礎應用實戰,Web組件里的cookie操作。更多的鴻蒙應用開發技
發表于 01-14 21:31
免費學習鴻蒙(HarmonyOS)開發,一些地址分享
國內一流高校。通過鴻蒙班的設立,高校可以為學生提供專業的鴻蒙OS學習環境和豐富的實踐機會,培養出更多的鴻蒙開發人才,為
發表于 01-12 20:48
鴻蒙基礎開發實戰-(ArkTS)像素轉換
的使用。通過像素轉換案例,向開發者講解了如何使用像素單位設置組件的尺寸、字體的大小以及不同像素單位之間的轉換方法。更多鴻蒙4.0的學習,可以前往主頁
發表于 01-11 16:53
評論