廖夢(mèng)虎,向 隅
(武漢鐵路職業(yè)技術(shù)學(xué)院 電子電氣工程系,武漢 430205)
PowerBuilder中利用OLE技術(shù)實(shí)現(xiàn)H.264視頻文件的播放
廖夢(mèng)虎,向 隅
(武漢鐵路職業(yè)技術(shù)學(xué)院 電子電氣工程系,武漢 430205)
傳統(tǒng)播放器不能直接播放H.264視頻文件,給用戶帶來不便。以PowerBuilder為開發(fā)工具,采用OLE技術(shù)鏈接FFOCX控件,可實(shí)現(xiàn)H.264視頻文件的播放。實(shí)踐證明,利用FFOCX控件開發(fā)的播放器,不僅能播放H.264視頻文件,也能播放其它類型的音視頻文件。
PowerBuilder;H.264;OLE;FFOCX;播放器
下一代視頻壓縮標(biāo)準(zhǔn)—H.264/AVC(ITU-T Recommendation H.264 and ISO/IEC MPEG-4(part 10)Advanced Video Coding),由于采用大量的先進(jìn)算法,在相同的視覺感知質(zhì)量上,能以較低的碼率、較高的壓縮比(為MPEG-2的2~3倍,MPEG-4的1.5~2倍)及較小的失真,對(duì)圖像、視頻進(jìn)行編碼,在網(wǎng)絡(luò)和視頻監(jiān)控等方面得到廣泛應(yīng)用[1-2]。盡管暴風(fēng)影音等播放器提供播放H.264視頻文件的功能,但其文件太大,且需要安裝,使用不方便。在PowerBuilder(以下簡稱PB)中利用第三方控件FFOCX開發(fā)H.264播放器,可實(shí)現(xiàn)H.264視頻文件的播放,能有效解決上述問題。
PB是Sybase公司推出的優(yōu)秀數(shù)據(jù)庫前端開發(fā)工具,功能強(qiáng)大;OLE(Object Linking and Embedding,即對(duì)象鏈接和嵌入技術(shù))是Windows系統(tǒng)中允許應(yīng)用程序共享數(shù)據(jù)和程序功能的一種標(biāo)準(zhǔn)的便利方法[3]。本文通過利用OLE技術(shù),在PB中鏈接FFOCX控件,實(shí)現(xiàn)H.264視頻文件的播放。FFOCX控件可從網(wǎng)上下載(http:// www.ccvac.com,從該網(wǎng)址下載ActiveX OCX版),下載并解壓內(nèi)含ActiveFFmpegControls.ocx控件及媒體庫文件夾LibAV,版本為3.0。
PB中利用OLE對(duì)象必須先注冊(cè),可由以下兩種方式實(shí)現(xiàn)注冊(cè):
(1)使用Windows提供的注冊(cè)命令注冊(cè)FFOCX控件。運(yùn)行regsvr32 ActiveFFmpegControls.ocx命令即可完成FFOCX控件注冊(cè),若ActiveFFmpegControls. oc x不在當(dāng)前目錄下,還需要有完整的路徑。
(2)在PB窗口畫板中注冊(cè)FFOCX控件。在PB
圖1 FFOCX控件注冊(cè)完成后的顯示界面
FFOCX控件注冊(cè)成功后,在Control Type列表框中會(huì)顯示5個(gè)控件,分別是FFEncoder Control,F(xiàn)FLogger Control,F(xiàn)FPlayer Control,F(xiàn)FDecoder Control,F(xiàn)FLoader Control。FFEncoder Control用于音頻和視頻格式的轉(zhuǎn)換,F(xiàn)FLogger Control用于捕獲其他組件輸出的日志,F(xiàn)FPlayer Control用于播放音視頻文件,F(xiàn)FDecoder Control用于獲得媒體文件信息及解碼視頻幀畫面或音頻采樣數(shù)據(jù),F(xiàn)FLoader Control用于運(yùn)行時(shí)期加載動(dòng)態(tài)庫。這里只需使用FFPlayer Control就可實(shí)現(xiàn)H.264視頻文件的播放。
2.1 建立用戶界面,設(shè)置對(duì)象屬性
(1)新建用戶目錄,并將ActiveFFmpegControls. ocx控件和媒體庫文件夾LibAV拷貝至用戶文件夾。
(2)注冊(cè)ActiveFFmpegControls.ocx控件。
(3)新建一個(gè)工作區(qū)(名稱:H264_play)、應(yīng)用(應(yīng)用名:H264_app)及Windows窗體(窗體名:H264_play)。
(4)在窗體上添加OLE對(duì)象,將FFPlayer Control控件添加到窗體中,用于實(shí)現(xiàn)音視頻文件的播放。
(5)在窗體上添加1個(gè)DataWindow控件、1個(gè) HScrollBar控件、1個(gè)HTrackBar控件、1個(gè)ListBox控件、1個(gè)DropDownListBox控件、4個(gè)CommandButton控件、5個(gè)StaticText控件。DataWindow控件用于視頻顯示窗口,HScrollBar控件用于控制音視頻文件的播放進(jìn)度,HTrackBar控件用于控制音量大小,ListBox控件用于顯示狀態(tài)信息,DropDownList-Box控件用于控制視頻顯示比,CommandButton控件用于控制視頻的打開、暫停/繼續(xù)、下一幀和停止功能,StaticText控件用于顯示時(shí)間、視頻比、音量等文字信息。
(6)調(diào)整各控件大小并放于合適位置,控件使用默認(rèn)名,如圖2所示。
(7)窗體運(yùn)行,H.264播放器運(yùn)行效果顯示界面如圖3所示。
圖2 在窗體上添加控件
圖3 H.264播放器運(yùn)行效果顯示界面
2.2 編寫控件代碼
各控件的事件主要代碼如下:
FFmpeg是一套用于錄制、轉(zhuǎn)換和流化音視頻的完整解決方案,而FFOCX是對(duì)FFmpeg庫的完美封裝和擴(kuò)展后的ActiveX OCX版,支持目前所有的音視頻格式,且功能強(qiáng)大、使用靈活。利用O L E技術(shù)在P B中鏈接FFOCX控件,通過編程可實(shí)現(xiàn)H.264視頻文件的播放。用戶可根據(jù)上面介紹的使用方法,通過不斷的實(shí)踐,設(shè)計(jì)出屬于自己的功能強(qiáng)大的多媒體播放器。
[1]劉輝,魏玉琛,蒲布.基于Directshow的H.264解碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2011(9):139-141,148.
[2]程少煉,陳林.基于Directshow的H.264流媒體播放器設(shè)計(jì)[J].山西電子技術(shù),2010(6):65-67.
[3]杜光輝,張宇敬.PB中利用OLE技術(shù)實(shí)現(xiàn)Word報(bào)表[J].才智,2010(23):32.
[4]向隅.新編PowerBuilder程序設(shè)計(jì)實(shí)例教程[M].北京:清華大學(xué)出版社,2009:145-149.
[5]向隅.PowerBuilder中使用OLE對(duì)象實(shí)現(xiàn)FLV視頻文件的播放[J].東莞理工學(xué)院學(xué)報(bào),2010(3):40-43.
[責(zé)任編輯:曲延昌]
Playing H.264 Video Files by Using the OLE Technology in PowerBuilder
LIAO Menghu, XIANG Yu
(Department of Electronic & Electrical Engineering, Wuhan Railway Vocational College of
Technology, Wuhan, 430205, China)
The traditional player can not play H.264 video files and has brought inconvenience to the customers. With PowerBuilder as the developing tool, adopting the OLE technology to link FFOCX can achieve the playing of H264 video files. It is proved that the player by adopting FFOCX controller can not only play H.264 video files but other types of video files as well.
PowerBuilder; H.264; OLE; FFOCX; Player
TP311
A
1671-4326(2013)02-0062-03
2012-10-04
湖北省教育廳人文社會(huì)科學(xué)研究項(xiàng)目(2011yjte133)
廖夢(mèng)虎(1972—),男,湖北通城人,武漢鐵路職業(yè)技術(shù)學(xué)院電子電氣工程系講師;
向 隅(1966—),男,湖北仙桃人,武漢鐵路職業(yè)技術(shù)學(xué)院電子電氣工程系副教授,碩士.
溫州職業(yè)技術(shù)學(xué)院學(xué)報(bào)2013年2期