專(zhuān)利名稱(chēng):基于h.264編碼的播放系統(tǒng)、方法以及用戶(hù)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種基于H.264編碼的 才番;故系鄉(xiāng)克、方法以及用戶(hù)i殳備。
背景技術(shù):
隨著音/視頻編碼技術(shù)和IP網(wǎng)絡(luò)傳輸技術(shù)的不斷完善,數(shù)字媒 體業(yè)務(wù)得到了迅速發(fā)展,并已發(fā)展成為寬帶的核心應(yīng)用。目前,中 國(guó)電信數(shù)字媒體業(yè)務(wù)采用集中服務(wù)的模式,在該模式下,通過(guò)基于 C/S (Client/Server,客戶(hù)/月良務(wù)器)或C/S+CDN (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))架構(gòu)為用戶(hù)提供服務(wù)。但是,隨著業(yè)務(wù)需 求曰益增長(zhǎng),這種架構(gòu)下的系統(tǒng)才殳資劇增,產(chǎn)出效益不明顯的問(wèn)題 也日益顯現(xiàn)。另一方面,系統(tǒng)的服務(wù)能力始終有限,尤其在一些特
殊情況下(如球賽實(shí)況轉(zhuǎn)播時(shí)),仍然難以滿(mǎn)足用戶(hù)密集突發(fā)的流媒 體業(yè)務(wù)需求。
與集中月良務(wù)才莫式相比,P2P (Peer to Peer ,對(duì)等節(jié)點(diǎn))業(yè)務(wù)平臺(tái) 具有低成本、高擴(kuò)展性、高服務(wù)質(zhì)量、高安全性等優(yōu)勢(shì),可以解決 現(xiàn)有數(shù)字媒體業(yè)務(wù)發(fā)展中所面臨的平臺(tái)高投入、低回報(bào)、熱點(diǎn)效應(yīng) 的問(wèn)題。因此,有必要建設(shè)P2P業(yè)務(wù)平臺(tái),以?xún)?yōu)化寬帶網(wǎng)絡(luò)流量, 提高現(xiàn)有資源利用率,節(jié)省投資,為數(shù)字媒體產(chǎn)業(yè)的發(fā)展構(gòu)建新型 的業(yè)務(wù)支撐平臺(tái)。目前,國(guó)內(nèi)以PPLive、 PPStream等為代表的P2P流4某體直播 軟件已經(jīng)得到廣泛應(yīng)用,其中,PPLive的日常在線用戶(hù)高達(dá)200萬(wàn)。 但是,這些P2P流々某體軟件的壓縮編碼標(biāo)準(zhǔn)大多釆用WMV編碼或 者Real編碼。
H.264是ITU-T(國(guó)際電信聯(lián)盟遠(yuǎn)程通信標(biāo)準(zhǔn)化組)VCEG( Video Coding Experts Group, -現(xiàn)頻編碼專(zhuān)家組)和ISO (國(guó)際標(biāo)準(zhǔn)化組織) /IEC MPEG的聯(lián)合小組(Joint Video Team ,簡(jiǎn)稱(chēng)為JVT )共同制定 的新一代數(shù)字視頻編碼標(biāo)準(zhǔn),同時(shí)被收錄為MPEG-4的第10部分, 稱(chēng)為AVC ( Advanced Video Coding,高級(jí)牙見(jiàn)頻編石馬)。
H.264作為高清—見(jiàn)頻(High Definition TV,簡(jiǎn)稱(chēng)為HDTV )的
編碼格式之一,在P2P流々某體領(lǐng)域具有廣闊的應(yīng)用前景。對(duì)于碎見(jiàn)頻 業(yè)務(wù),以后發(fā)展的趨勢(shì)主要是基于H.264。 H.264最大的優(yōu)勢(shì)是具有 很高的數(shù)據(jù)壓縮比,在同等圖像質(zhì)量的條件下,H.264的壓縮比是 MPEG-2的2倍以上,是MPEG-4的1.5 ~ 2倍。高效的壓縮性能意 味著相同的數(shù)據(jù)量可以表示更好的圖像質(zhì)量,或者在相同的網(wǎng)絡(luò)帶 寬下可以傳輸質(zhì)量更好的圖像;同時(shí)也意味著,提供相同質(zhì)量的視 頻,只需要更少的數(shù)據(jù)量(或帶寬)。
但是,現(xiàn)有技術(shù)中缺少采用H.264編碼的P2P流J 某體直播技術(shù)。
發(fā)明內(nèi)容
考慮到上述問(wèn)題而提出本發(fā)明,為此,本發(fā)明旨在提供一種基 于H.264編碼的播放系統(tǒng)、方法以及用戶(hù)設(shè)備,以解決現(xiàn)有技術(shù)缺 少采用H.264編碼的P2P流媒體直播系統(tǒng)的問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于H.264編碼的播放系統(tǒng)。根據(jù)本發(fā)明的基于H,264編碼的播放系統(tǒng),包括編碼服務(wù)器, 用于將接入數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,并發(fā)送編碼操作 得到的數(shù)據(jù)包;切片服務(wù)器,用于接收來(lái)自編碼服務(wù)器的數(shù)據(jù)包, 并對(duì)接收到的數(shù)據(jù)包進(jìn)行基于H.264格式的切片處理得到數(shù)據(jù);補(bǔ) 償服務(wù)器,用于獲取來(lái)自切片服務(wù)器的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到客戶(hù) 端。
優(yōu)選地,切片服務(wù)器進(jìn)一步包括接收模塊,用于接收來(lái)自編 碼服務(wù)器的實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包;切片模塊,用于將實(shí)時(shí)傳輸協(xié)議 數(shù)據(jù)包組成完整的視頻幀和音頻幀,根據(jù)視頻幀和音頻幀的時(shí)間戳 組成P2P傳輸所需要的數(shù)據(jù)塊,并將視頻幀和音頻幀根據(jù)時(shí)間戳進(jìn) 行交錯(cuò)存放。
優(yōu)選地,編碼服務(wù)器進(jìn)一步包括接入模塊,用于接入實(shí)時(shí)的 模擬信號(hào);編碼模塊,用于對(duì)模擬信號(hào)進(jìn)行數(shù)字化處理,并對(duì)數(shù)字 化的數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,得到經(jīng)過(guò)H.264編碼的 數(shù)據(jù)包;發(fā)送才莫塊,用于將經(jīng)過(guò)H.264編碼的數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸協(xié) 議組包,得到實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包,并通過(guò)用戶(hù)數(shù)據(jù)才艮協(xié)議的方式 將實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包發(fā)送到切片服務(wù)器。
優(yōu)選地,該系統(tǒng)還包括業(yè)務(wù)管理平臺(tái),用于對(duì)節(jié)目沖丸行上線 操作,并發(fā)送上線指令;區(qū)域管理服務(wù)器,用于接收來(lái)自業(yè)務(wù)管理 平臺(tái)的上線指令,并指示補(bǔ)償服務(wù)器連接至切片服務(wù)器。
優(yōu)選地,區(qū)域管理服務(wù)器,還用于將補(bǔ)償服務(wù)器和/或具有相同 數(shù)據(jù)內(nèi)容的對(duì)等節(jié)點(diǎn)的地址信息發(fā)送給客戶(hù)端;補(bǔ)償服務(wù)器還用于, 在接收到客戶(hù)端的握手信息后,將當(dāng)前播放的進(jìn)度和數(shù)據(jù)發(fā)送給客 戶(hù)端,以使客戶(hù)端確定當(dāng)前的播放起點(diǎn)。優(yōu)選地,該系統(tǒng)還包括播放器,用于將來(lái)自補(bǔ)償服務(wù)器的數(shù) 據(jù)分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù),并對(duì)視頻數(shù)據(jù)以及音頻數(shù)據(jù)執(zhí)行 基于H.264格式的解碼操作。
根據(jù)本發(fā)明的另一方面,還提供了一種用戶(hù)設(shè)備。
根據(jù)本發(fā)明的用戶(hù)設(shè)備包括接收模塊,用于接收來(lái)自補(bǔ)償服 務(wù)器和/或具有相同數(shù)據(jù)內(nèi)容的對(duì)等節(jié)點(diǎn)的基于H.264格式的數(shù)據(jù) 塊;分離模塊,用于將數(shù)據(jù)塊分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù);獲取 模塊,用于在分離模塊分離出的視頻數(shù)據(jù)中獲取關(guān)鍵幀;解碼器, 用于根據(jù)獲取模塊獲取的關(guān)鍵幀,將視頻數(shù)據(jù)以及音頻數(shù)據(jù)進(jìn)行同 步解碼,并用于在獲取模塊獲取到所述關(guān)鍵幀之前阻塞音頻數(shù)據(jù)的 解碼。
才艮據(jù)本發(fā)明的另 一方面,還才是供了 一種基于H.264編碼的播力文 方法。
根據(jù)本發(fā)明的基于H.264編碼的播放方法包括將接入的實(shí)時(shí) 信號(hào)執(zhí)行基于H.264格式的編碼操作并進(jìn)行基于H.264格式的同步 切片處理,得到滿(mǎn)足對(duì)等節(jié)點(diǎn)傳輸要求的數(shù)據(jù)塊;在數(shù)據(jù)塊上線的 情況下,將數(shù)據(jù)塊發(fā)送到客戶(hù)端。
優(yōu)選地,將接入的實(shí)時(shí)信號(hào)執(zhí)行基于H.264格式的編碼操作并 進(jìn)行基于H.264格式的同步切片處理具體包括將實(shí)時(shí)傳輸協(xié)議數(shù) 據(jù)包組成完整的視頻幀和音頻幀,根據(jù)視頻幀和音頻幀的時(shí)間戳組 成P2P傳輸所需要的數(shù)據(jù)塊,.并將視頻幀和音頻幀根據(jù)時(shí)間戳進(jìn)行 交錯(cuò)存放。
優(yōu)選地,該方法還包括客戶(hù)端接收基于H.264格式的數(shù)據(jù)塊; 客戶(hù)端將數(shù)據(jù)塊分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù),并啟動(dòng)視頻數(shù)據(jù)讀 取線程以及音頻數(shù)據(jù)讀取線程;視頻數(shù)據(jù)讀取線程解析視頻數(shù)據(jù),在解析到關(guān)鍵幀的情況下,視頻數(shù)據(jù)讀取線程與音頻讀取線程根據(jù) 時(shí)間戳交錯(cuò)存放的規(guī)則進(jìn)行同步解碼。
優(yōu)選地,在視頻數(shù)據(jù)讀取線程在當(dāng)前數(shù)據(jù)塊沒(méi)有解析到關(guān)4建幀
的情況下,該方法還包括阻塞音頻讀取線禾呈, 一見(jiàn)頻凄t據(jù)讀取線程 繼續(xù)解析下一數(shù)據(jù)塊;在視頻數(shù)據(jù)讀取線程解析到關(guān)鍵幀的情況下, 視頻數(shù)據(jù)讀取線程通知音頻數(shù)據(jù)讀取線程解除阻塞,并根據(jù)時(shí)間戳 交錯(cuò)存放的規(guī)則進(jìn)行同步解碼。
通過(guò)本發(fā)明的上述技術(shù)方案,系統(tǒng)能夠在低碼率下達(dá)到比較好 的牙見(jiàn)頻質(zhì)量,^吏得系統(tǒng)真正實(shí)現(xiàn)了高清晰的P2P ^L頻業(yè)務(wù)。
此處所說(shuō)明的附圖用來(lái)l是供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申 請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并 不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中
圖1是沖艮據(jù)發(fā)明實(shí)施例的P2P流J 某體的應(yīng)用環(huán)境示意圖2是根據(jù)本發(fā)明實(shí)施例的基于H.264編碼的播放系統(tǒng)的框圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于H.264編碼的播放系統(tǒng)的 框圖4是根據(jù)本發(fā)明實(shí)施例的基于H.264編碼的播放方法的流程圖。
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本 發(fā)明。
系鄉(xiāng)克實(shí)施例
根據(jù)本發(fā)明的實(shí)施例,提供了一種基于H.264編碼的直播系統(tǒng)。
圖1是4艮據(jù)本發(fā)明實(shí)施例的P2P流々某體的應(yīng)用場(chǎng)景的示意圖, 如圖1所示,區(qū)域中心主要包括補(bǔ)償服務(wù)器(靜態(tài)PEER)和區(qū) 域管理服務(wù)器;補(bǔ)償服務(wù)器對(duì)于在直播、點(diǎn)播時(shí)由于ADSL上行/ 下行不對(duì)稱(chēng)帶寬引起的P2P流量供給不足進(jìn)行補(bǔ)償;客戶(hù)端(動(dòng)態(tài) PEER):可以為普通PC;區(qū)域管理服務(wù)器主要負(fù)責(zé)本區(qū)域用戶(hù)的 資源調(diào)度和內(nèi)容提供。
圖2是根據(jù)本發(fā)明實(shí)施例的基于H.264編碼的播放系統(tǒng)的框圖, 該直4番系統(tǒng)為P2P流々某體的直播系統(tǒng)。
如圖2所示,根據(jù)本發(fā)明實(shí)施例的直播系統(tǒng)包括編碼服務(wù)器 10,用于將接入數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,并發(fā)送編碼 操作得到的數(shù)據(jù)包;切片服務(wù)器20,連接至編碼服務(wù)器IO,用于接 收來(lái)自編碼服務(wù)器的數(shù)據(jù)包,并對(duì)接收的數(shù)據(jù)包進(jìn)行基于H.264格 式的切片處理得到數(shù)據(jù);補(bǔ)償服務(wù)器30,連接至切片服務(wù)器20,用 于獲取來(lái)自切片服務(wù)器的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到客戶(hù)端。
其中,切片服務(wù)器20進(jìn)一步包括接收模塊,用于接收來(lái)自編 碼月良務(wù)器的實(shí)時(shí)傳豐lr協(xié)i義(Real-time Transport Protocol,簡(jiǎn)稱(chēng)為 RTP)數(shù)據(jù)包;切片才莫塊,用于將RTP^t據(jù)包組成完整的^L頻幀和音頻幀,根據(jù)視頻幀和音頻幀的時(shí)間戳組成P2P傳輸所需要的數(shù)據(jù) 塊,并將視頻幀和音頻幀根據(jù)時(shí)間戳進(jìn)行交錯(cuò)存放。
編碼服務(wù)器IO進(jìn)一步包括接入模塊,用于接入實(shí)時(shí)的模擬信 號(hào);編碼模塊,連接至接入模塊,用于對(duì)模擬信號(hào)進(jìn)行數(shù)字化處理, 并對(duì)數(shù)字化的數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,得到經(jīng)過(guò)H.264 編碼的數(shù)據(jù)包;發(fā)送模塊,連接至編碼模塊,用于將經(jīng)過(guò)編碼的數(shù) 據(jù)進(jìn)行RTP組包,得到RTP數(shù)據(jù)包,并通過(guò)用戶(hù)凄t據(jù)才艮協(xié)議(User Datagram Protocol ,簡(jiǎn)稱(chēng)為UDP )的方式將RTP凄史據(jù)包發(fā)送到切片 服務(wù)器。
優(yōu)選地,如圖3所示,該系統(tǒng)還包^^:業(yè)務(wù)管理平臺(tái)40,用于 對(duì)節(jié)目執(zhí)行上線操作,并發(fā)送上線指令;區(qū)域管理服務(wù)器50,用于 接收來(lái)自業(yè)務(wù)管理平臺(tái)的上線指令,并指示補(bǔ)償服務(wù)器連接至切片 服務(wù)器。
區(qū)域管理服務(wù)器50還用于將補(bǔ)償服務(wù)器和/或具有相同數(shù)據(jù)內(nèi) 容的對(duì)等節(jié)點(diǎn)的地址信息發(fā)送給客戶(hù)端;補(bǔ)償服務(wù)器30還用于在接 收到客戶(hù)端的握手信息后,將當(dāng)前播放的進(jìn)度和數(shù)據(jù)發(fā)送給客戶(hù)端, 以使客戶(hù)端確定當(dāng)前的播放起點(diǎn)。
另外,該系統(tǒng)還可以包括播放器,用于將來(lái)自補(bǔ)償服務(wù)器的 數(shù)據(jù)分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù),并對(duì)視頻數(shù)據(jù)以及音頻數(shù)據(jù)執(zhí) 行基于H.264格式的解碼操作。其中,播放器可以通過(guò)如下結(jié)構(gòu)來(lái) 實(shí)現(xiàn)接收模塊,用于接收來(lái)自補(bǔ)償服務(wù)器的數(shù)據(jù);分離模塊,用 于將數(shù)據(jù)分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù);獲取模塊,用于在視頻數(shù) 據(jù)中獲取關(guān)鍵幀;解碼器,用于根據(jù)關(guān)鍵幀進(jìn)行同步解碼。
通過(guò)本發(fā)明的上述實(shí)施例,系統(tǒng)能夠在低碼率下達(dá)到較好的視 頻質(zhì)量,4吏得系統(tǒng)真正實(shí)現(xiàn)了高清晰的P2P^見(jiàn)頻業(yè)務(wù)。裝置實(shí)施例
根據(jù)本發(fā)明的實(shí)施例,還提供了一種用戶(hù)設(shè)備。
根據(jù)本發(fā)明的用戶(hù)設(shè)備包括接收模塊,用于接收來(lái)自補(bǔ)償服 務(wù)器和/或具有相同數(shù)據(jù)內(nèi)容的對(duì)等節(jié)點(diǎn)的基于H.264格式的凄t據(jù) 塊;分離模塊,用于將數(shù)據(jù)塊分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù);獲取 模塊,用于在分離模塊分離出的視頻數(shù)據(jù)中獲取關(guān)鍵幀;解碼器, 用于根據(jù)獲取模塊獲取的關(guān)鍵幀,將視頻數(shù)據(jù)以及音頻數(shù)據(jù)進(jìn)行同 步解碼,并用于在獲取模塊獲取到關(guān)鍵幀之前阻塞音頻數(shù)據(jù)的解碼。
通過(guò)該實(shí)施例,能夠?qū)崿F(xiàn)在低碼率下接收到較好質(zhì)量的視頻, 實(shí)現(xiàn)了高清晰的P2P^L頻業(yè)務(wù)。
下面具體描述根據(jù)本發(fā)明實(shí)施例的基于H.264編碼的直播系統(tǒng) 的處理過(guò)程。
1. 系統(tǒng)的前端編碼設(shè)備采用Envivio的編碼服務(wù)器,該服務(wù)器 在將實(shí)時(shí)的電視信號(hào)接入后,實(shí)現(xiàn)信號(hào)的數(shù)字化、對(duì)數(shù)字化后的原 始一見(jiàn)頻^:據(jù)和音頻凄t據(jù)進(jìn)^f于基于H.264方式的編碼,對(duì)于編碼后的 數(shù)據(jù)進(jìn)行RTP的組包,并通過(guò)UDP的方式向指定的切片服務(wù)器的 IP地址和端口進(jìn)行發(fā)送;
2. Envivio服務(wù)器輸出的是RTP流,相應(yīng)地,切片服務(wù)器的前 端有一個(gè)RTP接收才莫塊,實(shí)現(xiàn)與Envivo服務(wù)器輸出的RTP流進(jìn)行 對(duì)接;
切片服務(wù)器將接收到的RTP包組成完整的視頻幀和音頻幀,并 才艮才居^L頻幀和音頻幀的時(shí)間戳組成P2P傳豐lr所需要的凄t悟塊,視頻 幀和音頻幀根據(jù)時(shí)間戳進(jìn)行交錯(cuò)存放,因此,保證了任何一個(gè)數(shù)據(jù) 塊在傳輸?shù)娇蛻?hù)端時(shí)就可以實(shí)現(xiàn)視頻和音頻的同步播放;切片服務(wù)器在將組成的數(shù)據(jù)塊存儲(chǔ)在緩存區(qū)中,并開(kāi)啟一個(gè)端口進(jìn)行監(jiān)聽(tīng), 等待來(lái)自補(bǔ)償服務(wù)器的連接請(qǐng)求,如果緩存區(qū)中已全部存滿(mǎn),則將
前面的凝:4t清空,讓出空間來(lái)存》文后來(lái)的凝:據(jù);
3,在節(jié)目進(jìn)行上線后,業(yè)務(wù)管理平臺(tái)會(huì)對(duì)區(qū)域管理服務(wù)器發(fā)送 上線指令,區(qū)域管理服務(wù)器向補(bǔ)償服務(wù)器發(fā)送一個(gè)指令,通知補(bǔ)償 服務(wù)器主動(dòng)連接切片服務(wù)器;切片服務(wù)器在接收到連接后,會(huì)主動(dòng) 將緩存區(qū)中的數(shù)據(jù)向補(bǔ)償服務(wù)器進(jìn)行發(fā)送;
4. 客戶(hù)端在接收到足夠的數(shù)據(jù)塊后,首先會(huì)根據(jù)H.264的視頻 才各式實(shí)現(xiàn):枧頻幀和音頻幀的分離,然后會(huì)啟動(dòng)兩個(gè)線程 一個(gè)線程 負(fù)責(zé)讀取視頻數(shù)據(jù),另一個(gè)線程負(fù)責(zé)讀取音頻數(shù)據(jù);然后,選擇相 應(yīng)的解碼器,這里最重要的就是H.264的編碼格式的視頻幀的解碼;
5. 客戶(hù)端在進(jìn)行節(jié)目觀看時(shí),需要確定當(dāng)前的播放起始點(diǎn),首 先,客戶(hù)端向區(qū)域管理服務(wù)器進(jìn)行節(jié)點(diǎn)申請(qǐng),區(qū)域管理服務(wù)器會(huì)將 具有相同內(nèi)容的補(bǔ)償服務(wù)器和其他客戶(hù)端返回給該客戶(hù)端,客戶(hù)端 與補(bǔ)償服務(wù)器建立連接,然后向補(bǔ)償服務(wù)器發(fā)送握手信息,補(bǔ)償服 務(wù)器在接收到握手信息后,會(huì)主動(dòng)將當(dāng)前播放的進(jìn)度和數(shù)據(jù)信息發(fā) 送給客戶(hù)端,由于補(bǔ)償服務(wù)器中的數(shù)據(jù)在不斷的刷新,因此客戶(hù)端 在接收到補(bǔ)償服務(wù)器發(fā)送過(guò)來(lái)的播放起點(diǎn)后,在此基礎(chǔ)上向前跳過(guò) 一l殳,以此為起點(diǎn)開(kāi)始插i丈;
6. H.264格式的視頻數(shù)據(jù)的解碼;第一幀的解碼必須是對(duì)于關(guān) 4建幀的解碼處理;
在對(duì)數(shù)據(jù)塊進(jìn)行基于H.264的解碼時(shí),首先需要獲得一個(gè)關(guān)鍵 幀,而由于補(bǔ)償服務(wù)器的數(shù)據(jù)在不斷的刷新,編碼器在進(jìn)行編碼時(shí) 是在自適應(yīng)的在編碼過(guò)程中插入關(guān)4建幀,因此,客戶(hù)端在一開(kāi)始獲 得的數(shù)據(jù)中未必有關(guān)鍵幀,視頻數(shù)據(jù)讀取線程在進(jìn)行視頻幀的解析時(shí),首先需要判斷該視頻幀是否是關(guān)鍵幀,如果不是,則需要將該 視頻幀丟掉,如果該數(shù)據(jù)塊中都沒(méi)有,則需要重新從下一塊中進(jìn)行
讀??;此時(shí),雖然音頻解碼不需要關(guān)鍵幀,但是為了保證視頻和音 頻的同步,音頻讀取線程阻塞在那里,等祠"f見(jiàn)頻讀取線程讀取到關(guān) 鍵幀,視頻讀取線程讀取到關(guān)鍵幀后,同時(shí)音頻讀取線程解除阻塞, 同時(shí)才艮據(jù)時(shí)間戳交替變化的原則,通知音頻讀取線程從哪里開(kāi)始讀 取因此數(shù)據(jù),從而保證了視頻和音頻播放的同步。
方法實(shí)施例
根據(jù)本發(fā)明的實(shí)施例,還提供了 一種基于H.264編碼的播放方法。
圖4是才艮據(jù)本發(fā)明實(shí)施例的基于H.264編碼的播;改方法的流程 圖,如圖4所示,該方法包4舌以下處理
步驟S402,將接入的實(shí)時(shí)信號(hào)執(zhí)行基于H.264格式的編碼操作 并進(jìn)行基于H.264格式的同步切片處理,得到滿(mǎn)足對(duì)等節(jié)點(diǎn)傳輸要 求的lt據(jù)塊;
步驟S404,在數(shù)據(jù)塊上線的情況下,將數(shù)據(jù)塊發(fā)送到客戶(hù)端。
其中,步驟S402具體包括將RTP數(shù)據(jù)包組成完整的視頻幀 和音頻幀,才艮據(jù)-現(xiàn)頻幀和音頻幀的時(shí)間戳組成P2P傳輸所需要的數(shù) 據(jù)塊,并將#見(jiàn)頻幀和音頻幀一艮據(jù)時(shí)間戳進(jìn)行交4普存》文。
并且,該方法還包括客戶(hù)端接收基于H.264格式的數(shù)據(jù)塊; 客戶(hù)端將數(shù)據(jù)塊分離為;f見(jiàn)頻數(shù)據(jù)以及音頻凄t據(jù),并啟動(dòng)3見(jiàn)頻數(shù)據(jù)讀 取線程以及音頻數(shù)據(jù)讀取線程;視頻數(shù)據(jù)讀取線程解析視頻數(shù)據(jù), 在解析到關(guān)鍵幀的情況下,視頻數(shù)據(jù)讀取線程與音頻讀取線程根據(jù) 時(shí)間戳交錯(cuò)存放的規(guī)則進(jìn)行同步解碼。以及,在視頻數(shù)據(jù)讀取線程在當(dāng)前數(shù)據(jù)塊沒(méi)有解析到關(guān)鍵幀的
情況下,該方法還包纟舌阻塞音頻讀取線程,纟見(jiàn)頻^:據(jù)讀取線禾呈繼 續(xù)解析下一數(shù)據(jù)塊;在視頻數(shù)據(jù)讀取線程解析到關(guān)鍵幀的情況下,
視頻數(shù)據(jù)讀取線程通知音頻數(shù)據(jù)讀取線程解除阻塞,并根據(jù)時(shí)間戳 交4晉存放的^L則進(jìn)行同步解碼。
綜上所述,根據(jù)本發(fā)明實(shí)施例的基于H.264編碼的直播系統(tǒng)以 及用戶(hù)設(shè)備,能夠?qū)崿F(xiàn)在低碼率下達(dá)到比較好的視頻質(zhì)量,實(shí)現(xiàn)了 高清晰的P2P ^見(jiàn)頻業(yè)務(wù)。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或 各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算 裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們 可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)
在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成 電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模 塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于H.264編碼的播放系統(tǒng),其特征在于,包括編碼服務(wù)器,用于將接入數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,并發(fā)送編碼操作得到的數(shù)據(jù)包;切片服務(wù)器,用于接收來(lái)自所述編碼服務(wù)器的數(shù)據(jù)包,并對(duì)接收到的數(shù)據(jù)包進(jìn)行基于H.264格式的切片處理得到數(shù)據(jù);補(bǔ)償服務(wù)器,用于獲取來(lái)自所述切片服務(wù)器的數(shù)據(jù),并將所述數(shù)據(jù)發(fā)送到客戶(hù)端。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述切片服務(wù)器進(jìn) 一步包4舌接收才莫塊,用于接收來(lái)自所述編碼服務(wù)器的輸協(xié)議凄丈據(jù)包;切片模塊,用于將所述實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包組成完整的視 頻幀和音頻幀,才艮據(jù)所述一見(jiàn)頻幀和音頻幀的時(shí)間戳組成對(duì)等節(jié) 點(diǎn)傳輸所需要的數(shù)據(jù)塊,并將所述一見(jiàn)頻幀和音頻幀4艮據(jù)時(shí)間戳 進(jìn)行交錯(cuò)存放。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述編碼服務(wù)器進(jìn) 一步包4舌接入模塊,用于接入實(shí)時(shí)的模擬信號(hào);編碼模塊,用于對(duì)所述模擬信號(hào)進(jìn)行數(shù)字化處理,并對(duì)數(shù) 字化的數(shù)據(jù)執(zhí)行基于H.264格式的編碼梯:作,得到經(jīng)過(guò)H.264 編碼的數(shù)據(jù)包;發(fā)送4莫塊,用于將經(jīng)過(guò)H.264編碼的所述凄t據(jù)進(jìn)行實(shí)時(shí)傳 輸協(xié)議組包,得到實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包,并通過(guò)用戶(hù)數(shù)據(jù)報(bào)協(xié) 議的方式將所述實(shí)時(shí)傳輸協(xié)議數(shù)據(jù)包發(fā)送到所述切片服務(wù)器。
4. 根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,還包括業(yè)務(wù)管理平臺(tái),用于對(duì)節(jié)目執(zhí)行上線操作,并發(fā)送上線指令;區(qū)域管理服務(wù)器,用于接收來(lái)自所述業(yè)務(wù)管理平臺(tái)的所述 上線指令,并指示所述補(bǔ)償服務(wù)器連接至所述切片服務(wù)器。
5. 根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述區(qū)域管理服務(wù)器,還用于將所述補(bǔ)償服務(wù)器和/或具有相同數(shù)據(jù)內(nèi)容的對(duì)等節(jié)點(diǎn)的地址信息發(fā)送給所述客戶(hù)端;所述補(bǔ)償服務(wù)器還用于,在接收到所述客戶(hù)端的握手信息 后,將當(dāng)前播放的進(jìn)度和數(shù)據(jù)發(fā)送給所述客戶(hù)端,以使所述客 戶(hù)端確定當(dāng)前的插j欠起點(diǎn)。
6. 根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的系統(tǒng),其特征在于,還包 括播放器,用于將來(lái)自所述補(bǔ)償服務(wù)器的數(shù)據(jù)分離為視頻數(shù) 據(jù)以及音頻數(shù)據(jù),并對(duì)所述視頻數(shù)據(jù)以及音頻數(shù)據(jù)執(zhí)行基于 H.264格式的解碼操作。
7. —種用戶(hù)設(shè)備,其特征在于,包括接收模塊,用于接收來(lái)自補(bǔ)償服務(wù)器和/或具有相同數(shù)據(jù) 內(nèi)容的對(duì)等節(jié)點(diǎn)的基于H.264格式的數(shù)據(jù)塊;分離模塊,用于將所述數(shù)據(jù)塊分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù);獲取模塊,用于在所述分離模塊分離出的視頻數(shù)據(jù)中獲取關(guān)鍵幀;解碼器,用于根據(jù)所述獲取模塊獲取的所述關(guān)鍵幀,將所 述i見(jiàn)頻lt據(jù)以及音頻^t據(jù)進(jìn)4亍同步解碼,并用于在所述獲取才莫 塊獲取到所述關(guān)鍵幀之前阻塞所述音頻數(shù)據(jù)的解碼。
8. —種基于H.264編碼的播放方法,其特征在于,包括將接入的實(shí)時(shí)信號(hào)執(zhí)行基于H.264格式的編碼操作并進(jìn) 行基于H.264格式的同步切片處理,得到滿(mǎn)足對(duì)等節(jié)點(diǎn)傳輸要 求的數(shù)據(jù)塊;在所述數(shù)據(jù)塊上線的情況下,將所述數(shù)據(jù)塊發(fā)送到客戶(hù)端。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述將接入的實(shí)時(shí) 信號(hào)執(zhí)行基于H.264格式的編碼操作并進(jìn)行基于H.264格式的 同步切片處理具體包括將所述實(shí)時(shí)傳輸協(xié)i義lt據(jù)包組成完整的纟見(jiàn)頻幀和音頻幀, 根據(jù)所述視頻幀和音頻幀的時(shí)間戳組成P2P傳輸所需要的數(shù) 據(jù)塊,并將所述視頻幀和音頻幀根據(jù)時(shí)間戳進(jìn)行交錯(cuò)存放。
10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述客戶(hù)端接收基于H.264格式的數(shù)據(jù)塊;所述客戶(hù)端將所述數(shù)據(jù)塊分離為視頻數(shù)據(jù)以及音頻數(shù)據(jù), 并啟動(dòng)視頻數(shù)據(jù)讀取線程以及音頻數(shù)據(jù)讀取線程;所述一見(jiàn)頻數(shù)據(jù)讀取線程解析所述纟見(jiàn)頻H據(jù),在解析到關(guān)鍵: 幀的情況下,所述視頻數(shù)據(jù)讀取線程與所述音頻讀取線程根據(jù) 所述時(shí)間戳交錯(cuò)存放的規(guī)則進(jìn)行同步解碼。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,在所述視頻數(shù)據(jù)讀取線程在當(dāng)前數(shù)據(jù)塊沒(méi)有解析到關(guān)#:幀的情況下,所述方法還包括阻塞所述音頻讀取線程,所述—見(jiàn)頻凄t據(jù)讀取線程繼續(xù)解析下一數(shù)據(jù)塊;在所述視頻數(shù)據(jù)讀取線程解析到關(guān)鍵幀的情況下,所述視 頻數(shù)據(jù)讀取線程通知所述音頻數(shù)據(jù)讀取線程解除阻塞,并根據(jù) 所述時(shí)間戳交錯(cuò)存放的規(guī)則進(jìn)行同步解碼。
全文摘要
本發(fā)明公開(kāi)了一種基于H.264編碼的播放系統(tǒng)、方法以及用戶(hù)設(shè)備,其中,該系統(tǒng)包括編碼服務(wù)器,用于將接入數(shù)據(jù)執(zhí)行基于H.264格式的編碼操作,并發(fā)送編碼操作得到的數(shù)據(jù)包;切片服務(wù)器,用于接收來(lái)自編碼服務(wù)器的數(shù)據(jù)包,并對(duì)接收的數(shù)據(jù)包進(jìn)行基于H.264格式的切片處理得到數(shù)據(jù);補(bǔ)償服務(wù)器,用于獲取來(lái)自切片服務(wù)器的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到客戶(hù)端。通過(guò)本發(fā)明,能夠?qū)崿F(xiàn)高清晰的P2P視頻業(yè)務(wù)。
文檔編號(hào)H04N7/52GK101330622SQ200810132088
公開(kāi)日2008年12月24日 申請(qǐng)日期2008年7月24日 優(yōu)先權(quán)日2008年7月24日
發(fā)明者健 季 申請(qǐng)人:中興通訊股份有限公司