專利名稱:高清視頻的高效傳送及編解碼的系統的制作方法
技術領域:
本發明涉及一種流媒體傳送及編解碼領域,尤其涉及一種高清視頻的高效傳送及編解碼的系統。
背景技術:
通常,用戶點播后,服務器響應組織數據并將數據發送至目的用戶,累積數據達到緩沖數據量才開始播放,這個過程時長為響應時間。目前,流媒體播放響應時間過長。根據TubeMogul數據顯示在視頻緩沖的時間內,81%的用戶會選擇離開,因此,短響應時間對于流媒體系統十分重要。對等網絡(P2P)絡技術與流媒體技術的結合,將流媒體服務質量提高到了一個新的高度,典型的應用如國內的PPlive、PPstream等,它有效地減低了內容服務器的分發任務負擔,P2P技術優點包括對等性強,擴展性強,健壯性高,性價比高,負載均衡。但是P2P系統架構的流媒體服務器面對資源點頻繁加入和退出時,其穩定性嚴重不 足。
發明內容
鑒于以上內容所述,本發明有必要提供一種在P2P系統架構的流媒體服務器面對資源點頻繁加入和退出時擴展性和穩定性良好的高清視頻的高效傳送及編解碼的系統。一種高清視頻的高效傳送及編解碼的系統,包括收集服務器,用于對流媒體數據進行同步調整,所述流媒體數據包括音頻數據以及視頻數據;內容服務器,接收客戶端的請求時向客戶端傳送流媒體數據包;業務服務器,用于向播放節點傳遞其存儲的播放信息;組織服務器,用于對新加入的播放節點進行引導,對已經加入的播放節點進行組織;客戶端,用于接收所述流媒體數據包,并根據編號將流媒體數據包中的視頻數據與音頻數據以交替的方式進行分析,并以MPEG21或H. 264壓縮算法進行解壓縮,按照時間戳同步解碼播放流媒體數據包中的音頻數據與視頻數據;將所述流媒體數據包通過網絡傳送至各播放節點的客戶端時,播放節點先向鄰居節點預約流媒體數據包;當預約的流媒體數據包到達時,將所述多媒體整數據包傳送到預約該數據包的播放節點。進一步,所述對流媒體數據進行同步調整包括收集流媒體數據流中的音頻數據與視頻數據,并對收集的音頻數據與視頻數據進行編碼;編碼后對現場收集的音頻數據與視頻數據分成不同長度的多媒體數據包,并將音頻數據與視頻數據包打上時間戳;將打上時間戳的音頻數據與視頻數據包進行編碼并壓縮成流媒體數據包。
進一步,所述收集服務器對收集的音頻數據以及視頻數據分成不同長度的多媒體數據包,并將多媒體數據包打上時間戳時,其根據參考時鐘生成音頻數據與視頻數據的時間信息,將多媒體數據包打上時間戳;對于現場收集的音頻數據與視頻數據,采用收集時間戳,對于非現場收集的音頻數據與視頻數據,提取多媒體數據包中的時間戳。進一步,將所述流媒體數據包通過網絡傳送至各播放節點的客戶端時,包括將播放節點加入到網絡中的步驟為新加入的播放節點分配一個序列號,并將所述序列號與該播放節點信息綁定,所述播放節點信息包括IP地址、端口號、NAT類型和帶寬;判斷所述新加入播放節點的NAT類型,若類型為無法穿透NAT類型,則將該播放節點加入到弱播放節點的隊列的隊尾;判斷所述新加入的播放節點的是否小于預定值,是則按序列號順序加入到弱播放 節點的隊列的相信位置,否則將該播放節點加入到強播放列的相應位置。進一步,所述預定值為多媒體數據源節點的I. 2至I. 5倍。進一步,所述客戶端播放流媒體數據包中的音頻數據時,將音頻數據的時間戳與參考時鐘的當前時間對比,當音頻數據已經達到播放時間時,解碼播放音頻數據。進一步,所述客戶端播放流媒體數據包中的視頻數據時,將視頻數據的時間戳與當前正在播放的音頻數據的時間進行對比,當音頻數據同時播放時,同步播放該視頻數據。進一步,所述播放節點先向鄰居節點預約流媒體數據包包括按多媒體數據包的編號對多媒體數據進行分組,并設置組內編號;按組內編號隨機請求鄰居節點,預約組內的多媒體數據包;所述預約不成功,則重新選擇鄰居節點,否則繼續預約,直到組內所有的多媒體數據包都預約完成。進一步,所述播放節點加入網絡后還包括通過網絡命令交互獲得鄰居節點的運行信息;當預約的流媒體數據包到達時,采用TOSH策略將所述多媒體整數據包傳送到預約該數據包的播放節點。進一步,所述多媒體數據包大小為900至1200字節。MPEG21算法主要利用了具有運動補償的幀間壓縮編碼技術以減小時間冗余度,利用離散余弦變換DCT技術以減小圖像的空間冗余度,利用熵編碼則在信息表示方面減小了統計冗余度。H. 264壓縮算法支持一幅圖像劃分成片,片中宏塊的數目是任意的。在非FMO模式下,片中的宏塊次序是同光柵掃描順序,靈活宏塊排序FMO (Flexible MacroblockOrdering)模式下比較特殊。片的劃分可以適配不同的最大傳送單元MTU (MaximumTransmission Unit)尺寸,也可以用來交織分組打包。本發明通過直接收集并編碼多媒體數據,將多媒體數據分隔成900至1200字節的多媒體數據包,采用PUSH策略進行小包傳送,從而的提高傳送效率。在傳送過程中,播放節點先向鄰居節點預約流媒體數據包;預約時按多媒體數據包的編號對多媒體數據進行分組,并設置組內編號;按組內編號隨機請求鄰居節點,預約組內的多媒體數據包;所述預約不成功,則重新選擇鄰居節點,否則繼續預約,直到組內所有的多媒體數據包都預約完成。通過該方式,有效的增強了傳送過程中的穩定性。
圖I為本發明高清視頻的高效傳送及編解碼的系統中客戶端播放流媒體數據包的流程示意圖;圖2為本發明高清視頻的高效傳送及編解碼的系統中客戶端解碼播放音頻數據時啟動音頻數據播放流程示意圖;圖3為本發明高清視頻的高效傳送及編解碼的系統中客戶端解碼播放視頻數據時啟動視頻數據播放流程示意圖;圖4為本發明高清視頻的高效傳送及編解碼的系統中多媒體數據包預約請求流程不意圖;
圖5為本發明高清視頻的高效傳送及編解碼的系統中數據包完整性檢驗的方法的流程示意圖。
具體實施例方式結合以下具體實施方式
對本發明的一種高清視頻的高效傳送及編解碼的系統作進一步的描述。具體實施例為進一步詳細說明本發明,非限定本發明的保護范圍。一種高清視頻的高效傳送及編解碼的系統,發送端與客戶端,所述發送端用于收集流媒體數據,并將收集后的數據發送至客戶端,所述流媒體數據包括音頻數據以及視頻數據,發送端與客戶端在傳送層使用TCP協議,可有效提高在傳送過程中的穩定性。發送端擁有固定的公網IP地址,在某個固定的TCP端口進行監聽,當接收到客戶端的數據請求時,將壓縮后形成的流媒體數據包包含到TCP報文的內容部分并發送給客戶端,若發送端和客戶端都沒有固定的公網IP地,則需要利用具有公網IP地址的第三方服務器實現數據中轉。本發明的高清視頻的高效傳送及編解碼的系統的傳送方法包括如下步驟步驟001,所述發送端收集多媒體數據并進行同步調整,收集多媒體數據流中的音頻數據與視頻數據,收集的任務是由收集服務器完成的,收集服務器采用多媒體技術直接從待播放的媒體中抓取多媒體數據流中的的數據,如,音頻數據與視頻數據,并對收集的音頻數據與視頻數據進行編碼。步驟002,所述收集服務器將編碼后的音頻數據與視頻數據切分成非常小的多媒體數據包,大小在900至1200KB之間。對每個分割后的多媒體數據包的編號稱為PacketID。然后對每個多媒體數據包添加包頭和PacketID等信息。此步驟中,對于在現場收集的流媒體數據,按照音頻數據和視頻數據的區別,將其分為不同長度的多媒體數據包,一般視頻數據按照幀的單位計數,音頻數據按照時間計數,并同時根據參考時鐘生成兩個媒體數據的時間信息,在數據編碼之前將這些多媒體數據包打上時間戳。對于非現場收集的數據,采用提取多媒體文件中的時間戳的方法。在一般情況下不會改變這些多媒體數據包的性質,如音頻數據的時間片;但是在某些情況下,可能會改變,如由于需要做第二次壓縮,可能將上述的音頻數據的時間片進行拉長或者減縮。發送端將同步調整后的多媒體數據包一般按照“視頻數據包、音頻數據包、視頻數據包、音頻數據包……”如此交替的方式編碼生成一個交給P2P系統的大的流媒體數據包。
步驟003,發送端采用MPEG21或H. 264壓縮算法,將打上時間戳音頻數據與視頻數據包編碼并壓縮成流媒體數據包;步驟004,將所述壓縮后的流媒體數據包通過網絡傳送至各播放節點的客戶端。上述服務器將添加包頭和PacketID等信息的多媒體數據包連續地傳送至內容服務器。內容服務器接收到客戶端的請求時,向客戶端傳送多媒體數據包。傳送時,播放節點先向鄰居節點預約流媒體數據包;當預約的流媒體數據包到達時,采用PUSH策略將所述多媒體整數據包傳送到預約該數據包的播放節點。所述內容服務器還包括進行網絡編碼,為系統提供網絡丟包請求ARQ (Automatic Repeat-reQuest,自動重傳)支撐。其中,步驟004中所述播放節點想要播放流媒體數據包,必須先加入P2P媒體直播網絡。節點從業務服務器獲取播放信息,向組織服務器請求加入。組織服務器對新加入的播放節點進行引導,對已經加入的播放節點進行組織,包括節點新增、節點刪除以及節點丟失等。尤其是在新加入播放節點時,會按照該節點的NAT和帶寬信息對該節點進行有效引導。組織服務器維護一個節點隊列,以便引導新節點有組織地加入已有的P2P媒體直播網 絡中。首先新節點加入時的步驟如下,節點加入后,為新加入的節點分配一個序列號ID,并將所述的序列號ID與該播放節點信息綁定,即該序列號和播放節點信息共同作為該節點的屬性,所述播放節點信息包括IP地址、端口號、NAT類型和帶寬等。然后判斷所述新加入的播放節點的NAT類型,若類型為無法穿透NAT類型,由于防火墻和路由器的限制,做了 NAT的網絡地址轉換,其他的網絡節點無法主動與該節點建立連接,說明節點連通性很差,為了不影響網絡的整體性能,則將該播放節點加入到弱播放節點隊列的末尾,該判定由NAT檢測服務器完成。判定所述新加入的播放節點的帶寬是否小于預定值,一般為多媒體原始帶寬的
I.2至I. 5倍,認為帶寬能力強的節點。則將該播放節點按節點序列號ID加入到播放節點隊列的相應位置,反正加入到弱播放節點隊列的相應位置,該判斷操作由帶寬檢測服務器完成。步驟005,所述客戶端接收到所述流媒體數據包后,一般根據編號將流媒體數據包按照“視頻數據包、音頻數據包、視頻數據包、音頻數據包……”如此交替的方式進行分析流媒體數據包,并解壓縮;在解壓縮完畢的流媒體數據上打上時間戳,然后進行播放。請參閱圖1,所述客戶端按照時間戳同步解碼播放流媒體數據包具體過程如下判斷是否到流媒體數據包的末尾,如果是,則從該流媒體數據包中取出一個流媒體數據包,如果否,則結束該過程;判斷取出的數據為音頻數據還是視頻數據,若為音頻數據,則加入到音頻播放列隊,若為視頻數據,則加入到視頻播放列隊。請參閱圖2,本發明的在解碼播放音頻數據時啟動音頻數據播放流程,具體過程包括判斷音頻播放隊列中是否有數據,如果沒有,則繼續進行判斷,如果有,則從中提取一個音頻數據包,并將該音頻數據的時間戳與參考時鐘的當前時間對比,判斷音頻數據是否已經到了播放時間,如果否,則繼續進行對比,如果是,則解碼音頻數據,然后重頭開始判斷音頻播放隊列中是否有數據,直到整個播放過程完成。請參閱圖3,本發明的在解碼播放視頻數據時啟動視頻數據播放流程,具體過程包括判斷視頻播放隊列中是否有視頻數據,如果沒有,則繼續判斷播放列表是否視頻數據,如果有,則從視頻播放列表中提取一個視頻播放數據包,判斷視頻數據的時間戳與當前正在播放的音頻數據的時間戳是否為同時播放,如果否,繼續判斷視頻數據的時間戳與當前正在播放的音頻數據的時間戳是否為同時播放,如果是,就同步播放視頻數據并返回繼續判斷視頻播放隊列中是否有視頻數據。通過在播放端同步解碼播放流媒體數據包中音視頻數據包,使得系統的后開發免受現有播放器和解碼器的影響,從而提高多媒體數據包的編解碼靈活性。在P2P系統中,由于播放節點的網絡狀況和運行狀況都是時刻變化的,在網絡不穩定時會造成數據傳送錯誤。所以在播放節點加入后,一方面將網絡中的peer節點可以實時地通過網絡命令交互獲得周圍鄰居節點的運行狀態,并根據鄰居節點的運行狀態調整本節點的算法策略,同時,通過節點之間的學習與信息交換,可獲得更多有數據的節點,從而有效增加了傳送過程中的穩定性。由于多媒體數據包被分割成900至1200KB大小的音頻數據或視頻數據,傳送過程中采用PUSH策略進行傳送,在采用I3USH策略前,播放節點向其鄰居節點發送多媒體數據包預約請求,當請求的數據包達到鄰居節點時,鄰居節點采用PUSH的方式將該數據包傳送給 發送請求播放的節點。多媒體數據包預約前,需對多媒體數據包進行分組,將PacketID按Γ16分組,每組按f 16進行編號,成為SlicelD。通過此方式完成對傳送數據流中的多媒體數據進行分組,對網絡中傳送的數據流的多媒體數據包完成分組操作后,將流粒度縮小到分組流。在這種分組狀態下,任何一個節點需要向其他若干節點請求數據,并請求之后,網絡中的任意鏈路所要傳送的數據量不再需要多媒體碼率的整數倍,從而提高節點的傳送效率,并且保證帶寬的利用率得到提高。結合圖4,多媒體數據包預約請求,播放節點獲取自身維護的數據源指導表;開始預訂組內第i個多媒體數據包,從數據源指導表中隨機選取一個鄰居節點A,其中,隨機算法優選轉輪盤算法,向節點A發送預約第i個多媒體數據包請求,若A返回預約成功,則判斷該組內數據包是否請求完畢,若完畢,則結束預訂請求,否則繼續請求下一個多媒體數據包,若節點A返回預約不成功,則將節點A移除數據源指導表,從數據源指導表中重新取另一個鄰居節點繼續預約,直到所有組內多媒體數據包預約完畢。本發明多媒體數據進行播放前,還會接到對數據包進行完整性檢驗。采用網絡緩沖區對網絡到達的多媒體數據包進行緩沖處理,數據緩沖區實際上是一個以PacketID為鍵值的有序隊列。播放列表接到多媒體數據包后,立即PUSH到數據緩沖區,在緩沖區內通過PacketID做排序操作依次插入。通常越是最新出現的數據包區域,數據包的無序性越明顯,并稱該區域為無序區域,越是老數據區域,數據包的完整和有序性越明顯,并稱該區域為穩定區域。網絡無序區域與穩定區域可能同時存在未達到的數據包,但是這兩個區域內的未到達數據包表明的信息不一樣,無序區域未到達數據包可能正在傳送途中,在一定時間后會到達;但是穩定區域未到達的數據包通常以及在傳送途中已經丟失,若不及時采取措施將永遠丟失。數據包完整性檢驗的方法的流程,如圖5所示,是由播放節點中完整性檢查掃描線程完成的。該線程定時啟動,然后根據上一次執行的情況和本次運行所確定的網絡穩定區域,確定需要進行掃描的指定區域之后,開始以PacketID為索引進行多媒體數據包掃描過程,如果PacketID對應的數據包不存在,則需要將該PacketID放入到丟包隊列中。掃描完畢后,會得到一個PacketID列表,若收到該列表說明此時客戶端未接收到數據包,即需要對重新請求獲取數據包。由于丟包列表的大小可能存在比較大的情況,若僅向一個目標節點請求,則可能是該目標節點負載突然增大而影響其穩定性,故需要將該列表且分成若干小份,然后依舊利用輪盤賭算法從數據源指導列表中選擇相應的若干節點進行丟包請求。本發明通過直接收集并編碼多媒體數據,將多媒體數據分隔成900至1200字節的多媒體數據包,采用PUSH策略進行小包傳送,從而提高傳送效率。在傳送過程中,播放節點先向鄰居節點預約流媒體數據包;預約時按多媒體數據包的編號對多媒體數據進行分組,并設置組內編號;按組內編號隨機請求鄰居節點,預約組內的多媒體數據包;所述預約不成功,則重新選擇鄰居節點,否則繼續預約,直到組內所有的多媒體數據包都預約完成。通過該方式,有效的增強了傳送過程中的穩定性。
以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
權利要求
1.一種聞清視頻的聞效傳送及編解碼的系統,包括 收集服務器,用于對流媒體數據進行同步調整,所述流媒體數據包括音頻數據以及視頻數據; 內容服務器,接收客戶端的請求時向客戶端傳送流媒體數據包; 業務服務器,用于向播放節點傳遞其存儲的播放信息; 組織服務器,用于對新加入的播放節點進行引導,對已經加入的播放節點進行組織; 客戶端,用于接收所述流媒體數據包,并根據編號將流媒體數據包中的視頻數據與音頻數據以交替的方式進行分析,并以MPEG21或H. 264壓縮算法進行解壓縮,按照時間戳同步解碼播放流媒體數據包中的音頻數據與視頻數據; 其特征在于將所述流媒體數據包通過網絡傳送至各播放節點的客戶端時,播放節點時先向鄰居節點預約流媒體數據包;當預約的流媒體數據包到達時,將所述多媒體整數據包傳送到預約該數據包的播放節點。
2.如權利要求I所述高清視頻的高效傳送及編解碼的系統,所述對流媒體數據進行同步調整包括 收集流媒體數據流中的音頻數據與視頻數據,并對收集的音頻數據與視頻數據進行編碼; 編碼后對現場收集的音頻數據與視頻數據分成不同長度的多媒體數據包,并將音頻數據與視頻數據包打上時間戳; 將打上時間戳的音頻數據與視頻數據包進行編碼并壓縮成流媒體數據包。
3.根據權利要求I所述的高清視頻的高效傳送及編解碼的系統,其特征在于所述收集服務器對收集的音頻數據以及視頻數據分成不同長度的多媒體數據包,并將多媒體數據包打上時間戳,根據參考時鐘生成音頻數據與視頻數據的時間信息,將多媒體數據包打上時間戳;對于現場收集的音頻數據與視頻數據,采用收集時間戳,對于非現場收集的音頻數據與視頻數據,提取多媒體數據包中的時間戳。
4.根據權利要求I所述的高清視頻的高效傳送及編解碼的系統,將所述流媒體數據包通過網絡傳送至各播放節點的客戶端之前,需要將播放節點加入到網絡中 為新加入的播放節點分配一個序列號,并將所述序列號與該播放節點信息綁定,所述播放節點信息包括=IP地址、端口號、NAT類型和帶寬; 判斷所述新加入播放節點的NAT類型,若類型為無法穿透NAT類型,則將該播放節點加入到弱播放節點的隊列的隊尾; 判斷所述新加入的播放節點的是否小于預定值,是則按序列號順序加入到弱播放節點的隊列的相信位置,否則將該播放節點加入到強播放列的相應位置。
5.根據權利要求4所述的高清視頻的高效傳送及編解碼的系統,其特征在于所述預定值為多媒體數據源節點的I. 2至I. 5倍。
6.根據權利要求3所述的高清視頻的高效傳送及編解碼的系統,其特征在于所述客戶端播放流媒體數據包中的音頻數據時,將音頻數據的時間戳與參考時鐘的當前時間對t匕,當音頻數據已經達到播放時間時,解碼播放音頻數據。
7.根據權利要求6所述的高清視頻的高效傳送及編解碼的系統,其特征在于所述客戶端播放流媒體數據包中的視頻數據時,將視頻數據的時間戳與當前正在播放的音頻數據的時間進行對比,當音頻數據同時播放吋,同步播放該視頻數據。
8.根據權利要求I所述的高清視頻的高效傳送及編解碼的系統,所述播放節點先向鄰居節點預約流媒體數據包包括 按多媒體數據包的編號對多媒體數據進行分組,并設置組內編號; 按組內編號請求鄰居節點,預約組內的多媒體數據包; 所述預約不成功,則重新選擇鄰居節點,否則繼續預約,直到組內所有的多媒體數據包都預約完成。
9.根據權利要求I所述的高清視頻的高效傳送及編解碼的系統,所述播放節點加入網絡后還包括 通過網絡命令交互獲得鄰居節點的運行信息; 當預約的流媒體數據包到達時,采用PUSH策略將所述多媒體整數據包傳送到預約該數據包的播放節點。
10.根據權利要求I至9任一項所述的高清視頻的高效傳送及編解碼的系統,其特征在于所述多媒體數據包大小為900至1200字節。
全文摘要
本發明涉及一種高清視頻的高效傳送及編解碼的系統,包括發送端與客戶端,所述發送端用于收集流媒體數據,對收集的流媒體數據進行編碼,并將收集后的數據發送至客戶端,所述流媒體數據包括音頻數據以及視頻數據,所述發送端將所述流媒體數據包通過網絡傳送至各播放節點的客戶端;傳送時,播放節點先向鄰居節點預約流媒體數據包;當預約的流媒體數據包到達時,采用PUSH策略將所述多媒體整數據包傳送到預約該數據包的播放節點;所述客戶端接收到所述流媒體數據包后,根據編號將流媒體數據包進行分析和解壓縮,可有效地提高P2P系統架構的流媒體服務器面對資源點頻繁加入和退出時,數據包的傳送效率以及穩定性。
文檔編號H04N21/63GK102970615SQ20121047723
公開日2013年3月13日 申請日期2012年11月21日 優先權日2012年11月21日
發明者姚巍, 陳中華, 林偉雄, 孫戈, 孫菁 申請人:聯想中望系統服務有限公司