您的位置:首頁 > 軟件教程 > 教程 > 國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風聲音到流媒體服務(wù)器

國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風聲音到流媒體服務(wù)器

來源:好特整理 | 時間:2024-10-24 09:56:14 | 閱讀:107 |  標簽: T S C in 服務(wù) 麥克風 流媒體 攝像頭 服務(wù)器 媒體 操作系統(tǒng) linux 視頻 國產(chǎn)   | 分享到:

隨著國際政治經(jīng)濟形勢的變化,尤其是中美科技競爭日益激烈,軟件信創(chuàng)國產(chǎn)化已經(jīng)迫在眉睫。在這種大環(huán)境下,有客戶需要將現(xiàn)有的Windows軟件逐步遷移到信創(chuàng)國產(chǎn)化基礎(chǔ)設(shè)施上,比如需要在銀河麒麟或統(tǒng)信UOS上實現(xiàn)RTMP推流攝像頭視頻和麥克風聲音到流媒體服務(wù)器(如nginx或srs),那么這個要如何實現(xiàn)了?

隨著國際政治經(jīng)濟形勢的變化,尤其是中美科技競爭日益激烈,軟件信創(chuàng)國產(chǎn)化已經(jīng)迫在眉睫。在這種大環(huán)境下,我們將現(xiàn)有的Windows版軟件逐步遷移到信創(chuàng)國產(chǎn)化基礎(chǔ)設(shè)施上,適配國產(chǎn)操作系統(tǒng)(如銀河麒麟、統(tǒng)信UOS)、國信芯片(如飛騰、鯤鵬、海光、龍芯、麒麟)以及國產(chǎn)DB。

我們經(jīng)常有這樣的需求,比如需要在銀河麒麟或統(tǒng)信UOS上實現(xiàn)RTMP推流攝像頭視頻和麥克風聲音到流媒體服務(wù)器(如nginx或srs),那么這個要如何實現(xiàn)了?

一. 技術(shù)方案

要完成這個功能,具體來說,需要解決如下幾個技術(shù)問題:

(1)麥克風數(shù)據(jù)采集。

(2)攝像頭數(shù)據(jù)采集。

(3)音頻數(shù)據(jù)AAC編碼。

(4)視頻數(shù)據(jù)H264編碼。

(5)將編碼后的數(shù)據(jù)按RTMP協(xié)議推送給流媒體服務(wù)器。

(6)通過時間戳(PTS)保證音頻視頻的同步。

我們使用跨平臺的 .NET Core (C#),跨平臺的UI框架Avalonia,再借助 LinuxCapture 和 NPusher.NetCore 這兩個組件,就很容易采集到麥克風和攝像頭的數(shù)據(jù),并且將它們推流到流媒體服務(wù)器上。

我們先看看推流程序在銀河麒麟上的運行效果:

國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風聲音到流媒體服務(wù)器

兩個下拉列表可以選擇要使用的麥克風和攝像頭設(shè)備。

點擊“開始”按鈕,麥克風和攝像頭將開始采集數(shù)據(jù),并推流至流媒體Server。

如果中途網(wǎng)絡(luò)斷開,推流將會中斷,并嘗試自動重連,重連成功后,將恢復推流。

點擊“結(jié)束”按鈕,則將結(jié)束音視頻采集和推流。

二.具體實現(xiàn)

(1)ICameraCapturer是攝像頭視頻采集組件;IMicrophoneCapturer是麥克風聲音采集組件。

(2)我們可以通過調(diào)用CapturerFactory的CreateXXXX方法來創(chuàng)建對應的采集器實例。

(3)得到采集器實例后,調(diào)用Start方法,即可開始采集;調(diào)用Stop方法,即停止采集。

(4)采集得到的數(shù)據(jù),將通過相應的事件(ImageCaptured、AudioCaptured)暴露出來,我們預定這些事件,即可拿到采集的數(shù)據(jù)。

(5)將拿到的數(shù)據(jù)喂給IStreamPusher,就會將其推流到指定的流媒體服務(wù)器。

我們這里列一下核心代碼,完整的代碼大家可以從文末下載源碼進行了解。

創(chuàng)建并啟動采集器:

創(chuàng)建并啟動推流器:

將采集到的數(shù)據(jù)喂給推流器:

推流器內(nèi)部會對音視頻數(shù)據(jù)進行編碼,并依據(jù)RTMP協(xié)議發(fā)送給流媒體服務(wù)器。

停止推流:

三. 部署運行

如果要在銀河麒麟或統(tǒng)信UOS上運行這里的RTMP推流程序,則需要現(xiàn)在目標操作系統(tǒng)上安裝.NET Core 3.1。

然后將VS生成目錄下的 netcoreapp3.1 文件夾拷貝到目標電腦上,進入netcoreapp3.1文件夾,打開終端,并在終端中輸入如下命令:

回車運行后,就會出現(xiàn)前面截圖的UI界面,然后我們就可以預覽攝像頭,并開始推流麥克風攝像頭了。

四. 源碼下載

Oraycn.Avalonias.PusherDemo.rar

源碼中包含的非托管庫是X64架構(gòu)的,如果需要在其它架構(gòu)的國產(chǎn)芯片上運行該程序,可以聯(lián)系我獲取對應架構(gòu)的非托管庫。

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認同期限觀點或證實其描述。

風 1.01
風 1.01
類型:休閑益智  運營狀態(tài):內(nèi)測  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《風》是由開發(fā)商小白兔工作室開發(fā)的一款畫風3D清新可愛的休閑益智類游戲,游戲中玩家通過操控羽毛移動、

相關(guān)視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)