chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony打造了一款新的音視頻引擎——HiStreamer

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-17 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)是由開放原子開源基金會(OpenAtom Foundation)孵化及運營的開源項目,目標是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架和平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。面對萬物互聯(lián)時代種類眾多、且差異巨大的終端設(shè)備,我們?yōu)?OpenHarmony 打造了一款新的音視頻引擎——HiStreamer。

一、HiStreamer產(chǎn)生背景

數(shù)字多媒體技術(shù)在過去的數(shù)十年里得到了飛速的發(fā)展,音樂、電話、電視、電影、視頻會議等等,伴隨著我們度過每一天。為了給用戶提供豐富的多媒體處理能力,業(yè)界已經(jīng)有比較成熟的音視頻引擎,比如開源的音視頻引擎 GStreamer。為什么我們還要打造一款新的音視頻引擎呢?

隨著萬物互聯(lián)時代的到來,越來越多的智能化設(shè)備出現(xiàn)在我們的生活中。比如:智能冰箱可以通過屏幕和聲音,告訴人們儲藏的菜品快要過期了;智能閘機可以通過人臉識別,自動完成檢票工作;智能門鎖可以通過語音和視頻,提升開鎖的效率和安全性......

與PC、手機等標準(Standard)設(shè)備不同,很多智能化設(shè)備的CPU處理能力比較弱、內(nèi)存也比較小,傳統(tǒng)的音視頻引擎無法支持此類設(shè)備。HiStreamer 應(yīng)運而生,既支持輕量級的 Mini/Small 設(shè)備,也支持 Standard 設(shè)備(目前支持部分功能)。HiStreamer 在不斷發(fā)展和完善中,未來將會支持 Standard 設(shè)備的更多功能。

二、“管道+插件”,實現(xiàn)彈性部署

為了支持 Mini/Small/Standard 設(shè)備,HiStreamer 采用管道(Pipeline)和插件(plugin)的軟件架構(gòu),從而可以根據(jù)設(shè)備的硬件和需求差異進行彈性部署。HiStreamer 把音視頻處理的每個過程抽象成節(jié)點,上一個節(jié)點的輸出,作為下一個節(jié)點的輸入,把多個節(jié)點連接起來,整體形成一個管道(Pipeline),完成音視頻的數(shù)據(jù)讀取、解封裝、解碼、輸出的完整流程。同時,插件可以為 Pipeline 的節(jié)點提供豐富的擴展功能,讓 HiSteamer 的音視頻處理能力更強大。

1. Pipeline框架介紹

為了讓大家理解 HiStreamer 的 Pipeline 框架,下面以 MP3 音頻播放為例講解:

輸入是一個 MP3 文件,輸出是播放出的音樂,這中間經(jīng)過了很多步驟。

先來看一下 MP3 文件結(jié)構(gòu):

93650b22-ddbd-11ec-ba43-dac502259ad0.png

圖1 MP3文件結(jié)構(gòu)

MP3 文件由 ID3 Metadata 容器頭和若干 MP3 Frame(MP3 數(shù)據(jù)幀)構(gòu)成。每個 MP3 Frame 又由 MP3 Header(MP3 頭信息)和 MP3 Data 構(gòu)成。這一系列的 MP3 Frame 稱為 ES Data( Element Stream Data)。

● ID3 Metadata:容器頭,主要包括標題、藝術(shù)家、專輯、音軌數(shù)量等。

● MP3 Header:包含 MP3 Sync word(標識 MP3 數(shù)據(jù)幀起始位置)和 MPEG 版本信息等。

● MP3 Data:包含壓縮的音頻信息。

播放 MP3 文件,首先需要把 MP3 文件數(shù)據(jù)讀進來,然后去掉 ID3 Metadata 容器頭(即解封裝),再把一系列 MP3 Frame 解壓縮成 PCM(Pulse-Code Modulation)數(shù)據(jù),最后驅(qū)動喇叭發(fā)聲。這個過程按順序可以抽象成如下四個節(jié)點:

93851dea-ddbd-11ec-ba43-dac502259ad0.png

圖2 MP3音頻播放的Pipeline

1. 輸入節(jié)點(MediaSourceFilter): 讀取 MP3 原始數(shù)據(jù),傳給下一個節(jié)點。

2. 解封裝節(jié)點(DemuxerFilter): 解析 ID3 Metadata 容器頭信息,作為后續(xù)節(jié)點的參數(shù)輸入,并且把一幀幀 MP3 Frame(即 ES Data)傳給后續(xù)的解碼節(jié)點。

3. 解碼節(jié)點(AudioDecoderFilter): 把 ES Data 解碼成 PCM 數(shù)據(jù),傳給輸出節(jié)點。

4. 輸出節(jié)點(AudioSinkFilter): 輸出 PCM 數(shù)據(jù),驅(qū)動喇叭發(fā)聲。

由以上示例可知,HiStreamer 通過 Pipeline 框架把音視頻處理的每個過程抽象成一個個節(jié)點。這些節(jié)點是解耦的,可以靈活拼裝,從而可以根據(jù)業(yè)務(wù)需要拼裝出不同的 Pipeline。同時,為了使多個節(jié)點能更好地協(xié)同工作,HiStreamer 還支持節(jié)點間的參數(shù)自動協(xié)商。

2. HiStreamer插件介紹

了解了 HiStreamer 的 Pipeline 框架后,我們再來看看 HiStreamer 插件。

HiStreamer 的 Pipeline 框架的很多節(jié)點(比如輸入節(jié)點、解封裝節(jié)點、解碼節(jié)點、輸出節(jié)點等)都支持插件擴展。通過插件,節(jié)點的功能變得更加豐富、更加強大。

插件的應(yīng)用場景非常廣泛,比如:

● 媒體格式非常多,且以后還會有新的格式產(chǎn)生,可以通過插件支持新的媒體格式。

● 不同 OS 平臺或設(shè)備,處理方式存在差異,可以通過插件支持不同的處理方式。

● 不同類型的設(shè)備,需求不同,能提供的 CPU/ROM/RAM 資源多少也不同,也可以通過插件來支持。

3. 彈性部署

HiStreamer 基于管道(Pipeline)和插件(plugin)的軟件架構(gòu),可以根據(jù)設(shè)備的硬件和需求差異實現(xiàn)彈性部署。

93c96c34-ddbd-11ec-ba43-dac502259ad0.png

圖3 HiStreamer彈性部署

如圖 3 所示,Mini 設(shè)備(比如音箱),它的 CPU 處理能力很弱,ROM/RAM 資源很少,需要的功能也比較少,只需要音頻播放功能。HiStreamer 可以配置成只支持音頻播放,并且選擇輕量級的插件,配置同步解碼模式,減少資源消耗。而 Small 設(shè)備,CPU 處理能力強一些,ROM/RAM 空間大一些,需要音頻播放和視頻播放功能。HiStreamer 可以配置成支持音視頻播放,并且選擇功能更強的插件。

三、HiStreamer邏輯架構(gòu)

經(jīng)過上面的介紹,我們了解了 HiStreamer 的“管道+插件”的軟件架構(gòu)。下面我們再來看看 HiStreamer 的詳細的邏輯架構(gòu)。

93ff6e6a-ddbd-11ec-ba43-dac502259ad0.png

圖4 HiStreamer邏輯架構(gòu)圖

HiStreamer 主要由 HiStreamer 引擎和 HiStreamer 插件構(gòu)成。

其中,HiStreamer引擎又分為以下四層:

業(yè)務(wù)封裝層:基于 Pipeline 封裝實現(xiàn)播放器、錄音機功能,簡化上層應(yīng)用使用。

Pipeline 框架層:提供 Pipeline 和若干個節(jié)點(輸入、解封裝、解碼和輸出)的實現(xiàn),支持把多個節(jié)點連接在一起形成 Pipeline。

插件管理層:用于插件生命周期管理,支持動態(tài)加載或靜態(tài)鏈接兩種方式使用插件。

工具庫層:提供框架依賴的工具,隔離操作系統(tǒng)差異,提供調(diào)測功能。

HiStreamer 插件,則分為平臺軟件插件和廠商硬插件兩類:

平臺軟件插件:由 OpenHarmony 平臺提供,可跨產(chǎn)品復用的軟件算法插件。

廠商硬插件:由廠商提供的基于硬件加速的插件,如硬件加速的編解碼插件。

應(yīng)用開發(fā)者可以直接使用現(xiàn)成的插件來實現(xiàn)多媒體功能,節(jié)省大量的開發(fā)時間。插件越豐富,HiStreamer 的音視頻處理能力會更強大。歡迎廣大開發(fā)者參與 HiStreamer 插件的開發(fā),一起來豐富 HiStreamer 插件!

四、HiStreamer插件開發(fā)及實例

下面就為大家介紹 HiStreamer 插件的開發(fā)過程及實例講解,感興趣的小伙伴們趕緊學起來,一起參與 HiStreamer 插件開發(fā)吧~

1. 插件的開發(fā)

HiStreamer 插件的開發(fā)主要分為插件定義和功能實現(xiàn)兩個部分。

(1)插件定義

HiStreamer 插件是通過 PLUGIN_DEFINITION 宏來定義的。以輸入插件 FileSource 為例,定義代碼如下:


std::shared_ptr FileSourcePluginCreator(const std::string& name){    return std::make_shared(name);}Status FileSourceRegister(const std::shared_ptr& reg){    SourcePluginDef definition;    definition.name = "FileSource";    definition.description = "File source";    definition.rank = 100; // 100: max rank    definition.protocol.emplace_back(ProtocolType::FILE);    definition.creator = FileSourcePluginCreator;    return reg->AddPlugin(definition);}//PLUGIN_DEFINITION傳入四個參數(shù)PLUGIN_DEFINITION(FileSource,LicenseType::APACHE_V2,FileSourceRegister,[]{});

使用 PLUGIN_DEFINITION 宏定義插件(即上面最后一行代碼)時,傳入了四個參數(shù):

a) 插件名稱:即示例中的“FileSource”。

b) License 信息:即示例中的“LicenseType::APACHE_V2”。

c) 插件注冊函數(shù):即示例中的“FileSourceRegister”,該函數(shù)描述了插件基本信息,包括插件對象創(chuàng)建函數(shù),并且還調(diào)用 AddPlugin 把插件注冊到系統(tǒng)中。

d) 插件反注冊函數(shù):可以傳為空實現(xiàn)。

(2)功能實現(xiàn)

實現(xiàn)插件功能時,需根據(jù)要實現(xiàn)的插件類型,繼承對應(yīng)插件接口類,并實現(xiàn)相關(guān)接口。比如實現(xiàn)輸入插件 FileSource,需要繼承 SourcePlugin,并實現(xiàn) SetSource、Read 等接口,代碼如下:


// 定義FileSourcePlugin類繼承SourcePlugin類class FileSourcePlugin : public SourcePlugin {// 實現(xiàn)SetSource接口, 設(shè)置要打開的文件路徑Status SetSource(std::shared_ptr source) {return OpenFile(source->GetSourceUri());}// 實現(xiàn)Read接口,它會讀取數(shù)據(jù)用于后續(xù)處理Status Read(std::shared_ptr& buffer, size_t expectedLen){std::fread(bufData->GetWritableAddr(expectedLen), sizeof(char), expectedLen, fp_);return Status::OK;}}

FileSource插件的完整代碼可參考:

https://gitee.com/openharmony/multimedia_histreamer/tree/master/engine/plugin/plugins/source/file_source

2. 插件的部署

使用 PLUGIN_DEFINITION 定義的 HiStreamer 插件,可以是單一功能的插件,也可以是有多個功能的插件包。每個這樣的插件或插件包,可以獨立編譯成.a或者.so,分別對應(yīng)以下兩種部署方式:

● 靜態(tài)部署:一般用在 mini 設(shè)備上,插件編譯成靜態(tài)庫.a,鏈接到系統(tǒng)中。

● 動態(tài)部署:一般用在 small/standard 設(shè)備上,插件編譯成動態(tài)庫.so,放到系統(tǒng)指定目錄下,動態(tài)加載運行。

3. 插件的運行

插件開發(fā)完成且部署到系統(tǒng)之后,HiStreamer 啟動時就會自動完成插件的注冊。下一步,就是運行插件了。

運行新實現(xiàn)的插件,需要先滿足該插件的運行條件。比如:FileSource 只會在播放本地文件時運行;MP3 解碼插件只會在播放 MP3 文件時運行......

開發(fā)者可以通過日志信息,查看是否運行了自己的插件。如果有別的插件注冊到系統(tǒng)中,導致自己的插件無法運行時,可以卸載引起干擾的插件。卸載動態(tài)部署的插件,刪除對應(yīng)的.so即可;卸載靜態(tài)部署的插件,需要修改編譯腳本取消對應(yīng)插件的編譯。

五、結(jié)束語

OpenHarmony 歡迎廣大開發(fā)者一起加入 HiStreamer 插件開發(fā),擴展自己想要的媒體功能,共同豐富 HiStreamer 媒體生態(tài)!

同時,預(yù)告大家:HiStreamer 的下一個版本將為 Standard 設(shè)備增強更多功能,敬請期待!

本期關(guān)于 HiStreamer 的介紹就到這里了。

更多HiStreamer信息,請參考:

https://gitee.com/openharmony/multimedia_histreamerhttps://gitee.com/openharmony/multimedia_histreamerhttps://gitee.com/openharmony/multimedia_histreamer

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 音視頻
    +關(guān)注

    關(guān)注

    4

    文章

    570

    瀏覽量

    31180
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3920

    瀏覽量

    20679

原文標題:OpenHarmony 3.1 Release版本關(guān)鍵特性解析——OpenHarmony新音視頻引擎——HiStreamer

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    音視頻編解碼封裝解封裝部件介紹

    是否有探索開源鴻蒙音視頻編解碼技術(shù)的欲望?是否對開源鴻蒙音視頻編解碼格式支持有訴求?別急——今天這份開源鴻蒙AVCodec Kit介紹文章,就是解答疑惑的指南!參考這份指南,可以使用開源鴻蒙的音視頻編解碼能力,進行應(yīng)用開發(fā);也可
    的頭像 發(fā)表于 10-31 09:15 ?229次閱讀
    <b class='flag-5'>音視頻</b>編解碼封裝解封裝部件介紹

    從 “單控制” 到 “智能可視”:分布式系統(tǒng)與傳統(tǒng)音視頻控制系統(tǒng)的關(guān)鍵區(qū)別

    和通信。而傳統(tǒng)的音視頻控制系統(tǒng)通常采用集中式架構(gòu),將所有的音視頻處理、數(shù)據(jù)通信等功能集中在臺服務(wù)器上進行處理。 2.靈活性:分布式可視化控制系統(tǒng)由于采用了分布式架構(gòu),可以更加靈活地適應(yīng)不同的場景需求,可以隨時增
    的頭像 發(fā)表于 10-21 10:52 ?221次閱讀

    音視頻開發(fā)全棧解析

    Media Kit 讓開發(fā)者可以調(diào)用系統(tǒng)的音視頻能力,涵蓋播放、錄制、錄屏、元數(shù)據(jù)提取與轉(zhuǎn)碼六大核心功能模塊,支撐系統(tǒng)應(yīng)用與第三方應(yīng)用在視頻播放、內(nèi)容創(chuàng)作、教學錄屏、直播互動等典型場景下的音視頻處理需求。
    的頭像 發(fā)表于 09-18 14:42 ?554次閱讀
    <b class='flag-5'>音視頻</b>開發(fā)全棧解析

    千視電子受邀亮相2025音視頻產(chǎn)業(yè)鏈研討會,引領(lǐng)全鏈路音視頻IP化新趨勢

    2025年8月22日,由中國電子音響行業(yè)協(xié)會和湖南省工業(yè)和信息化廳聯(lián)合主辦的“2025音視頻產(chǎn)業(yè)鏈發(fā)展研討暨對接會”在長沙舉行?;顒訁R聚音視頻產(chǎn)業(yè)鏈上下游企業(yè),以及長沙市相關(guān)政府領(lǐng)導與行業(yè)
    的頭像 發(fā)表于 08-27 11:33 ?980次閱讀
    千視電子受邀亮相2025<b class='flag-5'>音視頻</b>產(chǎn)業(yè)鏈研討會,引領(lǐng)全鏈路<b class='flag-5'>音視頻</b>IP化新趨勢

    雷曼光電COB超高清顯示屏落地馬欄山音視頻實驗室

    雷曼光電憑借在Micro LED領(lǐng)域的深厚技術(shù)積累和雷曼COB超高清顯示產(chǎn)品的卓越性能,為湖南長沙馬欄山音視頻實驗室打造核心顯示方案。
    的頭像 發(fā)表于 07-09 17:05 ?751次閱讀

    泰芯半導體推出星閃音視頻無線SOC芯片TXW828

    在短距離無線通信技術(shù)加速迭代的浪潮中,珠海泰芯半導體有限公司全球首先發(fā)布支持星閃(NearLink)標準的音視頻無線SOC芯片——TXW828。這款集WiFi/藍牙BLE/星閃三模融合音視頻無線芯片
    的頭像 發(fā)表于 06-20 15:51 ?2224次閱讀

    中國音視頻產(chǎn)業(yè)邁向高質(zhì)量發(fā)展

    隨著超高清先鋒計劃的逐步推進,截至2024年底,中國音視頻產(chǎn)業(yè)規(guī)模超5萬億,包括個人消費電子、家庭影音娛樂、行業(yè)多媒體應(yīng)用及車載視聽產(chǎn)業(yè)和相關(guān)衍生應(yīng)用等行業(yè)企業(yè)超過百萬家,音視頻產(chǎn)業(yè)已經(jīng)成為國家數(shù)字經(jīng)濟發(fā)展的重要支柱。
    的頭像 發(fā)表于 04-24 11:10 ?1062次閱讀

    音視頻體化解決方案

    隨著數(shù)字化轉(zhuǎn)型加速,音視頻技術(shù)在各行業(yè)深度應(yīng)用,傳統(tǒng)音視頻分散式管理系統(tǒng)面臨多源異構(gòu)設(shè)備接入困難、數(shù)據(jù)孤島林立、運維復雜、協(xié)作效率低下等挑戰(zhàn),各行業(yè)對信息技術(shù)的需求逐漸從單化向集成化、系統(tǒng)化轉(zhuǎn)變
    的頭像 發(fā)表于 04-24 09:14 ?866次閱讀

    2025年6月2日起,印度尼西亞對音視頻產(chǎn)品實施強制SNI認證!

    印度尼西亞/強制實施音視頻產(chǎn)品SNI認證2025年6月2日正式生效2024年11月13日,印度尼西亞工業(yè)部(MoI)頒布第75號工業(yè)部條例《關(guān)于強制實施音視頻產(chǎn)品國家標準
    的頭像 發(fā)表于 03-14 17:37 ?2719次閱讀
    2025年6月2日起,印度尼西亞對<b class='flag-5'>音視頻</b>產(chǎn)品實施強制SNI認證!

    實用調(diào)試技能:全志T113-i 音視頻測試

    前言:音視頻功能是現(xiàn)代嵌入式系統(tǒng)中的核心應(yīng)用之,尤其在全志T113-i開發(fā)板中,其豐富的音視頻接口為開發(fā)者提供強大的開發(fā)能力。本篇文章將帶你快速掌握T113-i平臺下
    的頭像 發(fā)表于 03-06 08:31 ?2228次閱讀
    實用調(diào)試技能:全志T113-i <b class='flag-5'>音視頻</b>測試

    音視頻 4K 高清傳輸,HDMI 光端機成 LED 屏監(jiān)控、多場景傳輸利器

    全面解析 HDMI 光端機 4K 音視頻多發(fā)多收 LED 屏監(jiān)控 USB 鍵鼠光纖網(wǎng)線傳輸收發(fā)器 在數(shù)字化時代,信息傳輸?shù)母咝耘c穩(wěn)定性至關(guān)重要。HDMI 光端機 4K 音視頻多發(fā)多收 LED 屏
    的頭像 發(fā)表于 02-19 20:54 ?970次閱讀
    <b class='flag-5'>音視頻</b> 4K 高清傳輸,HDMI 光端機成 LED 屏監(jiān)控、多場景傳輸利器

    RCA接口音視頻傳輸?shù)脑?/a>

    RCA接口音視頻傳輸?shù)脑碇饕谀M信號的傳輸方式。以下是對其傳輸原理的介紹: 、RCA接口的基本結(jié)構(gòu) RCA接口,又稱AV接口或蓮花插座,其結(jié)構(gòu)包括個圓形的插頭和個相應(yīng)的插座
    的頭像 發(fā)表于 02-17 15:36 ?2245次閱讀

    RK628H:高端音視頻處理與傳輸芯片詳解

    RK628H是一款集高清音視頻處理與傳輸功能于體的高端芯片,專為滿足現(xiàn)代多媒體設(shè)備對高分辨率、高幀率視頻以及高質(zhì)量音頻的需求而設(shè)計。其強大的音視頻
    的頭像 發(fā)表于 02-10 17:56 ?2009次閱讀

    艾為電子助力閃極科技發(fā)布音視頻AI眼鏡

    日前,閃極科技發(fā)布 “閃極 A1 拍拍鏡”。這是一款音視頻AI眼鏡,搭載國產(chǎn)紫光展銳去蜂窩平臺,內(nèi)置1600萬索尼高清攝像頭。旅行、日常,輕觸鏡腿即可拍照攝像,解放雙手,所見即拍,無感出行。
    的頭像 發(fā)表于 01-06 10:49 ?1211次閱讀
    艾為電子助力閃極科技發(fā)布<b class='flag-5'>音視頻</b>AI眼鏡

    國科微榮獲音視頻領(lǐng)域關(guān)鍵技術(shù)突破等獎

    近日,第五屆“馬欄山杯”國際音視頻算法大賽-2024音視頻領(lǐng)域關(guān)鍵技術(shù)突破獎揭曉,國科微8K超高清視頻系列芯片憑借優(yōu)異的產(chǎn)品性能及示范性應(yīng)用獲評等獎。
    的頭像 發(fā)表于 12-26 15:11 ?846次閱讀