<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 基于P2P技術(shù)的時(shí)移電視系統方案

基于P2P技術(shù)的時(shí)移電視系統方案

作者: 時(shí)間:2008-03-12 來(lái)源: 收藏

  1、引言

本文引用地址:http://dyxdggzs.com/article/79908.htm

  隨著(zhù)視頻和寬帶接入技術(shù)的迅速發(fā)展和成熟,通過(guò)IP寬帶網(wǎng)絡(luò )收看各種直播和點(diǎn)播節目已經(jīng)成為現實(shí)。時(shí)移電視業(yè)務(wù)結合了視頻直播、視頻點(diǎn)播及視頻錄制等技術(shù)特點(diǎn),使用戶(hù)在看電視直播時(shí)可以進(jìn)行暫停、回跳延時(shí)觀(guān)看以及從延時(shí)觀(guān)看切換回直播狀態(tài)等操作,還可以讓用戶(hù)回看已播的電視節目。時(shí)移電視使用戶(hù)徹底從“你播我看”的傳統被動(dòng)收看電視這一模式中解放出來(lái),目前已被CCSA IPTV標準列為基本業(yè)務(wù)之一。目前在寬帶網(wǎng)絡(luò )上實(shí)現時(shí)移電視業(yè)務(wù)主要有兩種思路,即基于C/S模式的IPTV建設方案和基于技術(shù)的疊加網(wǎng)絡(luò )方案。

  在IPTV中,時(shí)移電視是通過(guò)直播和點(diǎn)播相結合實(shí)現的,其難點(diǎn)類(lèi)似于視頻點(diǎn)播。在傳統的視頻點(diǎn)播模式下。每個(gè)用戶(hù)與視頻服務(wù)器之間需要建立一個(gè)連接,因此即使是有限個(gè)用戶(hù)也會(huì )很快耗盡服務(wù)器的資源。這樣,如何減小服務(wù)器的壓力就成為系統設計的關(guān)鍵。對此業(yè)界已經(jīng)提出了許多流調度算法,如金字塔算法(Pyramid)[1,2]、摩天大樓(Skyscraper)算法[3]、批處理(Batching)技術(shù)[4]、補丁(Patching)技術(shù)[5~7]及層次組播流合并(hierarchICal multicast stream merging,HMSM)[8]技術(shù)等,已提出的大多數算法的基本出發(fā)點(diǎn)是采用組播方式,將同一文件的多個(gè)點(diǎn)播合并為一個(gè)組播信道服務(wù)。但這些策略在實(shí)際商業(yè)運營(yíng)中卻難以得到實(shí)際使用,其原因為,目前整個(gè)網(wǎng)絡(luò )并不支持全網(wǎng)IP組播,且這種節省資源的策略是以延時(shí)用戶(hù)響應為代價(jià)的,在商業(yè)運營(yíng)中得不償失。參考文獻[3]中提出了采用辦法實(shí)現時(shí)移電視的傳輸策略,但也是基于直播流采用IP組播傳輸的前提,并且要求客戶(hù)端能夠同時(shí)接收組播流和補丁流。該傳輸策略能夠適用于小型的局域網(wǎng)系統,但不適合現有的廣域網(wǎng)絡(luò )。其原因是現有廣域網(wǎng)絡(luò )并不支持全網(wǎng)IP組播,且目前使用最廣泛的ADSL線(xiàn)路帶寬不足以支撐同時(shí)傳輸兩個(gè)流。

  另一方面,在P2P視頻系統中,視頻直播業(yè)務(wù)應用比較廣泛,如Cool Streaming、PPlive等,而規模應用的P2P視頻點(diǎn)播系統卻很少見(jiàn),具備時(shí)移電視功能的P2P系統則基本上沒(méi)有見(jiàn)到。但從用戶(hù)角度看,真正吸引用戶(hù)使用P2P視頻系統的是比賽類(lèi)節目,如體育比賽、超女比賽等,而且,用戶(hù)對這類(lèi)節目的時(shí)移需求很強烈。比如觀(guān)看中突然有事,需要暫停,希望回來(lái)后能不間斷地繼續觀(guān)看,或者某個(gè)精彩鏡頭沒(méi)看清,希望跳回觀(guān)看,或者由于有事錯過(guò)了已播節目,希望能夠重新點(diǎn)播觀(guān)看等,因此,如果能夠在已有的P2P直播基礎上加入時(shí)移功能,必將受到用戶(hù)的極大歡迎。

  以前,IPTV與P2P基本是相互獨立發(fā)展的,有關(guān)IPTV與P2P結合的研究文獻不多見(jiàn)。最近,出現了部分有關(guān)IPTV與P2P結合的研究文獻[8~11],強調兩者的優(yōu)勢互補,并就如何在技術(shù)層面融合進(jìn)行了探討。

  本文將提出一種采用P2P技術(shù)實(shí)現的時(shí)移電視系統,這個(gè)系統不僅利用了P2P技術(shù)分散錄制和存儲直播節目,而且不需要依賴(lài)IP組播技術(shù)進(jìn)行直播,因此能夠解決IPTV系統中時(shí)移電視業(yè)務(wù)建設成本高、擴展性差的問(wèn)題。此外,每個(gè)客戶(hù)端在播放節目的同時(shí),只須錄制和存儲部分節目片段,并能為其他客戶(hù)端提供正在播放的視頻服務(wù)和已存儲的節目服務(wù),因此本文所提出的系統不僅減少了每個(gè)客戶(hù)端的開(kāi)銷(xiāo),而且可達到參與者越多,可供資源越多,服務(wù)質(zhì)量也就越好的規模擴展效果。

  2、系統方案

  2.1 系統架構

  圖1是基于P2P的時(shí)移電視系統架構,由圖1可見(jiàn),系統包括一個(gè)分片處理器、一個(gè)媒體定位器以及若干對等節點(diǎn)(Peer)。分片處理器對輸入的直播流進(jìn)行分塊和分段處理,形成媒體分塊和分段。一個(gè)媒體分段包括固定數量順序編號的媒體分塊,段的起始和結束由塊頭中標志位標識。媒體分段是系統定位和存儲媒體的基本單位,媒體分塊是系統傳輸媒體的基本單位。對等節點(diǎn)可從多個(gè)其他節點(diǎn)取得分塊數據進(jìn)行解碼和播放。為了敘述方便,把播放點(diǎn)附近不斷滾動(dòng)的若干媒體分塊定義為一個(gè)邏輯上的特殊分段——直播分段。

  

  圖1 基于P2P的時(shí)移電視系統架構

  媒體定位器管理媒體分段(包括直播分段)在各對等節點(diǎn)中的分布情況及確定其是否處于可服務(wù)的狀態(tài),并為對等節點(diǎn)提供媒體分段的定位服務(wù)。另外,媒體定位器還從分片處理器接收每個(gè)分段的起始時(shí)間和結束時(shí)間信息,該信息用于從時(shí)間信息到分段信息的翻譯服務(wù)。比如,某個(gè)節點(diǎn)需要收看某個(gè)頻道某個(gè)時(shí)刻的節目,該節點(diǎn)向媒體定位器請求源節點(diǎn),媒體定位器可從分段時(shí)間信息中得到對應的分段號,并返回具備該分段服務(wù)能力的源節點(diǎn)。

  對等節點(diǎn)接收到媒體數據后可緩存于內存和磁盤(pán)中。節點(diǎn)把上下線(xiàn)事件、緩存分段數據增減事件以及節點(diǎn)對外服務(wù)能力跳變事件都通過(guò)消息上報給媒體定位器,據此媒體定位器可精確維護每個(gè)節點(diǎn)上的每個(gè)媒體分 段的可服務(wù)狀態(tài)。數據傳輸在對等節點(diǎn)之間直接進(jìn)行。

  2.2 數據封裝

  經(jīng)分片處理器處理后的媒體分塊和分段格式如圖2所示。塊由塊頭和載荷區兩部分組成,載荷區中存放按時(shí)間順序排列的音視頻幀,塊頭除了對這些幀進(jìn)行描述外,還包括頻道號、段編號、塊編號以及段標志。段標志用于標識該分塊在分段中的位置,可取段開(kāi)始、段中間和段結束3種值,利用此標志,對等節點(diǎn)可以方便地從分塊流中進(jìn)行段定界。

  

  圖2 媒體分段和分塊封裝格式

  經(jīng)過(guò)分片處理后,對等節點(diǎn)可以從網(wǎng)絡(luò )中多個(gè)節點(diǎn)取得不同分塊,拼接并恢復媒體流,因此,節點(diǎn)可以采用靈活健壯的多源傳輸策略進(jìn)行直播和時(shí)移業(yè)務(wù)傳輸。

  2.3 數據分布策略

  本系統中不采用集中的存儲服務(wù)器,所有的媒體分段數據都分散存儲于各對等節點(diǎn)中。對等節點(diǎn)在播放過(guò)程中無(wú)需完整錄制節目,而只需把取得的媒體分段數據以一定的概率隨機緩存于節點(diǎn)的三級緩沖區中。

  對等節點(diǎn)的存儲模型如圖3所示(其中,陰影部分表示該塊已經(jīng)含有數據,空白塊表示該塊還未有數據),分為播放緩沖區、內存緩沖區和磁盤(pán)緩沖區3 部分,3個(gè)緩沖區的大小固定。播放緩沖區中的數據是不斷滾動(dòng)變化的,一邊不斷從其他節點(diǎn)取得,一邊又不斷播放和老化。當播放緩沖區取得了一個(gè)完整分段時(shí),按一定的概率寫(xiě)入內存緩沖區。當內存緩沖區存滿(mǎn)時(shí),則從存儲內容中選取一個(gè)時(shí)間最早的分段,將其覆蓋,同時(shí)把該被覆蓋的分段以一定的概率置入磁盤(pán)緩沖區。同理,如果磁盤(pán)緩沖區寫(xiě)滿(mǎn)時(shí),則選擇時(shí)間最早的段進(jìn)行覆蓋。

  

  圖3 節點(diǎn)三級緩存機制示意

  通過(guò)以上機制,可使當前的直播分段緩存在播放緩沖區中,且在全網(wǎng)的拷貝密度最大;已播的最近分段緩存在內存緩沖區中,全網(wǎng)密度次之;較舊的分段則被緩存于磁盤(pán)中,這類(lèi)分段數量大,但密度最低。上述處理辦法可與用戶(hù)一般的業(yè)務(wù)觀(guān)看習慣相一致,即大部分用戶(hù)是觀(guān)看直播,少部分用戶(hù)會(huì )進(jìn)行即時(shí)時(shí)移,只有很少量的用戶(hù)會(huì )去觀(guān)看已播的電視節目。另外,這種分布機制還具有以下效果:

  ●某個(gè)分段看的人多,在網(wǎng)絡(luò )各節點(diǎn)中被緩存的幾率就大,該分段的拷貝個(gè)數也就多,從而該分段所提供的服務(wù)能力就越大,因此具備良好的擴展性;

  ●單個(gè)節點(diǎn)只需錄制存儲一小部分節目片段,就可以在全網(wǎng)協(xié)同存儲完整節目的足夠多的拷貝,用戶(hù)數量越大,每個(gè)用戶(hù)所分擔的錄制和存儲開(kāi)銷(xiāo)就越小,因此能夠有效地減輕節點(diǎn)的錄制和存儲負擔。

  3、處理流程

  下面給出時(shí)移電視的4個(gè)主要用戶(hù)使用場(chǎng)景的業(yè)務(wù)處理流程的簡(jiǎn)要描述。

  

  圖4 業(yè)務(wù)流程示意

  (1)直播播放流程

  如圖4(a)所示,節點(diǎn)A首先向媒體定位器查詢(xún)頻道P直播分段的源,定位器返回節點(diǎn)B、C和D,節點(diǎn)A與B、C和D建立連接,傳輸數據并解碼播放。

  (2)直播轉時(shí)移

  如圖4(b)所示,節點(diǎn)A正在播放頻道P,現在用戶(hù)要求跳回到時(shí)刻T播放,直播轉時(shí)移的過(guò)程如下:

  ●節點(diǎn)A向定位器請求頻道P時(shí)刻T的媒體分段源節點(diǎn),定位器返回節點(diǎn)C和D;

  ●節點(diǎn)A停止直播分段數據的傳輸,轉而與C和D建立連接并請求數據,從時(shí)刻T進(jìn)行播放;

  ●一個(gè)分段播放結束后,進(jìn)入下一個(gè)分段的播放,需要重新向定位器查詢(xún)下一分段的源節點(diǎn)。

  (3)時(shí)移轉直播

  節點(diǎn)A正在進(jìn)行時(shí)移播放,用戶(hù)要求切回直播,同樣需要向定位器查詢(xún)直播分段所在的源,然后切斷時(shí)移分段傳輸,開(kāi)始直播分段數據傳輸。

  (4)電視回看

  用戶(hù)通過(guò)網(wǎng)頁(yè)菜單直接選擇播放已播的頻道P時(shí)刻T的節目,其原理與(2)中的時(shí)移播放類(lèi)似。

  4、實(shí)驗結果

  為了驗證方案的可行性,在局域網(wǎng)中搭建了一個(gè)節點(diǎn)數為20的系統,系統參數如下:

  ●碼流:800 kbit/s、MPEG4、25 Mbyte/分段、64 Kbyte/分塊、1路頻道;

  ●節點(diǎn):30 Mbyte播放緩沖區、100 Mbyte內存緩沖區、1000 Mbyte磁盤(pán)緩沖區,從播放緩沖區轉存到內存緩存的概率取為10%,從內存緩存轉存到磁盤(pán)的概率取為20%。

  對上述系統進(jìn)行了測試,實(shí)驗結果如下:

  ●20個(gè)用戶(hù)同時(shí)直播,能夠正常播放,畫(huà)面流暢;

  ●時(shí)移到直播切換延時(shí)為0.5 s,直播切換到時(shí)移的延時(shí)為0.5 s;

  ●直播啟動(dòng)延時(shí)為0.5 s;

  ●即時(shí)時(shí)移可支持0.5 h,在20個(gè)用戶(hù)同時(shí)時(shí)移時(shí),也能夠達到平滑切換;

  ●20個(gè)用戶(hù)同時(shí)在線(xiàn)運行1 h后,每個(gè)用戶(hù)即可以以菜單方式回看已播電視。

  5、結束語(yǔ)

  本文提出了一種基于P2P技術(shù)的時(shí)移電視解決方案,該方案充分利用了客戶(hù)端資源,因此無(wú)需專(zhuān)用視頻服務(wù)器即可實(shí)現時(shí)移電視業(yè)務(wù),從而解決了IPTV時(shí)移電視系統中建設成本高、擴展性差的問(wèn)題。實(shí)驗驗證表明,本文提出的方案具備優(yōu)越的用戶(hù)體驗質(zhì)量和良好的規模擴展性。

p2p機相關(guān)文章:p2p原理




關(guān)鍵詞: P2P

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>