專利名稱:一種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法及其實現(xiàn)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流媒體播放領(lǐng)域,特別涉及ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法及其實現(xiàn)系統(tǒng)。
背景技術(shù):
多年來,流媒體網(wǎng)絡(luò)傳輸視頻產(chǎn)品主要使用RTSP (Real TimeStreamingProtocol,實時流媒體傳輸協(xié)議)服務(wù)協(xié)議,在安防市場上還沒有內(nèi)嵌RTMP(Real TimeMessaging Protocol,實時消息傳送協(xié)議)服務(wù)端協(xié)議的視頻監(jiān)控產(chǎn)品,更不存在同時支持RTMP和RTSP兩種網(wǎng)絡(luò)服務(wù)端協(xié)議的產(chǎn)品,主要原因是RTMP網(wǎng)絡(luò)服務(wù)端協(xié)議比較復(fù)雜,雖然是開放協(xié)議,但沒有詳細(xì)的底層文檔資料,且嵌入式系統(tǒng)是資源受限的平臺,在嵌入式平臺開發(fā)RTMP和RTSP網(wǎng)絡(luò)該協(xié)議對開發(fā)人員的軟件架構(gòu)設(shè)計能力和軟件編程水平要求較高; 一旦開發(fā)不好,會造成產(chǎn)品不穩(wěn)定,影響品牌質(zhì)量。因此當(dāng)前的嵌入式視頻產(chǎn)品生產(chǎn)商都采取較保守的開發(fā)策略,主要是使用自定義網(wǎng)絡(luò)傳輸協(xié)議,簡單可靠。隨著當(dāng)前Flash流媒體的廣泛應(yīng)用,眾多網(wǎng)絡(luò)流媒體的點播和直播節(jié)目都是以FMP(Flash Media Player)為客戶端;例如土豆網(wǎng),優(yōu)酷網(wǎng)等大型流媒體服務(wù)網(wǎng)站,都提供Flash視頻點播功能。央視網(wǎng)站還提供新聞節(jié)目的Flash點播和直播功能。FMP是ー種安全可靠的流媒體插件,支持Linux, Windows和Mac等多種操作系統(tǒng),在全球80%以上的PC機(jī)上都裝有該插件。但是當(dāng)前沒有ー款嵌入式視頻監(jiān)控產(chǎn)品能夠?qū)崿F(xiàn)與FMP的無縫對接,因此浪費(fèi)了龐大的客戶端資源。當(dāng)前的RTSP傳輸協(xié)議也越來越受到國際頂級安防監(jiān)控廠商的關(guān)注,以前RTSP協(xié)議和相關(guān)軟件產(chǎn)品都是在PC機(jī)上廣泛應(yīng)用,因為PC機(jī)軟硬件資源豐富,而嵌入式產(chǎn)品軟硬件資源受CPU速度低,內(nèi)存容量小的限制,不利于這種重量級的協(xié)議移植。但是隨著嵌入式(PU速度不斷提升,內(nèi)存容量和成本不斷下降,移植大型網(wǎng)絡(luò)協(xié)議到嵌入式系統(tǒng)成為可能。視頻網(wǎng)絡(luò)傳輸是軟件產(chǎn)品中最耗時耗カ難度較高的部分,而硬件設(shè)計或視頻采集、編解碼都有芯片廠商提供參考設(shè)計板即評估板,包括全套開發(fā)平臺,如軟件驅(qū)動和硬件電路原理圖等,因此開發(fā)門檻較低,網(wǎng)絡(luò)傳輸部分則是技術(shù)含量較高的ー個地方。使用本中間件在一定程度上降低了視頻監(jiān)控產(chǎn)品開發(fā)的難度。并且由于其支持兩大國際主流標(biāo)準(zhǔn),容易被安防監(jiān)控生產(chǎn)商接受。安防行業(yè)在視頻監(jiān)控市場需求毎年都以30%以上的速度增長,逐步向圖像高清化,網(wǎng)絡(luò)傳輸協(xié)議標(biāo)準(zhǔn)化方向發(fā)展。僅從全國每年數(shù)千萬臺視頻監(jiān)控產(chǎn)品的使用數(shù)量上看,無論是軟件授權(quán)或零售方式運(yùn)營,該中間件都會帶來巨大的市場效益。未來的安防行業(yè)的市場競爭不再是硬件成本,而是軟件功能與兼容標(biāo)準(zhǔn)的競爭。注釋AMF(Action Message Format);FLV(Flash Video);RTP (Real-time Transport Protocol,實時傳輸協(xié)議);Webserver(網(wǎng)頁服務(wù)器);
ARM+DSP(Advanced RISC Machines+Digital Signal Processor)ASIC (Application Specific Integrated Circuit,專用集成電路);SDP(會話描述協(xié)議);Live (實時直播);VOD (媒體點播)。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法及其實現(xiàn)系統(tǒng),可廣泛應(yīng)用于安防視頻監(jiān)控領(lǐng)域,支持當(dāng)前兩大主流實時流媒體傳輸協(xié)議標(biāo)準(zhǔn),系統(tǒng)架構(gòu)設(shè)計合理,兼容性和可擴(kuò)展性強(qiáng)。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案之ー是提供ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法,包括如下步驟a、音視頻采集接ロ將音視頻模擬信號轉(zhuǎn)換為數(shù)字信號;b、步驟a中的數(shù)字信號經(jīng)流媒體處理器轉(zhuǎn)換為媒體基本流;C、步驟b中的媒體基本流經(jīng)過流媒體視頻服務(wù)器中間件轉(zhuǎn)換為以AMF編碼的FLV封包或以RTP封包為封包格式的網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流;d、以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收步驟c中的網(wǎng)絡(luò)協(xié)議封包
數(shù)據(jù)流。本發(fā)明所述的ー種網(wǎng)絡(luò)傳輸方法中,步驟c中所述的流媒體視頻服務(wù)器中間件的處理過程包括以下步驟al、媒體基本流經(jīng)過應(yīng)用編程接ロ送入流媒體通道緩沖;a2、網(wǎng)絡(luò)傳輸模塊偵聽流媒體通道中的緩沖數(shù)據(jù)和用戶請求;a3、網(wǎng)絡(luò)傳輸模塊應(yīng)用戶請求將緩沖數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流。本發(fā)明所述的ー種網(wǎng)絡(luò)傳輸方法中,步驟al中所述的應(yīng)用編程接ロ的處理過程包括以下步驟b I、流媒體配置模塊初始化;b2、初始化服務(wù)端ロ ;b3、初始化網(wǎng)絡(luò)用戶池和流媒體通道池;b4、啟動核心服務(wù)線程。本發(fā)明所述的ー種網(wǎng)絡(luò)傳輸方法中,步驟bl中所述的流媒體配置模塊包括流媒體編解碼參數(shù)文檔、流媒體配置回調(diào)函數(shù)接口和Webserver遠(yuǎn)程配置。本發(fā)明的技術(shù)方案之ニ是提供一種根據(jù)上述嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法的實現(xiàn)系統(tǒng),包括依次連接的音視頻源設(shè)備、音視頻采集接ロ、流媒體處理器和以太網(wǎng)客戶終端,流媒體處理器通過流媒體服務(wù)器中間件與以太網(wǎng)客戶終端連接;音視頻源設(shè)備用于提供音視頻模擬信號或音視頻數(shù)字信號;音視頻采集接ロ用于將音視頻模擬信號轉(zhuǎn)換為音視頻數(shù)字信號;流媒體處理器用于將數(shù)字信號轉(zhuǎn)換為媒體基本流;流媒體服務(wù)器中間件包括應(yīng)用編程接ロ模塊、流媒體通道模塊和網(wǎng)絡(luò)傳輸模塊,媒體基本流通過應(yīng)用編程接ロ模塊送入流媒體通道模塊緩沖,網(wǎng)絡(luò)傳輸模塊根據(jù)用戶請求對緩沖數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)協(xié)議封包后發(fā)送給以太網(wǎng)客戶終端;以太網(wǎng)客戶終端用于接收網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流,并解碼播放。作為優(yōu)選方案,所述應(yīng)用編程接ロ模塊在初始化流媒體配置模塊、服務(wù)器端ロ、網(wǎng)絡(luò)用戶池和流媒體通道池之后啟動核心服務(wù)線程。作為優(yōu)選方案,所述流媒體通道模塊包括線程、緩沖區(qū)、用戶服務(wù)鏈表和網(wǎng)絡(luò)流媒體封包模塊接ロ對象。作為優(yōu)選方案,所述網(wǎng)絡(luò)傳輸模塊的網(wǎng)絡(luò)協(xié)議封包格式為以AMF編碼的FLV封包或以RTP的封包。作為優(yōu)選方案,所述以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收流媒體
數(shù)據(jù)。 本發(fā)明ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法及其實現(xiàn)系統(tǒng)的有益效果是,支持當(dāng)前主流的兩種流媒體實時傳輸協(xié)議,RTMP協(xié)議和RTSP協(xié)議,可用于安防監(jiān)控領(lǐng)域的嵌入式視頻采集、網(wǎng)絡(luò)傳輸產(chǎn)品,能夠?qū)崿F(xiàn)多種硬件平臺的流媒體實時傳輸功能。
圖I為本發(fā)明ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法的示意框圖;圖2為本發(fā)明流媒體視頻服務(wù)器中間件處理流程示意框圖;圖3為本發(fā)明應(yīng)用編程接ロ的處理過程示意框圖;圖4為本發(fā)明系統(tǒng)結(jié)構(gòu)框圖;圖5為本發(fā)明基本數(shù)據(jù)流結(jié)構(gòu)框圖;圖6為本發(fā)明應(yīng)用編程接ロ核心服務(wù)線程工作流程圖;圖7為本發(fā)明流媒體配置模塊工作流程圖;圖8為本發(fā)明客戶終端用戶登錄請求流媒體播放流程圖;圖9為本發(fā)明流媒體傳輸通道的線程工作流程圖;圖10為本發(fā)明流媒體網(wǎng)絡(luò)傳輸模塊工作流程圖。圖中,I、音視頻源設(shè)備,2、音視頻采集接ロ,3、流媒體處理器,4、媒體服務(wù)器中間件,5、以太網(wǎng)客戶終端。
具體實施例方式為了使本發(fā)明的創(chuàng)作特征、技術(shù)手段與達(dá)成目的易于明白理解,以下結(jié)合具體實施例進(jìn)ー步闡述本發(fā)明。實施例參看圖1,ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法,包括步驟音視頻采集接ロ將音視頻模擬信號轉(zhuǎn)換為數(shù)字信號Sll ;數(shù)字信號經(jīng)流媒體處理器轉(zhuǎn)換為媒體基本流S12 ;媒體基本流經(jīng)過流媒體視頻服務(wù)器中間件轉(zhuǎn)換為以AMF編碼的FLV封包或以RTP封包為封包格式的網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流S13和以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流S14。步驟S13的處理過程如圖2所示,包括步驟媒體基本流經(jīng)過應(yīng)用編程接ロ送入流媒體通道緩沖S21 ;網(wǎng)絡(luò)傳輸模塊偵聽流媒體通道中的緩沖數(shù)據(jù)和用戶請求S22和網(wǎng)絡(luò)傳輸模塊應(yīng)用戶請求將緩沖數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流S23。步驟S21的應(yīng)用編程接ロ的處理過程如圖3所示包括步驟流媒體配置模塊初始化S31 ;初始化服務(wù)端ロ RTMP和RTSP S32 ;初始化網(wǎng)絡(luò)用戶池和流媒體通道池S33 ;啟動核心服務(wù)線程S34。S31中所述的流媒體配置模塊包括流媒體編解碼參數(shù)文檔、流媒體配置回調(diào)函數(shù)接口和WebServer遠(yuǎn)程配置。結(jié)合圖4和圖5,上述發(fā)明方法的實現(xiàn)系統(tǒng),包括依次連接的音視頻源設(shè)備I、音視頻采集接ロ 2、流媒體處理器3和以太網(wǎng)客戶終端5,流媒體處理器3通過流媒體服務(wù)器中間件4與以太網(wǎng)客戶終端5連接;音視頻源設(shè)備I用于提供音視頻模擬信號或音視頻數(shù)字信號,包括攝像頭、音頻麥克風(fēng)或Flash存儲器等其它外接設(shè)備;音視頻采集接ロ 2用于將攝像頭、音頻麥克風(fēng)等設(shè)備提供的音視頻模擬信號轉(zhuǎn)換為音視頻數(shù)字信號;Flash存儲器等直接提供數(shù)字信號的外接設(shè)備則直接與流媒體處理器3連接;流媒體處理器3用于將數(shù)字信號轉(zhuǎn)換為媒體基本流,其中流媒體處理器3可以是ARM+DSP結(jié)構(gòu),也可以是ASIC,即內(nèi)嵌ARM核架構(gòu)的處理器,都具備實時視頻編碼壓縮能力,并且可以運(yùn)行嵌入式操作系統(tǒng)(如Linux 或 Vxfforks 等)。 如圖5所示,流媒體服務(wù)器中間件4處于流媒體處理器3與網(wǎng)絡(luò)客戶終端5之間的關(guān)鍵位置,流媒體服務(wù)器中間件4包括應(yīng)用編程接ロ模塊、流媒體通道模塊和網(wǎng)絡(luò)傳輸模塊,媒體基本流通過應(yīng)用編程接ロ模塊送入流媒體通道模塊緩沖,網(wǎng)絡(luò)傳輸模塊根據(jù)用戶請求對緩沖數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)協(xié)議封包后發(fā)送給以太網(wǎng)客戶終端;以太網(wǎng)客戶終端用于接收網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流,并解碼播放。應(yīng)用編程接ロ模塊在初始化流媒體配置模塊、服務(wù)器端ロ、網(wǎng)絡(luò)用戶池和流媒體通道池之后啟動核心服務(wù)線程。流媒體通道模塊包括線程、緩沖區(qū)、用戶服務(wù)鏈表和網(wǎng)絡(luò)流媒體封包模塊接ロ對象。網(wǎng)絡(luò)傳輸模塊的網(wǎng)絡(luò)協(xié)議封包格式為以AMF編碼的FLV封包或以RTP的封包。以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收流媒體數(shù)據(jù)。攝像頭或音頻麥克風(fēng)輸入的都是模擬信號,經(jīng)過音視頻采集接ロ 2轉(zhuǎn)換為數(shù)字信號后,交由流媒體處理器3進(jìn)行編碼壓縮,壓縮后的數(shù)據(jù)就是媒體基本流,這個基本流數(shù)據(jù)通過流媒體服務(wù)器中間件4的應(yīng)用編程接ロ送入流媒體通道進(jìn)行緩沖,當(dāng)網(wǎng)絡(luò)傳輸模塊查詢到某個流媒體通道上有緩沖數(shù)據(jù),就會查詢該通道上是否有用戶成功登錄并請求該通道的音視頻遠(yuǎn)程播放,如果有用戶請求就會根據(jù)用戶服務(wù)類型進(jìn)行相應(yīng)的網(wǎng)絡(luò)協(xié)議封包,然后通過網(wǎng)絡(luò)傳輸模塊發(fā)送給用戶即網(wǎng)絡(luò)客戶終端。流媒體應(yīng)用編程接ロ是高度封裝的獨立的服務(wù)程序?qū)η度胧接布到y(tǒng)的公共接ロ,通過該接ロ嵌入式系統(tǒng)就可以方便調(diào)用流媒體應(yīng)用編程接ロ實現(xiàn)網(wǎng)絡(luò)的多媒體網(wǎng)絡(luò)傳輸服務(wù);流媒體應(yīng)用編程接ロ在開始正常工作前,必須執(zhí)行如圖3所示初始化操作,成功初始化各自子模塊后會啟動核心服務(wù)線程。參看圖6,核心服務(wù)線程是集中調(diào)度和消息處理的核心部分,為了提高調(diào)度性能,所有網(wǎng)絡(luò)Socket的I/O操作都先用Select判斷,有網(wǎng)絡(luò)讀寫請求再處理對應(yīng)的Socket,依次輪訓(xùn)各個服務(wù)端ロ模塊有效減少服務(wù)線程數(shù),提高了資源利用率和穩(wěn)定性。流媒體配置模塊S31包括如圖7所示流媒體編解碼參數(shù)文檔管理、流媒體配置回調(diào)函數(shù)接ロ和Webserver遠(yuǎn)程配置管理三部分。每個視頻通道可能支持不同的音視頻編碼標(biāo)準(zhǔn),因此每個流媒體通道都會在配置模塊里對應(yīng)ー個配置參數(shù)文檔;當(dāng)用戶通過遠(yuǎn)程方法調(diào)用修改流媒體采樣編碼參數(shù)時,該接ロ會通知外部應(yīng)用程序做相應(yīng)的動作;WebServer是基于Http協(xié)議的網(wǎng)頁遠(yuǎn)程通信子模塊,支持來自網(wǎng)絡(luò)用戶http請求傳遞配置參數(shù),修改多媒體配置模塊的所有參數(shù)。參看圖7,流媒體配置模塊支持本地和遠(yuǎn)程配置,在沒有配置參數(shù)前,無法成功啟動Webserver,同時也無法支持遠(yuǎn)程配置系統(tǒng)運(yùn)行參數(shù),因此,在啟動前如果檢查到系統(tǒng)沒有初始化,則首先要配置和啟動Webserver,其分支流程首先檢查是否已經(jīng)完成初始化配置,如果沒有初始化配置,則判斷是否需要初始化配置,如果需要初始化配置,則初始化系統(tǒng)默認(rèn)參數(shù)、初始化通知回調(diào)接ロ(為遠(yuǎn)程配置修改參數(shù)時提供給應(yīng)用層通知修改,并支持參數(shù)的修改和實施)、初始化Webserver,然后啟動Webserver。如果WebServer已經(jīng)啟動,但沒有初始化流媒體通道,則必須初始化流媒體通道編碼參數(shù)。如果Webserver已經(jīng)啟動,流媒體通道編碼參數(shù)也已經(jīng)成功設(shè)置,則系統(tǒng)可以在實時運(yùn)行狀態(tài)支持網(wǎng)絡(luò)遠(yuǎn)程配置,遠(yuǎn)程用戶可以通過http協(xié)議的CGI調(diào)用,實現(xiàn)網(wǎng)絡(luò)參數(shù)的讀取和寫入,當(dāng)寫入?yún)?shù)時,會根據(jù)之前配置的通知回調(diào)接ロ與應(yīng)用程序通信,由應(yīng)用程序應(yīng)對參數(shù)的修改。當(dāng)系統(tǒng)初始化完畢,正常工作狀態(tài),會等待用戶登錄,并給網(wǎng)絡(luò)媒體播放提供服務(wù),其服務(wù)流程如圖8所示,網(wǎng)絡(luò)用戶登錄時,用戶管理模塊會查詢用戶管理池中是否有閑置的用戶資源可供使用,對于嵌入式系統(tǒng),內(nèi)存資源必須給予明確的閑置,否則會影響整個·系統(tǒng)的穩(wěn)定性。如果用戶資源已經(jīng)耗盡,則拒絕提供服務(wù),返回錯誤碼,主動斷開連接。如果有閑置用戶資源,則從用戶池提取出來,臨時分配給登錄用戶。然后根據(jù)用戶網(wǎng)絡(luò)連接端ロ,判斷用戶申請的服務(wù)類型,如果是RTSP類型,則返回給用戶本支持的播放命令和播放能力,與用戶建立會話連接,如果用戶需要播放的媒體流存在,則采用SDP報文將媒體流的編碼格式和會話傳輸通道參數(shù)封包返回給用戶。如果用戶選擇RTMP類型服務(wù),則建立虛擬的流媒體通道,協(xié)商好通道傳輸?shù)拿襟w數(shù)據(jù)包最大長度,根據(jù)用戶播放類型,提供Live或VOD服務(wù)。流媒體傳輸通道池模塊中媒體傳輸通道的數(shù)量在圖3所示初始化過程中經(jīng)過流媒體配置模塊即已設(shè)定,初始化完畢流媒體傳輸通道即創(chuàng)建完畢。每個流媒體通道都是由一條線程獨立服務(wù)的,其工作流程如圖9所示,如果有用戶則判斷該用戶的服務(wù)類型,根據(jù)服務(wù)類型進(jìn)行相應(yīng)的網(wǎng)絡(luò)協(xié)議封包,即附加傳輸包頭到基本流數(shù)據(jù)頭部,把該封包給通道上所有用戶發(fā)送一次。如果通道上沒有用戶,則調(diào)用應(yīng)用編程接ロ的流媒體配置模塊的回調(diào)函數(shù)通知流媒體處理器停止該通道音視頻數(shù)據(jù)采集和編碼,井清空流媒體通道緩沖區(qū)。圖9中,流媒體傳輸通道開始必須為每個通道創(chuàng)建ー個緩沖區(qū),用于臨時緩沖來自底層流媒體采集接ロ傳輸?shù)牧髅襟w數(shù)據(jù),同時也必須為每個通道創(chuàng)建ー個用戶鏈表,記錄所有需要該通道提供媒體服務(wù)的用戶信息。每個流媒體傳輸通道采用一條線程獨立管理,線程循環(huán)檢測,通道緩沖區(qū)內(nèi)是否有基本流媒體數(shù)據(jù),即直接來自音頻或視頻編碼器的數(shù)據(jù)。如果沒有數(shù)據(jù),則循環(huán)繼續(xù)讀取,如果有數(shù)據(jù),則判斷該通道是否有用戶請求流媒體服務(wù),如果有用戶請求,則判斷該用戶是需要RTMP協(xié)議的服務(wù)還是RTSP協(xié)議的服務(wù),如果是RTMP服務(wù),則把基本流媒體數(shù)據(jù)進(jìn)行FLV網(wǎng)絡(luò)協(xié)議封包,然后調(diào)用網(wǎng)絡(luò)傳輸模塊發(fā)送給用戶;如果是RTSP服務(wù),則把基本流媒體數(shù)據(jù)進(jìn)行RTP網(wǎng)絡(luò)協(xié)議格式封包,然后調(diào)用網(wǎng)絡(luò)傳輸模塊發(fā)送給用戶;當(dāng)服務(wù)完一個用戶,繼續(xù)進(jìn)行下ー個用戶服務(wù),直到把通道內(nèi)用戶鏈表所有用戶服務(wù)完,然后進(jìn)行下一次基本流數(shù)據(jù)讀取與服務(wù)的循環(huán)。當(dāng)有網(wǎng)絡(luò)用戶成功請求播放流媒體后,會注冊在其請求的通道用戶鏈表上,流媒體傳輸接ロ模塊,流媒體傳輸模塊、網(wǎng)絡(luò)協(xié)議封包模塊和網(wǎng)絡(luò)傳輸模塊協(xié)同配合為網(wǎng)絡(luò)用戶提供指定的媒體播放服務(wù),流媒體網(wǎng)絡(luò)傳輸模塊是面向網(wǎng)絡(luò)客戶的最終模塊,如圖10所示,流媒體的網(wǎng)絡(luò)傳輸模塊是直接服務(wù)網(wǎng)絡(luò)用戶的,開始必須讀取當(dāng)前系統(tǒng)時間戳和當(dāng)前用戶最后一次發(fā)送的時間戳,對于RTMP的FLV封閉需要知道幀間時間差,便于FMP處理流媒體解碼。再傳送ー個數(shù)據(jù)包前需要判斷當(dāng)前服務(wù)的用戶是RTMP協(xié)議服務(wù)還是RTSP協(xié)議服務(wù),如果是RTSP網(wǎng)絡(luò)用戶,則發(fā)送RTP封包的數(shù)據(jù)給用戶。如果是RTMP網(wǎng)絡(luò)用戶,則需要檢查第一次發(fā)送給用戶的視頻幀是否為配置幀數(shù)據(jù),即是否攜帯了該視頻流畫面尺寸、編碼格式、碼流等基本信息,如果沒有發(fā)送過配置幀,則檢查當(dāng)前要發(fā)送的數(shù)據(jù)是否為視頻配置幀數(shù)據(jù),如果當(dāng)前數(shù)據(jù)不是配置幀,則放棄本次數(shù)據(jù),退出發(fā)送過程,如果當(dāng)前數(shù)據(jù)是配置巾貞,則可以立即發(fā)送給網(wǎng)絡(luò)用戶。如果RTMP網(wǎng)絡(luò)用戶已經(jīng)接收過配置幀數(shù)據(jù),此后無需再發(fā);此后發(fā)送的視頻流數(shù)據(jù)都必須從視頻關(guān)鍵幀開始發(fā)送并實施同歩。因此每個用戶都會給設(shè)定一個關(guān)鍵幀同步 標(biāo)志,如果該用戶需要從關(guān)鍵幀開始接收視頻流數(shù)據(jù),則在每次發(fā)送前都會檢查當(dāng)前服務(wù)用戶是否需要從關(guān)鍵幀開始,如果需要,則判斷當(dāng)前要發(fā)送的數(shù)據(jù)是否視頻關(guān)鍵幀,如果是關(guān)鍵幀數(shù)據(jù),則立即發(fā)送給用戶,如果不是則判斷是否為音頻數(shù)據(jù),如果是音頻數(shù)據(jù)則可以發(fā)送,如果不是音頻數(shù)據(jù),則為無效數(shù)據(jù),立即丟棄該數(shù)據(jù),退出本次發(fā)送任務(wù);如果為有效音視頻流媒體數(shù)據(jù),則可以發(fā)送給用戶,發(fā)送時需要檢測發(fā)送超時和發(fā)送錯誤,如果發(fā)送失敗,需要通知應(yīng)用層,并通知流媒體通道池管理模塊把該發(fā)送失敗的用戶注銷棹,以免影響其他用戶服務(wù);注銷的用戶會立即回收到用戶池,為下一次用戶登錄服務(wù)提供緩沖。如果發(fā)送超時,則說明該用戶網(wǎng)絡(luò)擁塞,需要適當(dāng)調(diào)整碼率,調(diào)整時,需要標(biāo)定該用戶從下一次視頻關(guān)鍵幀開始提供視頻流傳輸服務(wù),本次的數(shù)據(jù)則丟棄,并通知應(yīng)用層調(diào)整碼率。本次發(fā)送結(jié)束,需要記錄當(dāng)前服務(wù)的用戶最后一次發(fā)送的時間戳。以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等同物界定。
權(quán)利要求
1.ー種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法,其特征在于,包括如下步驟 a、音視頻采集接ロ將音視頻模擬信號轉(zhuǎn)換為數(shù)字信號; b、步驟a中的數(shù)字信號經(jīng)流媒體處理器轉(zhuǎn)換為媒體基本流; C、步驟b中的媒體基本流經(jīng)過流媒體視頻服務(wù)器中間件轉(zhuǎn)換為以AMF編碼的FLV封包或以RTP封包為封包格式的網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流; d、以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收步驟c中的網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流。
2.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)傳輸方法,其特征在于,所述步驟c中流媒體視頻服務(wù)器中間件的處理過程包括以下步驟 al、媒體基本流經(jīng)過應(yīng)用編程接ロ送入流媒體通道緩沖; a2、網(wǎng)絡(luò)傳輸模塊偵聽流媒體通道中的緩沖數(shù)據(jù)和用戶請求; a3、網(wǎng)絡(luò)傳輸模塊應(yīng)用戶請求將緩沖數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)傳輸方法,其特征在于,所述步驟al中的應(yīng)用編程接ロ的處理過程包括以下步驟 bl、流媒體配置模塊初始化; b2、初始化服務(wù)端ロ ; b3、初始化網(wǎng)絡(luò)用戶池和流媒體通道池; b4、啟動核心服務(wù)線程。
4.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)傳輸方法,其特征在于,所述步驟bl中流媒體配置模塊包括流媒體編解碼參數(shù)文檔、流媒體配置回調(diào)函數(shù)接口和Webserver遠(yuǎn)程配置。
5.根據(jù)權(quán)利要求I所述的嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法的實現(xiàn)系統(tǒng),其特征在干, 包括依次連接的音視頻源設(shè)備、音視頻采集接ロ、流媒體處理器和以太網(wǎng)客戶終端,流媒體處理器通過流媒體服務(wù)器中間件與以太網(wǎng)客戶終端連接; 音視頻源設(shè)備用于提供音視頻模擬信號或音視頻數(shù)字信號; 音視頻采集接ロ用于將音視頻模擬信號轉(zhuǎn)換為音視頻數(shù)字信號; 流媒體處理器用于將數(shù)字信號轉(zhuǎn)換為媒體基本流; 流媒體服務(wù)器中間件包括應(yīng)用編程接ロ模塊、流媒體通道模塊和網(wǎng)絡(luò)傳輸模塊,媒體基本流通過應(yīng)用編程接ロ模塊送入流媒體通道模塊緩沖,網(wǎng)絡(luò)傳輸模塊根據(jù)用戶請求對緩沖數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)協(xié)議封包后發(fā)送給以太網(wǎng)客戶終端; 以太網(wǎng)客戶終端用于接收網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流,并解碼播放。
6.根據(jù)權(quán)利要求5所述的實現(xiàn)系統(tǒng),其特征在于,所述應(yīng)用編程接ロ模塊在初始化流媒體配置模塊、服務(wù)器端ロ、網(wǎng)絡(luò)用戶池和流媒體通道池之后啟動核心服務(wù)線程。
7.根據(jù)權(quán)利要求5所述的實現(xiàn)系統(tǒng),其特征在于,所述流媒體通道模塊包括線程、緩沖區(qū)、用戶服務(wù)鏈表和網(wǎng)絡(luò)流媒體封包模塊接ロ對象。
8.根據(jù)權(quán)利要求5所述的實現(xiàn)系統(tǒng),其特征在于,所述網(wǎng)絡(luò)傳輸模塊的網(wǎng)絡(luò)協(xié)議封包格式為以AMF編碼的FLV封包或以RTP的封包。
9.根據(jù)權(quán)利要求5所述的實現(xiàn)系統(tǒng),其特征在于,所述以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收流媒體數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種嵌入式實時流媒體網(wǎng)絡(luò)傳輸方法,包括以下步驟a、音視頻采集接口將音視頻模擬信號轉(zhuǎn)換為數(shù)字信號;b、數(shù)字信號經(jīng)流媒體處理器轉(zhuǎn)換為媒體基本流;c、媒體基本流經(jīng)過流媒體視頻服務(wù)器中間件轉(zhuǎn)換為以AMF編碼的FLV封包或以RTP封包為封包格式的網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流;d、以太網(wǎng)客戶終端通過網(wǎng)絡(luò)傳輸協(xié)議RTMP或RTSP接收網(wǎng)絡(luò)協(xié)議封包數(shù)據(jù)流。本發(fā)明支持當(dāng)前主流的兩種流媒體實時傳輸協(xié)議,RTMP協(xié)議和RTSP協(xié)議,可用于安防監(jiān)控領(lǐng)域的嵌入式視頻采集、網(wǎng)絡(luò)傳輸產(chǎn)品,能夠?qū)崿F(xiàn)多種硬件平臺的流媒體實時傳輸功能。
文檔編號H04N21/2381GK102724561SQ20121015211
公開日2012年10月10日 申請日期2012年5月16日 優(yōu)先權(quán)日2012年5月16日
發(fā)明者黃健 申請人:昆山日通電腦科技辦公設(shè)備有限公司