<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è) > 消費電子 > 設計應用 > 基于DVB-C的流媒體廣播系統實(shí)驗研究

基于DVB-C的流媒體廣播系統實(shí)驗研究

——
作者: 時(shí)間:2007-10-17 來(lái)源:電視技術(shù) 收藏

  1 引言

  基于的數據廣播在共享多媒體等海量數據方面具有明顯的優(yōu)勢,可解決網(wǎng)絡(luò )上傳輸海量流媒體信息資源引起的網(wǎng)絡(luò )阻塞,是一種低成本接收和可提供優(yōu)質(zhì)服務(wù)的優(yōu)秀信息共享結構。因此,基于數據廣播網(wǎng)的流媒體技術(shù)是具有潛力的技術(shù)。

  為此,本文介紹了一種搭建在實(shí)驗室的統,可用于有線(xiàn)電視廣播網(wǎng)平臺,為現有DVB-C數字有線(xiàn)電視系統開(kāi)展流媒體業(yè)務(wù)提供了一種由發(fā)送端到接收端的解決方案。

  2 流媒體傳輸技術(shù)方案

  流媒體的傳輸涉及到兩方面的技術(shù):其一,服務(wù)器端與客戶(hù)端的通信技術(shù),包括多媒體數據的傳輸、命令控制等;其二,客戶(hù)端對收到的多媒體流實(shí)時(shí)解碼播放的技術(shù)。

  本文中,對多媒體流的解碼播放使用DirectShow技術(shù),它將流媒體處理劃分為若干個(gè)連續的步驟,包括音視頻數據的采集、傳輸、分離、合并、編碼、解碼和回放等。每個(gè)具體的流媒體處理過(guò)程可由其中的幾個(gè)步驟組成。利用其中濾波器處理一個(gè)或多個(gè)步驟,用不同的濾波器實(shí)現不同的功能。開(kāi)發(fā)人員可創(chuàng )建自己的濾波器,也可用微軟或第三方提供的濾波器。應用程序連接若干個(gè)濾波器進(jìn)行指定的流媒體處理。數據可在不同的濾波器間傳輸,傳輸方向一般是單向的。一個(gè)過(guò)濾器通過(guò)輸出針將特定的輸出送到下游過(guò)濾器的輸入針。傳輸的數據加有時(shí)間戳,用來(lái)同步音視頻數據的回放。

  圖1為利用DirectShow開(kāi)發(fā)流媒體程序的框圖。

  

  在DirectShow中,濾波器分為3類(lèi)。

  1) 源濾波器:從數據源獲取原始數據。不同的源濾波器可處理一類(lèi)或多類(lèi)數據源,包括本地文件、網(wǎng)絡(luò )和數據采集卡等。

  2) 變換濾波器:用來(lái)獲取、處理和傳送媒體數據,它包括分離視頻和音頻的切分過(guò)濾器、解壓視頻數據的視頻解碼過(guò)濾器、解壓音頻數據的音頻解碼過(guò)濾器。

  3) 終端濾波器:對數據進(jìn)行最后的處理,可顯示視頻、回放音頻、保存數據或者將數據發(fā)送到網(wǎng)絡(luò )等。

  3 系統設計

  3.1 系統總體設計

  在DVB傳輸協(xié)議的基礎上,采用合適的硬件和軟件結構可構建一套數據廣播系統。圖2給出了在實(shí)驗室搭建的基于DVB-C的數據廣播系統平臺結構圖。

  

  系統所用設備:北京藍拓撲的IP/DVB網(wǎng)關(guān)(BDG-10)和數據接收卡(BDR-10C);九州QAM調制器;普通PC機,其中服務(wù)器使用WIN XP操作系統;客戶(hù)機使用的WIN 2000操作系統;IP/DVB網(wǎng)關(guān)使用WIN 2000Server操作系統。

  該系統同時(shí)具備本地文件廣播及流媒體廣播功能。服務(wù)器利用IP多播技術(shù),將UDP數據包通過(guò)內部以太網(wǎng)傳送到IP/DVB網(wǎng)關(guān),把輸入的IP數據打包成DVBTS碼流輸出,經(jīng)過(guò)640AM調制器調制到一個(gè)特定的8MHz帶寬的模擬電視頻道上,在有線(xiàn)電視網(wǎng)上傳送,信號經(jīng)過(guò)分支器進(jìn)行衰減,客戶(hù)端的PC機使用DVB-C接收卡接收各類(lèi)文件及流媒體數據。

  根據流媒體系統的設計要求,整個(gè)基于DVB-C的流媒體廣播軟件系統由服務(wù)器數據廣播發(fā)送軟件系統和客戶(hù)端接收實(shí)時(shí)播放軟件系統組成。

  3.2 服務(wù)器端軟件設計

  實(shí)驗系統軟件設計采用面向對象的程序設計方法,藍拓撲接收卡提供了適用于Visual C++6.0的API接口函數,因此,軟件開(kāi)發(fā)臺使用Visual C++提供的MFC編程平臺,發(fā)送接收使用Windows Socket技術(shù),采用面向無(wú)連接的UDP協(xié)議來(lái)實(shí)現服務(wù)器端主動(dòng)發(fā)送數據、用戶(hù)端被動(dòng)接收數據。發(fā)送端選擇MPEG-1編碼格式的多媒體文件作為節目源。

  其發(fā)送進(jìn)程如圖3所示。

  

  1) 初始化進(jìn)程環(huán)境

  

  2) 數據庫記錄集對象_RecordsetPtrm_pRecordset首先移動(dòng)到記錄集中的第一條記錄處m_pRecordset.Movefirst();

  3) 讀取數據庫獲得文件路徑(數據庫第三欄)m_p Recordset->GetCollect(“位置”),用函數CFile::Open打開(kāi)待發(fā)送的文件;

  4) 啟動(dòng)文件發(fā)送線(xiàn)程(一個(gè)函數循環(huán)),用函數CFile::read順序讀取文件數據(74 368 bit)到緩沖區,緩沖區定義為

  #define MPEG1_PACK  9296

  cbar*  pBuf = new char[MPEG1_PACK]

  用CSocket::SendTo函數將緩沖區數據封裝成UDP包并發(fā)送到網(wǎng)關(guān),等待30 ms后繼續此循環(huán),直至文件發(fā)送完畢;

  5) 將記錄集對象指針移動(dòng)到下一條記錄處,發(fā)送下一個(gè)文件,程序執行3),直至記錄集對象指針指到最后一條記錄處。

  3.3 客戶(hù)端軟件設計

  客戶(hù)端接收并解碼播放部分是系統的難點(diǎn)也是重點(diǎn)??蛻?hù)端解碼播放部分建立的DirectShow過(guò)濾器如圖4所示。除了源濾波器外,其他濾波器由DirectShow SDK中提供,但MPEG-1切分過(guò)濾器只能工作在拉模式(切分過(guò)濾器向源過(guò)濾器發(fā)送數據請求,源過(guò)濾器發(fā)送數據來(lái)回應請求)下,因此,Source Filter也設計成拉模式。

  

  客戶(hù)端接收實(shí)時(shí)回放軟件系統所用的關(guān)鍵技術(shù)有:

  1) 雙緩沖隊列技術(shù)

  客戶(hù)端通過(guò)函數CSocket::ReceiveFrom循環(huán)接收服務(wù)器端發(fā)送的數據包,為減輕網(wǎng)絡(luò )抖動(dòng)的影響,必須進(jìn)行一定量的緩沖,才能交給DirectShow解碼處理,動(dòng)態(tài)地一邊繼續從網(wǎng)絡(luò )接收數據,一邊將得到的數據進(jìn)行解碼回放。因此,使用了雙緩沖隊列技術(shù),封裝的CDataAdmin類(lèi)實(shí)現對數據接收隊列的管理。

  建立了兩個(gè)隊列:第一隊列是空閑的緩沖隊列Pool-List,用以接收存放數據包;另一個(gè)是尚未處理的數據緩沖隊列DataList,等待下游Filter的讀取。其代碼如下:

  

  當客戶(hù)端接收到一個(gè)包的數據,從PoolList的頭部拿出一個(gè)緩沖塊,存放數據,然后將這個(gè)緩沖塊加入到DataList的尾部等待DirectShow的Filter讀取;從DataL-ist頭部拿出一個(gè)緩沖塊,DirectShow的Filter讀取緩沖塊內的數據,讀完后將緩沖塊加入到PoolList的尾部,等待再一次地接收數據。

  2) 源過(guò)濾器的設計

  流媒體數據傳輸技術(shù)決定了DirectShow Filter只能讀取緩沖中的各個(gè)包數據,由于DirectShow只提供了異步文件源過(guò)濾器和URL文件源過(guò)濾器,因此,自己必須設計源過(guò)濾器。如圖5所示。

  

  在源過(guò)濾器的模塊結構中,過(guò)濾器CMemStream是從DirectShow SDK中的基類(lèi)CAsyncStream繼承而來(lái),處理從第二隊列中讀取數據,主要是由重載的CMem-Stream::read函數完成。輸出CAsyrncOutPin實(shí)現了I-AsyncReader接口以支持異步操作。所使用的切分過(guò)濾器的輸入pin是拉模式,它從CAsyncOutputPin的IAsyn-cReader接口中索取數據。圖中所有的數據請求都是由異步I/O操作類(lèi)CAsyncIo來(lái)處理,而CAyncIo的核心是請求對列處理線(xiàn)程,它不停地從請求隊列中取數據請求并處理,實(shí)現異步數據請求操作。

  總體數據流向為:在建立源濾波器CMemReader時(shí),CMemReader會(huì )建立一個(gè)CAyncIo對象且CAsyncIo在合適啟動(dòng)一個(gè)請求丟隊列處理線(xiàn)程,然后開(kāi)始以下的處理流程:1)MPEG-1切分過(guò)濾器向CAyncOutputPin提出數據請求;2) CAsyncOutputPin將該請求加以包裝并加入到CAsyncIo的請求隊列中,由處理線(xiàn)程來(lái)處理;3)處理線(xiàn)程通過(guò)內部流類(lèi)CMemStream訪(fǎng)問(wèn)緩沖區,讀取數據并通過(guò)CAyncOutputPin發(fā)給MPEG-1切分過(guò)濾器。實(shí)際應用時(shí),使用了DirectShow SDK提供的基類(lèi)CAyncIo和CAyncOutputPin,CMemReader是從DirectShow SDK中的基類(lèi)CAsyncReader繼承而來(lái),這一切簡(jiǎn)化了程序設計。

  4 實(shí)驗結果分析

  實(shí)驗完成了單路多媒體數據的廣播流式發(fā)送與接收并實(shí)時(shí)播放。利用丟包率與網(wǎng)絡(luò )帶寬等信息來(lái)檢測網(wǎng)絡(luò )狀態(tài)與確定發(fā)送速率。

  1) 丟包的檢測

  在單播環(huán)境中,本文采用的檢測方法為:發(fā)送端在發(fā)送固定數量的MPEG-1格式文件的同時(shí),發(fā)送固定頻率的空UDP包;接收端通過(guò)檢查能接收到的包數目來(lái)檢測包丟失情況。本服務(wù)器端發(fā)送4 495個(gè)數據包的MPEG-1格式文件,每個(gè)數據包9 296 byte,同時(shí)服務(wù)器端以2.1 Mbit/s的速率發(fā)送空的UDP測試包,接收端能收到的平均包數日為3 701,丟包率為17.7%。這主要是由網(wǎng)絡(luò )擁塞與網(wǎng)絡(luò )線(xiàn)路衰減引起的。

  丟包情況下接收端有馬賽克現象,但是現象影響輕微,用戶(hù)可觀(guān)看流暢的流媒體節目,并能把收到的節目存入文件。這表明在實(shí)驗中,流媒體廣播能成功接收。

  2) 網(wǎng)絡(luò )帶寬

  DVB-C平臺中調制器參數設置為:64QAM調制;網(wǎng)關(guān)最大傳輸速率為32 Mbit/s,可復用多路服務(wù)器的數據在8 MHz的模擬頻道上進(jìn)行傳輸,例如文件服務(wù)器等。流媒體數據的占用帶寬情況可在IP/DVB網(wǎng)關(guān)中觀(guān)測到,實(shí)際占的最大帶寬可等效于3.17 Mbit/s,網(wǎng)關(guān)可復用多路獨立的流媒體服務(wù)器的同時(shí)并行發(fā)送。

  因此,DVB-C廣播平臺擁有較高的傳輸速率,在單向傳輸大容量多媒體數據時(shí)比因特網(wǎng)更具有優(yōu)勢,可有效緩解因特網(wǎng)中的信息擁塞問(wèn)題。



評論


相關(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>