国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

用Delphi編程實現(xiàn)H.264視頻文件的播放

2013-12-23 04:50張立平
關(guān)鍵詞:視頻文件窗體播放器

張立平

(武漢鐵路職業(yè)技術(shù)學(xué)院電子電氣工程系,湖北武漢 430205)

隨著流媒體播放、視頻監(jiān)控等應(yīng)用程序的開發(fā)被普遍應(yīng)用,H.264被認為是最有影響力的流媒體視頻壓縮標準。它既保留了以往壓縮技術(shù)的優(yōu)點和精華,又在編碼質(zhì)量和壓縮比上比原有的視頻編碼標準都有了明顯的提高。在相同的視覺感知質(zhì)量上,H.264 的數(shù)據(jù)壓縮比比當(dāng)前DVD系統(tǒng)中使用的MPEG-2高2~3倍,比MPEG-4高1.5~2倍。由于H.264/AVC 采取了大量的先進算法,在編碼效果和實現(xiàn)復(fù)雜度之間取得了良好的平衡[1-4]。正因為如此,目前網(wǎng)上大部分視頻是基于H.264視頻標準的。

傳統(tǒng)的影音播放器沒有播放H.264文件的功能,即使通過升級實現(xiàn)該功能,但使用時需安裝,用戶不方便。針對此問題,作者利用FFOCX控件在Delphi中實現(xiàn)了H.264視頻的解碼。

1 使用FFOCX 控件制作簡單的H264播放器

1.1 FFOCX簡介

FFmpeg是一套用于錄制、轉(zhuǎn)換和流化音頻、視頻的完整解決方案,而FFOCX 是對FFmpeg庫的完美封裝和擴展后的ActiveX OCX 版,支持目前所有的音視頻格式。FFOCX 能夠充分發(fā)揮FFmpeg庫的強大功能,并且比FFmpeg官方所提供的命令行程序更靈活、強大,比如支持轉(zhuǎn)換預(yù)覽,支持視頻合并,支持幀輸入、幀輸出,還支持同時轉(zhuǎn)換多個文件,可以充分利用現(xiàn)在越來越普及的多核CPU 資源[5]。FFOCX 控件名為ActiveFFmpegControls.ocx,可以從www.ccavc.com 網(wǎng)站下載。

1.2 H264播放器簡介

普通的H264播放器一般具有播放、暫停、停止、音量調(diào)節(jié)等功能。一個簡單的H264播放器包含以下3個部分:

(1)播放窗口:用于播放H264視頻文件。

(2)播放控制:包括播放、暫停、停止以及音量控制等。

(3)顯示播放信息:如視頻格式、幀格式、播放時間、目前播放時間等。

在用戶界面中,包含視頻播放窗口、水平滑塊(調(diào)節(jié)視頻播放位置)、列表(設(shè)置視頻播放比率以及控制視頻播放的按鈕。在播放視頻時,顯示播放時間等信息。

1.3 Delphi2010中添加FFOCX控件

FFOCX 控件在Delphi中不能直接使用,必須先注冊(使用Regsvr32命令)并安裝后才能使用。Delphi2010中安裝ActiveX 控件的方法如下[6]:

(1)注冊FFOCX 控件。

執(zhí)行regsvr32 ActiveFFmpegControls.ocx命令,可完成注冊。

(2)啟動Delphi2010。

(3)選擇File→New→Package-Delphi for Win32菜單命令,新建一個包。

(4)選擇Component菜單下的Import Component命令,打開Import Component對話框。

(5)選擇Import ActiveX Control單選項,單擊“Next”按鈕,彈出“Registered ActiveX Controls”。

(6)在對話框中選擇“ActiveX FFmpeg Control 3.0”。

(7)單擊“Next”按鈕,彈出控件的Unit等存放位置對話框,選中“Generate component wrappers”復(fù)選框。

(8)單擊“Next”按鈕,彈出“Create Unit”對話框。

(9)選擇“Add Unit to package”單選項,單擊“Finish”按鈕,完成安裝。

(10)在項目管理器中用鼠標右擊Package,從彈出的快捷菜單中選擇“Install”命令,完成Package的安裝。

(11)Delphi2010 中添加FFOCX 控件成功后就可以在Delphi2010窗口中添加該控件了,該控件位于組件面板的ActiveX 控件類中,包括FFEncoder、FFPlayer、FFDecoder、FFLogger、FFLoader。* FFEncoder用于音頻和視頻格式的轉(zhuǎn)換。

*FFPlayer用于播放音頻和視頻文件。

*FFDecoder用于獲得媒體文件信息以及解碼視頻幀畫面或音頻采樣數(shù)據(jù).

*FFLogger捕獲其他組件輸出的日志。

*FFLoader用于運行時期加載動態(tài)庫。

文中是使用FFPlayer控件開發(fā)的簡單音視頻播放器。

1.4 建立用戶界面、設(shè)置對象屬性

(1)新建一個基于對話框的VCL Form Application 名為Player_H264 的應(yīng)用程序,窗體Caption屬性設(shè)為“簡單音視頻播放器”,其項目名稱為playerh264。調(diào)整窗體至合適大小。

(2)添加控件。

①將組件面板ActiveX控件類中的FFPlayer控件添加到窗體中,該控件用于播放視頻文件。

②在窗體上添加1個打開文件對話框控件(Opendialog)。

③在窗體上添加1個面板控件(Panel)、1個ScrollBar控件、1個TrackBar控件、1個ListBox控件、4個按鈕控件、5個Label控件和1個Com-BoBox控件,控件名取默認值。Panel控件窗口用于播放視頻,ScrollBar控件用于控制視頻播放進度,TrackBar控件用于控制播放聲音。

(3)調(diào)整各控件至合適大小,效果如圖1所示。

圖1 添加控件效果

1.5 主要代碼

(1)主窗口代碼

(2)音視頻文件播放窗口代碼

1.6 執(zhí)行代碼

運行程序,結(jié)果如圖2所示。

圖2 運行結(jié)果

2結(jié) 語

FFOCX 控件具有豐富的功能,能實現(xiàn)目前所有音視頻格式文件的播放。www.ccvac.com網(wǎng)站提供了兩種格式的組件,一種是OCX 控件,其最高版本為3.0,適用于目前所有開發(fā)環(huán)境;另一種是針對Delphi 開發(fā)平臺的,控件名為FFVCL,并提供了豐富的事例程序。本文開發(fā)的簡單音視頻播放器使用的是OCX 控件,讀者可以使用此控件設(shè)計出屬于自己的功能強大的媒體播放器。

1 劉輝,魏玉琛,蒲布.基于Directshow 的H.264解碼器的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2011,37(9):139-141,148.

2 程少煉,陳林.基于Directshow 的H.264流媒體播放器設(shè)計[J].山西電子技術(shù),2010,6:65-67.

3 吳杰,吳寧,周陽等.基于H.264的網(wǎng)絡(luò)流媒體播放控件的設(shè)計與實現(xiàn)[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2011,11(4):53-56.

4 張前進.基于RTP 的H264實時傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].企業(yè)技術(shù)開發(fā),2011,30(23):1-2.

5 www.ccvac.com.

6 向隅.基于Delphi的PDF文檔顯示的實現(xiàn)[J].長江大學(xué)學(xué)報(自然科學(xué)版),2009,6(2):252-254.

猜你喜歡
視頻文件窗體播放器
流媒體視頻文件相似性識別的方法
隨心定制視頻文件的縮略圖
Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
基于STM32的MP3播放器設(shè)計
Moon ACE播放器/放大器一體機
播放器背板注塑模具設(shè)計
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
視頻文件,看過來
WinCE.net下圖形用戶界面的開發(fā)