專利名稱:一種基于android的手機(jī)PDA直播系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)多媒體技術(shù)領(lǐng)域,涉及一種基于android的網(wǎng)絡(luò)流媒體直播及監(jiān)控系統(tǒng),涉及到基于視頻實(shí)時(shí)編碼及實(shí)時(shí)傳輸?shù)奶幚砑夹g(shù)。
背景技術(shù):
Android首次發(fā)布于2008年,并在短短的時(shí)間里風(fēng)靡全球,對智能手機(jī)界產(chǎn)生了巨大的影響,擊敗塞班成為全球市場份額最大的手機(jī)操作系統(tǒng)。由于其巨大的市場份額及影響力,智能手機(jī)徹底的改變了人們的生活。同時(shí)人們對智能手機(jī)的服務(wù)需求也在不斷的增加。目前公知的視頻直播及監(jiān)控系統(tǒng)都是采用有線傳輸或者2.4GHZ的無線通信方式,并且需要相應(yīng)的計(jì)算機(jī)/攝像機(jī)設(shè)備進(jìn)行輔助支持,然后在日常生活中,人們無法滿足隨時(shí)都有計(jì)算機(jī)設(shè)備在身邊的情況,這就限制了直播及監(jiān)控系統(tǒng)的使用范圍,在使用時(shí)間及方式上很不方便。然而,隨著3G技術(shù)的普及,智能手機(jī)的廣泛應(yīng)用,網(wǎng)絡(luò)流媒體服務(wù)需要迅速增加。不斷增多的用戶數(shù)量和用戶對于服務(wù)質(zhì)量要求的提高對傳統(tǒng)的計(jì)算機(jī)/攝像機(jī)模式的直播服務(wù)提出挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于android的PDA視頻直播、監(jiān)控系統(tǒng)。本發(fā)明解決問題的技術(shù)方案是(I)當(dāng)手機(jī)終端初始化運(yùn)行環(huán)境及配置信息后,手機(jī)終端可以選擇無線WIFI網(wǎng)絡(luò)或者移動(dòng)3G網(wǎng)絡(luò),連接到公共網(wǎng)絡(luò)服務(wù)器傳送自身的實(shí)時(shí)狀態(tài)信息,服務(wù)器記錄該手機(jī)終端的IP、端口,并從公共網(wǎng)絡(luò)服務(wù)器獲取可通信的手機(jī)等PDA終端列表。2)發(fā)送終端將獲得的列表中的某個(gè)終端做為視頻數(shù)據(jù)的接收端,并向這個(gè)終端 (以下簡稱接收端)發(fā)送連接請求。隨后,等待接收端應(yīng)答信息的返回。如果接收端同意接收,則開啟自帶攝像頭,對視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)采集,將采集到的視頻數(shù)據(jù)送往編碼接口模塊。(3)在編碼接口處,采用H264算法對采集到的視頻數(shù)據(jù)進(jìn)行視頻編碼。編碼接口對編碼參數(shù)進(jìn)行優(yōu)化采用單幀參考,關(guān)閉自適應(yīng)B幀判定模式,關(guān)閉B幀加權(quán)預(yù)測,動(dòng)態(tài)預(yù)測和分區(qū)方式為全像素塊動(dòng)態(tài)搜索,對每個(gè)塊再用快速模式進(jìn)行四分之一像素塊精確搜索,運(yùn)動(dòng)估計(jì)模式為小菱形搜索法,從而提高了編碼的效率及系統(tǒng)的實(shí)時(shí)性,最后將編碼后的視頻幀數(shù)據(jù)發(fā)往RTP發(fā)送模塊。(4)在RTP發(fā)送模塊中,將編碼后的數(shù)據(jù)幀數(shù)據(jù)發(fā)送至目標(biāo)手機(jī)接收端。由于視頻幀數(shù)據(jù)大小可能超過網(wǎng)絡(luò)的最大傳輸單元(MTU),導(dǎo)致數(shù)據(jù)包的丟棄,損壞視頻完整性。為了提高視頻質(zhì)量,本發(fā)明將壓縮后大小超過MTU的視頻幀進(jìn)行拆分,并在拆分后的每個(gè)包的頭部加入NAL單元,同時(shí)在RTP包中寫入時(shí)間戳。這樣既提高了視頻網(wǎng)絡(luò)傳輸?shù)男?,又保證了視頻的完整性。此后便將RTP封裝的包發(fā)往目標(biāo)手機(jī)等PDA終端。
(5)在RTP接收模塊中,接收端預(yù)先啟動(dòng),循環(huán)檢測是否有數(shù)據(jù)到來,然后通過RTP 協(xié)議接收數(shù)據(jù)包,提取并剝離首部的NAL單元,并按照相應(yīng)的控制信息將接收到的包組成完整的數(shù)據(jù)幀,放入視頻幀循環(huán)隊(duì)列,等待解碼器解碼播放。(6)在解碼端,調(diào)用解碼器將隊(duì)列中的視頻數(shù)據(jù)進(jìn)行H264解碼。為滿足視頻實(shí)時(shí)性的要求,接收端會對當(dāng)前待解碼的視頻幀進(jìn)行時(shí)間戳的判斷,超過最低可接受時(shí)延(I/ 預(yù)訂幀率),則丟棄該幀,并從循環(huán)隊(duì)列里刪除該視頻幀,轉(zhuǎn)向?qū)ο乱灰曨l幀的處理。為了提高解碼效率,F(xiàn)FMPEG解碼庫向android平臺移植過程中進(jìn)行了裁剪,在交叉編譯時(shí)加入--di sab I e-encoders, —disable-muxers, —disable-devices 等參數(shù)。同時(shí)解碼模塊針對ARM架構(gòu)的進(jìn)行了參數(shù)優(yōu)化配置,在移植過程中加入—disable-asm,—enable_armv5te,—enable-neon 以實(shí)現(xiàn)硬件加速,滿足了解碼實(shí)時(shí)性的要求,最終將解碼后的視頻數(shù)據(jù)顯示到手機(jī)終端。本發(fā)明相對于其他系統(tǒng)的卓越之處在于系統(tǒng)實(shí)時(shí)性較高,傳輸速率快,可用于不同的網(wǎng)絡(luò)環(huán)境。
附圖I是本發(fā)明的系統(tǒng)部署圖。附圖2是調(diào)度機(jī)制流程圖。附圖3是本發(fā)明的接收端流程圖。附圖4是本發(fā)明的發(fā)送端流程圖。圖中1運(yùn)行有android系統(tǒng)的PDA ;2 Wi-Fi熱點(diǎn)或者3G網(wǎng)絡(luò)基站;3具有公共IP地址的公共服務(wù)器。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明的進(jìn)行進(jìn)一步的說明如圖I,本發(fā)明針對具有wifi或者3G連接的android PDA之間提供了視頻直播、 監(jiān)控功能。如圖2,程序啟動(dòng)之初,會向具有公網(wǎng)IP的服務(wù)器端發(fā)送一條消息,標(biāo)明自己的身份(發(fā)送者/接收者)。公共服務(wù)器將記錄此次會話中PDA終端對應(yīng)的公共IP、端口,保存進(jìn)通信列表。通信雙方定期拉取該通信列表,發(fā)送方向感興趣的接收方發(fā)送消息,詢問是否需要監(jiān)控、直播等。接收方回應(yīng)消息,若消息合法便可以進(jìn)行監(jiān)控。詳細(xì)的監(jiān)控發(fā)送方、接收方流程如圖3、4所示。如圖3,接收方發(fā)送應(yīng)答消息后,循環(huán)等待檢測是否有數(shù)據(jù)到達(dá)。如果有數(shù)據(jù)到來, 則放入緩存隊(duì)列。接收方檢測該隊(duì)列,若存在待處理數(shù)據(jù),便去除包頭部的NAL單元,組成完整視頻幀,送入解碼器解碼。解碼模塊接受視頻幀,進(jìn)行視頻幀的解碼操作。解碼期間,該模塊會判斷當(dāng)前視頻幀是否時(shí)延過大,如果時(shí)延過大,則丟棄當(dāng)前幀,轉(zhuǎn)向下一視頻幀的處理。否則對當(dāng)前幀解碼,最后通過android機(jī)制顯示視頻幀。因?yàn)閿?shù)據(jù)接受線程和解碼線程操作相同的隊(duì)列,為了保證數(shù)據(jù)的完整性,本發(fā)明通過鎖機(jī)制來保證多線程的有機(jī)協(xié)作。如圖4,發(fā)送方向接收端發(fā)送請求,如果接收端不同意接收,系統(tǒng)退出。如果同意接收,便可以進(jìn)行數(shù)據(jù)傳送。發(fā)送方啟動(dòng)自帶攝像頭,進(jìn)入數(shù)據(jù)采集模塊,進(jìn)行視頻數(shù)據(jù)的采集。隨后,將采集的視頻數(shù)據(jù)送往H264編碼模塊進(jìn)行編碼,而后將編碼的視頻幀送往RTP傳輸模塊。RTP傳輸模塊會先判斷編碼模塊送來的視頻幀的數(shù)據(jù)大小,如果視頻幀數(shù)據(jù)的大小不超過MTU,則對數(shù)據(jù)進(jìn)行RTP封包,寫入時(shí)間戳,發(fā)送到接收端。如果數(shù)據(jù)大小超過MTU, 則對視頻幀進(jìn)行拆分操作,將拆分的小數(shù)據(jù)包頭部寫入NAL單元和時(shí)間戳,然后進(jìn)行RTP封包并發(fā)送到接收端。如果發(fā)送端不再進(jìn)行發(fā)送操作,則退出,否則繼續(xù)進(jìn)行數(shù)據(jù)采集,直至發(fā)送端退出。
權(quán)利要求
1.一種基于android的手機(jī)PDA直播系統(tǒng),其特征包括如下步驟(1)當(dāng)手機(jī)終端初始化后連接到公共網(wǎng)絡(luò)服務(wù)器傳送自身的實(shí)時(shí)狀態(tài)信息,服務(wù)器記錄該手機(jī)終端的IP、端口,并從公共網(wǎng)絡(luò)服務(wù)器獲取可通信的PDA終端列表;(2)發(fā)送終端將獲得的列表中的某個(gè)終端做為視頻數(shù)據(jù)的接收端,并向這個(gè)終端發(fā)送連接請求;如果接收端同意接收,則開啟自帶攝像頭,對視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)采集,將采集到的視頻數(shù)據(jù)送往編碼接口模塊;(3)在編碼接口處,采用H264算法對采集到的視頻數(shù)據(jù)進(jìn)行視頻編碼;編碼接口對編碼參數(shù)進(jìn)行優(yōu)化采用單幀參考,關(guān)閉自適應(yīng)B幀判定模式,關(guān)閉B幀加權(quán)預(yù)測,動(dòng)態(tài)預(yù)測和分區(qū)方式為全像素塊動(dòng)態(tài)搜索,對每個(gè)塊再用快速模式進(jìn)行四分之一像素塊精確搜索,運(yùn)動(dòng)估計(jì)模式為小菱形搜索法,從而提高了編碼的效率及系統(tǒng)的實(shí)時(shí)性,最后將編碼后的視頻幀數(shù)據(jù)發(fā)往RTP發(fā)送模塊;(4)在RTP發(fā)送模塊中,將編碼后的數(shù)據(jù)幀數(shù)據(jù)發(fā)送至目標(biāo)手機(jī)接收端;將壓縮后大小超過MTU的視頻幀進(jìn)行拆分,并在拆分后的每個(gè)包的頭部加入NAL單元,同時(shí)在RTP包中寫入時(shí)間戳,將RTP封裝的包發(fā)往目標(biāo)PDA終端。(5)在RTP接收模塊中,接收端預(yù)先啟動(dòng),循環(huán)檢測是否有數(shù)據(jù)到來,然后通過RTP協(xié)議接收數(shù)據(jù)包,提取并剝離首部的NAL單元,并按照相應(yīng)的控制信息將接收到的包組成完整的數(shù)據(jù)幀,放入視頻幀循環(huán)隊(duì)列,等待解碼器解碼播放;(6)在解碼端,調(diào)用解碼器將隊(duì)列中的視頻數(shù)據(jù)進(jìn)行H264解碼;接收端對當(dāng)前待解碼的視頻幀進(jìn)行時(shí)間戳的判斷,超過最低可接受時(shí)延(I/預(yù)訂幀率),則丟棄該幀,并從循環(huán)隊(duì)列里刪除該視頻幀,轉(zhuǎn)向?qū)ο乱灰曨l幀的處理;滿足了解碼實(shí)時(shí)性的要求,解碼后的視頻數(shù)據(jù)顯示到手機(jī)終端。
2.如權(quán)利要求I所述的一種基于android的手機(jī)PDA直播系統(tǒng),其特征包還在于,F(xiàn)FMPEG解碼庫向android平臺移植過程中進(jìn)行了裁剪,在交叉編譯時(shí)加入—disabIe-encoders, —disable—muxers,一disable-devices ;同時(shí)解碼模塊針對ARM架構(gòu)的進(jìn)行了參數(shù)優(yōu)化配置,在移植過程中加入——disable—asm,——enable_armv5te,——enable_neon0
全文摘要
本發(fā)明涉及一種基于android的手機(jī)PDA直播系統(tǒng),是手機(jī)終端通過公共網(wǎng)絡(luò)服務(wù)器獲取可通信的PDA終端列表,發(fā)送終端將獲得的列表中的某個(gè)終端做為視頻數(shù)據(jù)的接收端,并向這個(gè)終端發(fā)送連接請求;如果接收端同意接收,則開啟自帶攝像頭,對視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)采集,將采集到的視頻數(shù)據(jù)送往編碼接口模塊;在編碼接口處,采用H264算法對采集到的視頻數(shù)據(jù)進(jìn)行視頻編碼并發(fā)往RTP發(fā)送模塊;再由RTP發(fā)送模塊將數(shù)據(jù)幀發(fā)往目標(biāo)PDA終端。在RTP接收模塊中,接收端將數(shù)據(jù)幀解碼播放,本發(fā)明相對于其他系統(tǒng)的卓越之處在于系統(tǒng)實(shí)時(shí)性較高,傳輸速率快,可用于不同的網(wǎng)絡(luò)環(huán)境。
文檔編號H04N7/52GK102595139SQ20121005275
公開日2012年7月18日 申請日期2012年3月1日 優(yōu)先權(quán)日2012年3月1日
發(fā)明者劉杰, 張瑩州, 李克秋, 申彥明 申請人:大連理工大學(xué)