Visual Basic下壓縮數據流播放技術--IT地帶
 首頁 新聞 安徽 體育 財經 黃梅 旅游 軍事 娛樂 法治 教育 伊人 健康
繁體中文
 IT 彩信 讀書 汽車 演藝 音樂 徽商 書庫 郵件 論壇 賀卡 相冊 交友
簡體中文
精彩圖庫 業界動態 觀察分析 手機數碼 電腦教室 軟件下載 游戲人間 本地市場
精彩推薦
v聯想IBM並購案再生變數 美方拒絕接受讓步條款
v反間諜軟件會損害硬盤 微軟稱最高只賠5美元
v第一財經日報:盛大入股新浪意在與微軟合作
v盜版OEM WinXP網上更新被禁 盜版商早有對策
vWinXP SP2自動昇級即將啟用 不管用戶是否需要
vPalm智能手機之王 Treo 650真機多圖賞析
v驚為天人 三星發布百萬像素MP3手機S260
v《曙光OL》最新超可愛游戲畫面公布
vXBOX版《銳擊》更多精彩游戲畫面欣賞
精彩圖片
  您當前的位置 :IT地帶 > 電腦教室 > 程序設計 正文
Visual Basic下壓縮數據流播放技術

中安網  2005-03-01 12:34

  天極yesky2月28日報道 1.引言

  銀行的數字化監視監控系統是目前比較有市場及應用前景的開發項目,基於不同的MPEG采集卡與硬件外圍設備開發的監視監控系統在國內外都有比較成型的技術。為了滿足實時監視、實時采集壓縮、隨時回放、壓縮數據流的傳播等具體要求,在該系統中使用了一種用於網絡視頻/音頻多點傳輸(視頻廣播)的視頻數據采集卡,提供AVI(MPEG I Frame壓縮編碼)采集、MPG采集。發送端廣播MPEG流,接受端接受MPEG流並顯示,網絡傳輸采用WinSock 2 IP-Multicast。如果本機為發送端,網絡上另外任何一臺PC可以作為接收端。只要指定不同端口號,同時可以有多臺PC機作為發送端,多臺PC機作為接收端接收不同發送端的視頻數據,也可在傳送數據的同時在本機將數據存為MPEG文件。本文主要介紹在VB的環境下開發MPEG卡采集的Audio/Video數據播放的一些編程技巧。

  2.MPEG的內容與發展簡介

  多媒體信息主要包括圖像、聲音和文本三大類。其中視頻、音頻等信號的信息量是非常大的,而且這些信息的表達方式、輸入、輸出的要求也各不同。對這些數據進行有效的表達和適當處理是很重要的,它使多媒體信息壓縮技術成為多媒體通信領域中的關鍵技術之一。ISO與IEC於1988年聯合成立的MPEG(Moving Picture Expert Group),致力於運動圖像及其伴音編碼的全球標准化工作。它包括MPEG系統:MPEG視頻、MPEG音頻。為了推動社會由文本信息時代向多媒體信息時代過渡,ISO繼MPEG-1、2和4後又推出了MPEG-7。

  MPEG-1制定於1993年(ISO/IEC 11172),是針對1.5Mbit/s以下數據傳輸率的數字存儲媒質運動圖像及其伴音編碼的國際標准。視頻壓縮率為26:1。MPEG-2制定於1995年(ISO/IEC 13818),是CCIR601建議的圖像質量DVB、HDTV和DVD制定的3-10Mbit/s的運動圖像及其伴音編碼的國際標准。與前面基於信息論的波形編碼理論,針對一定比特率的視頻、音頻編碼的MPEG標准不同的是,於1998年11月公布的國際標准MPEG-4更加注重多媒體系統的交互性和靈活性。它引入AV對象(Audio/Visual Objects),使得更多的交互操作成為可能。1998年10月國際標准化組織又推出了MPEG-7的構想,預計於2001年初最終完成並公布,其正式名稱為"多媒體內容描述接口"(Multimedia Content Description Interface)。它提出了一種適用於現實生活中的各種多媒體內容的標准化描述方案,以提取待描述對象的各方面特征為基礎,方便人們對所需的多媒體材料進行快速、有效的檢索。

  3.VB開發MPEG -- Audio/Video數據流的播放技術

  3.1.VB中Multimedia MCI控件,MediaPlayer控件播放MPEG數據流的缺點

  VB中常用的多媒體控件是Multimedia MCI控件,它管理媒體控制接口(MCI)設備上的多媒體文件的記錄與回放。它被用來向諸如聲卡、MIDI序列發生器、CD-ROM驅動器、視頻CD播放器和視頻磁帶記錄器及播放器等設備發出MCI命令,還支持Windows (*.avi)視頻文件的回放。采用Multimedia MCI控件播放采集的MPEG數據流,播放速度比實時監控顯示要快,在測試時還發現MPEG文件長度縮短到500k-600k時,就無法看到播出的圖像了。改用VB中的MediaPlayer控件上敘缺點仍然存在。分析原因是:因為MPEG文件長度太短了,播放設備剛打開就已經關閉了,這是編程無法控制的。而且,對於用戶要求獲取的某些有關壓縮數據流的信息和希望實現的某些功能,比如圖線尺寸、Copmression Rate、圖形的縮放顯示、界面的美觀等,上敘控件所提供的為方便程序開發人員使用的高層接口已不適用,要想在此基礎上實現對底層的一些操作,難度可想而知。在解決上敘實際性問題時,我們調用了動態鏈接庫Quatrz.dll。

  3.2.提供對MPEG流方便的底層操作和高層接口的動態鏈接庫Quatrz.dll

  在Windows\System下可找到一個動態鏈接庫Quatrz.dll,這是Windows中帶的用於控制運動圖像的播放的一個類型庫,只要在VB的"引用"菜單中將它添加進來即可使用。該庫中定義了IBasicAudio,IBasicVideo和IBasicVideo2,IMediaEvent、IMediaEventEx、IMediaPosition等類,可方便地在CommandButton控件的Click等事件中添加代碼設置和讀取Audio的相關值,設置或讀取Video的輸入輸出源的相關參數,直接調用無參函數Run、Pause、Stop等控制播放事件進程,利用IMediaPosition類對具體播放細節進行操作。對於壓縮的MPEG數據流的輸出顯示並不需要特別的控件,在VisualBasic中你可以選擇一個窗體作為容器或窗體上的PictureBox控件作為容器。為了界面的美觀和用戶查取相關信息的方便,我們采用了PictureBox控件作為容器顯示播放的MPEG數據流。

  3.3.用PictureBox控件顯示MPEG數據流

  Visual Basic中PictureBox控件可以顯示來自位圖、圖標或者元文件,以及來自增強的元文件、JPEG或GIF文件的圖形。亦可在代碼中操作圖形屬性和方法,以創建動畫或進行仿真。在窗體上放置了一個PictureBox控件picTV,在調用了Windows\System下動態鏈接庫Quatrz.dll的基礎上,定義一個全局的Object對象pMC,令pMC指向FilgraphManager的一個新實例,打開壓播放的MPEG文件;再定義一個局部對象pVW為IVideoWindow的新實例,打開一個播放Video的窗口;令pVW = pMC,給對象引用pVW賦值,將picTV的屬性值hWnd賦給pVW的Owner,這樣picTV就能顯示接收的MPEG數據流了。具體操作如下:

  Set pMC = New FilgraphManager

  pMC.RenderFile "C:\Bank\Montior\Example.MPG"

  Set pVW = pMC

  pVW.WindowStyle = CLng(&H6000000)

  pVW.Left = 0

  pVW.Top = 0

  OldWidth = pVW.width

  OldHeight = pVW.Height

  picTV.width = pVW.width * 15

  picTV.Height = pVW.Height * 15

  pVW.Owner = picTV.hWnd

  可以單獨定義一個函數包括這些代碼,也可將其放到CommandButton控件的Click事件中。

  [1]  [2]  下一頁
編輯: 丁毅
 ?【相 關 報 道】?
-Visual Basic實現實時曲線的繪制和保存   05-02-05 14:30
-適合Visual Basic初學者的10個小技巧   05-02-05 14:30
-淺議Visual Basic.NET中HOOK的應用   05-02-03 13:40
-用Visual Basic 6.0編寫磁盤格式化程序   05-01-18 13:45
-在Visual Basic 6中實現Kodak控件編程   05-01-10 14:42
 

中國安徽在線網站(中安在線)版權所有 未經允許 請勿復制或鏡像
皖ICP證 030106號