VB環境下壓縮資料流播放技術(2) (轉)

worldblog發表於2007-12-02
VB環境下壓縮資料流播放技術(2) (轉)[@more@] 
3.4.MPEG資料流的縮放顯示


   放大或縮小MPEG影像是各種多中常用的影像顯示處理手段。VisualBasic中對於靜態圖片進行縮放處理可以使用Image,將控制元件的Stretch屬性設為True,則裝入的圖片會改變比例適應Image控制元件的範圍,因此對圖片的縮放處理變成對Image控制元件的Height、Width屬性值的大小變化。由於控制元件的尺寸發生變化,顯示的點距不能改變,造成顯示點的畫素點與圖片不能完全一一對應,顯示質量明顯變差。只有Image控制元件才能對圖片進行縮放,如果PictureBox控制元件不足以顯示整幅圖象,則裁剪圖象以適應控制元件的大小。要想實現用PictureBox控制元件實現對輸出MPEG影像的縮放,必須改變MPEG資料流的輸出比例,在調節PictureBox控制元件的尺寸去適應輸出的MPEG影像。實際上,在上面的第3小節裡,為了顯示輸出MPEG影像已經這樣做了。只不過用的是讀取出的MPEG影像OldWidth、 OldHeight,下面給出一個以原來的1/2大小輸出MPEG影像的例子。


pVW.width = OldWidth / 2

pVW.Height = OldHeight / 2

picTV.Left = 135

picTV.Top = 135

picTV.width = pVW.width * 15

picTV.Height = pVW.Height * 15

pVW.Owner = picTV.hWnd


   在放大或縮小MPEG影像的尺寸時要注意保持Width、Height的比例一致,以免輸出的影像變形。

   3.5.滑鼠拖動播放MPEG資料流


   用滑鼠拖動捲軸隨意播放MPEG資料流是中多媒體播放機播放的常用技術。VB中的Slr 控制元件是包含滑塊和可選擇性刻度標記的視窗,可以透過拖動滑塊,用滑鼠單擊滑塊的任意一側或者使用鍵盤移動滑塊。在選擇離散數值或某個範圍內的一組連續數值時,Slider 控制元件十分有用。透過將滑塊移動到刻度標記處,可以對MPEG資料流進行定位播放。在窗體上放置一個Slider 控制元件Slider 1,設定好游標移動的最大步長LargeChange=5,最小步長SmallChange=1,最大移動範圍Max=50,實現如下:


Private Sub Slider1_Scroll()



Dim pMP As IMediaPosition

Dim v As Double


If Not bOpen Then Exit Sub


bSeeking = True

pMC.Pause


Set pMP = pMC


v = Slider1.Value - Slider1.Min

v = v / Slider1.Max * pMP.Duration

pMP.CurrentPosition = v

Set pMP = Nothing


pMC.Run



End Sub


   3.6.MPEG資料流採集時間的獲取

   VisualBasic裡提供了一個FileDateTime可用來獲取建立或是的日期與時間。定義一個區域性 pMP 為IMediaPosition的新例項,令pMP = pMC,給物件引用pMP賦值;再定義兩個Double型的變數curp、length,將pMP.CurrentPosition賦給curpos,取得MPEG資料流的當前相對位置時間,將pMP.Duration 賦給length,取得MPEG資料流的時間長度值;就能獲取MPEG資料流相對的採集時間。根據MPEG採集檔案建立的特性將兩個日期時間作加法或減法則可以得到MPEG資料流的採集時間。


   在整個MPEG的播放過程中,都要求實時顯示MPEG資料流的採集時間,可定義一個獲取採集時間的函式,採用Timer控制元件的Timer事件來。透過引發 Timer 事件,Timer 控制元件可以有規律地隔一段時間一次函式獲取到MPEG資料流的採集時間。


   4.結束語


   將成熟的影像技術用於電視監視領域具有十分重要的意義。例如:在銀行的監視監控中,由於客戶(銀行)身份的特殊性,在對冒領他人存款、銀行失竊或被搶劫等擾亂銀行正常工作秩序的事件的調查及其處理中,採集的壓縮資料流是很重要的辦案線索與證據。在該系統中不僅要求監視畫面清晰,採集的資料冗餘度低,MPEG資料流的播放技術也是很重要的。本文介紹了在Windows環境下,利用VisualBasic自身條件和原有控制元件開發MPEG卡採集的Audio/Video資料的播放技術。充分利用了VB的優越條件,靈活地與VB中各種現有控制元件結合,開發出來的MPEG媒體功能完善,回放的MPEG畫面能清晰地重現資料採集時場景、做到了"聞其聲,見其人"、並能準確確定事件發生的時間時刻。對只記錄了單幀的Audio/Video資料流也能同樣播放。上述技術已在監控系統中使用,並效果良好。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987441/,如需轉載,請註明出處,否則將追究法律責任。

相關文章