



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、vfw (video for windows)視頻編程2008-04-26 14:00 avicap 提供視頻流的捕捉,并且可以是實(shí)時(shí)的單幀捕捉。另外, avicap 提供視頻資源 媒體控制接口(media control interface )設(shè)備的控制,因此我們可以控制(當(dāng)然是通過我們的應(yīng)用程序了)視頻資源(張坤注:應(yīng)該是mci ,media control interface )的起、停位置,并且可以增加捕捉操作來加入幀捕捉的步驟!你用 avicap window class 創(chuàng)建的窗口,可以完成一下操作(張坤注:或者說是“ 有一下功能” ) :1捕捉聲音、視頻流到一個(gè)avi 文件。2動(dòng)
2、態(tài)地連接視頻、聲音輸入設(shè)備。3可以用覆蓋,或者直接用preview 方法去顯示一個(gè)實(shí)時(shí)變化的視頻信號。4當(dāng)開始捕捉的時(shí)候,指定一個(gè)文件(張坤注:用來存儲(chǔ)捕捉到的視頻的文件),并且把撲捉到的內(nèi)容copy 到另外一個(gè)文件。5設(shè)置捕捉的頻率;6顯示對話框來控制視頻資源(張坤注:應(yīng)該是mci 吧)和格式。7創(chuàng)建、保存、加載調(diào)色板。8copy 圖片,調(diào)色板到剪貼板上。9捕捉、保存一個(gè)單獨(dú)的圖片為一個(gè)設(shè)備無關(guān)的bitmap 如何使用視頻捕捉相信你看完上面的翻譯已經(jīng)快要嘔吐了 這么菜的水平還要上來丟人現(xiàn)眼沒辦法,誰然我這人臉皮厚呢 再說了,這年頭臉皮厚吃香啊_ 比如說那個(gè)叫做什么姐姐的啦,我的臉皮厚還是跟她
3、學(xué)的呢。算了算了不多說了,只要你敢往下看,我就敢往下寫 與其叫 “ 寫” 還不如叫翻譯吧。這部分包含了一些如何使用avicap window class 進(jìn)行視、音頻捕捉的步驟和例子1創(chuàng)建一個(gè)視頻捕捉窗口。下面的例子用capcreatecapturewindow 函數(shù)創(chuàng)建了一個(gè)捕捉窗口;hwnd hwndc=capcreatecapturewindow( (lpstr) ” my capture window” ,/窗口名稱ws_child | ws_visible,/設(shè)置窗口的類型0,/窗口左上角橫坐標(biāo)0,/窗口左上角縱坐標(biāo)100,/窗口寬度100,/窗口高度(hwnd)hwndparent
4、, /父窗口句柄(int)nid /* 該窗口的id*/) 2連接視頻捕捉設(shè)備驅(qū)動(dòng)下面的例子連接捕捉窗口和msvideo 設(shè)備驅(qū)動(dòng),然后用capdriverdisconnect 宏斷開。fok=sendmessage(hwndc, /接收消息的窗口句柄wm_cap_driver_connect, /發(fā)送的消息0, /消息附加參數(shù)0l/* 消息附加參數(shù)*/); 或者也可以用一個(gè)宏去連接msvedeo 驅(qū)動(dòng)fok=capdriverconnect(hwndc,0);/其中的參數(shù)hwndc 是我們剛才創(chuàng)建的視頻捕捉/窗口的句柄然后再調(diào)用capdriverdisconnect 宏斷開視頻捕捉驅(qū)動(dòng)(這個(gè)
5、步驟一般在捕捉完畢后)capdriverdisconnect(hwndc); 3.下面的例子用capgetdriverdescription 函數(shù)去獲取機(jī)器上安裝的捕捉驅(qū)動(dòng)的名字和版本char szdevicename80;/ 用來存放設(shè)備名稱char szdeviceversion80;/ 用來存放驅(qū)動(dòng)版本for(windex=0;windex10;windex+) if(capgetdriverdescription (windex,szdevicename,sizeof(szdevicename), szdeviceversversion,sizeof(szdeviceversion)
6、/把驅(qū)動(dòng)的名字添加到一個(gè)list 里面,來供使用者選??; 3獲取視頻捕捉驅(qū)動(dòng)的能力(張坤注:或者說是功能吧)wm_cap_driver_get_caps消 息 返 回 捕 捉 驅(qū) 動(dòng) 的 能 力 和 并 把 這 些 結(jié) 果 放 入 一 個(gè)capdrivercaps結(jié)構(gòu)體變量中,應(yīng)用程序每一次連接一個(gè)新的捕捉驅(qū)動(dòng)到捕捉窗口,并且回更新capdrivercaps結(jié)構(gòu)體變量。下面的例子用capdrivergetcap 宏去獲取捕捉驅(qū)動(dòng)的功能。capdrivercaps capdrvcaps; sendmessage(hwndc,wm_cap_driver_get_caps, sizeof(capdr
7、ivercaps),(long)(lpvoid)&capdrvcaps); 上面用的是消息發(fā)送的形式,下面是用capdrivergetcaps 宏的方式來獲取:capdrivergetcaps(hwndc,&capdrvcaps,sizeof(capdrivercaps); 4獲取視頻撲捉窗口的狀態(tài)下面用 capgetstatus宏獲取視頻流的最大尺寸,然后用這個(gè)尺寸做為setwindowpos 函數(shù)的參數(shù)去設(shè)置捕捉窗口的尺寸)capstatus capstatus;capgetstatus(hwndc,&capstatus,sizof(capstatus); setw
8、indowpos(hwndc,null,0,0,capstatus.uiimagewidth,capstatus.uiimageheight, swp_nozorder | swp_nomove); 5顯示視頻屬性設(shè)置對話框每種視頻捕捉驅(qū)動(dòng)都能提供三個(gè)不同的對話框用來控制視頻數(shù)字化表面和捕捉進(jìn)程,下面的例子向你展示如何顯示這些對話框,在顯示每個(gè)對話框之前,調(diào)用 capdrivergetcaps 宏并且核對返回的capdrivercaps結(jié)構(gòu)體變量,看該視頻捕捉驅(qū)動(dòng)是否能顯示這些對話框。capdrivercaps capdrvcaps; capdrivergetcaps(hwndc,&c
9、apdrvcaps,sizeof(capdrivercaps); /顯示視頻資源對話框if(capdrvcaps.fhasdlgvideosource) capdlgviceosource(hwndc); /顯示視頻格式對話框if(capdrvcaps.fhasdlgvideoformat) capdlgvideoformat(hwndc); if(capdrvcaps.fhasdlgvideodisplay) capdlgvideodisplay(hwndc); 6.獲取、設(shè)置視頻格式bitmapinfo結(jié)構(gòu)體的長度是可變的,因此適應(yīng)標(biāo)準(zhǔn)或壓縮的數(shù)據(jù)格式。由于這個(gè)結(jié)構(gòu)體的長度是可變的,因此應(yīng)
10、用程序在獲取當(dāng)前視頻格式之前必須經(jīng)常檢查結(jié)構(gòu)體的長度,分配內(nèi)存塊。下面的例子用capgetvideoformatsize 宏來獲取緩沖區(qū)的長度,然后調(diào)用 capgetvideoformat 宏來獲取當(dāng)前的視頻格式。lpbitmapinfo lpbi; dword dwsize; dwsize=capgetvideoformatsize(hwndc); lpbi=globalallocptr(ghnd,dwsize); capgetvideoformat(hwndc,lpbi,dwsize); 切記:在訪問完視頻格式之后要釋放剛才分配的內(nèi)存;另外,globalallocptr這個(gè)宏是在windo
11、wsx.h 中定義的,如果用這個(gè)宏的話一定要記得包含這個(gè)頭文件。7預(yù)覽視頻下面的例子用cappreviewrate 宏來設(shè)置幀輸出率66ms(66 毫秒)然后用cappreview 宏來設(shè)置捕捉窗口的預(yù)覽模式。cappreviewrate(hwndc,66); cappreview(hwndc,true); cappreview(hwndc ,false); 8允許視頻覆蓋下面的例子用capdrivergetcaps 宏來檢測一個(gè)視頻捕捉驅(qū)動(dòng)是否支持覆蓋,如果是則用capoverlay 宏去允許覆蓋;capdrivercaps capdrvcaps; capdrivergetcaps(hwnd
12、c,&capdrvcaps,sizeof(capdrivercaps); if(capdrvcaps.fhasoverlay) capoverlay(hwndc,true); 9.命名視頻捕捉文件下面的例子用capfilesetcapturefile 宏來為視頻捕捉文件準(zhǔn)備一個(gè)文件名(mycap.avi )并且用 capfilealloc 宏來預(yù)分配一個(gè)5m 的空間;char szcapturefile=” mycap.avi”;capfilesetcapturefile(hwndc,szcapturefile); capfilealloc(hwndc,(1024*1024*5); 1
13、0.格式化聲音捕捉(張坤注:也就是設(shè)置聲音捕捉格式,設(shè)置聲音采樣格式)下面用 capsetaudioformat 設(shè)置聲音采樣格式為11khz pcm 8bit 立體聲waveforma tex wfex; wfex.wformattag = w ave_format_pcm; wfex.nchannels = 2; / 雙聲道,立體聲wfex.nsamplespersec = 11025; wfex.navgbytespersec = 22050; wfex.nblockalign = 2; wfex.wbitspersample = 8; wfex.cbsize = 0; capsetaudioformat(hwndc, &wfex, sizeof(waveformatex); 11改變聲音采樣格式captureparms captureparms; float framespersec=10.0; capcapturegetsetup(hwndc,&captureparams,sizeof(captureparams); captureparms.dwrequestmicrosecperframe=(dowrd)(1.0e6/framespersec); capcapturesetsetup(hwndc,&cap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國食品及飼料添加劑行業(yè)運(yùn)營狀況及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國風(fēng)力發(fā)電機(jī)組葉片裝置市場發(fā)展趨勢與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國防火玻璃產(chǎn)業(yè)前景展望及未來投資規(guī)劃研究報(bào)告
- 2025-2030年中國鑄造粘結(jié)材料行業(yè)競爭格局及前景趨勢分析報(bào)告
- 2025-2030年中國銅加工產(chǎn)業(yè)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國金屬船舶市場前景規(guī)劃及發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國道路護(hù)欄行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報(bào)告
- 2025-2030年中國補(bǔ)血保健品市場十三五規(guī)劃與發(fā)展策略分析報(bào)告
- 2025-2030年中國脫臭餾出物的分離提取產(chǎn)物行業(yè)運(yùn)行現(xiàn)狀及前景規(guī)劃分析報(bào)告
- 2025-2030年中國納米二氧化鈦市場運(yùn)行狀況及發(fā)展趨勢預(yù)測報(bào)告
- 產(chǎn)品不良品(PPM)統(tǒng)計(jì)表格模板
- 品管圈PDCA提高手衛(wèi)生依從性-手衛(wèi)生依從性品
- 2023年廣州市青年教師初中數(shù)學(xué)解題比賽決賽試卷
- 對折剪紙課件
- 公園棧道棧橋施工方案
- 新中國成立后的中國國防
- 熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)ppt模板
- 不規(guī)則抗體篩查與鑒定
- 2023-2024人教版小學(xué)2二年級數(shù)學(xué)下冊(全冊)教案【新教材】
- 中國銀行海爾多聯(lián)機(jī)方案書
- 小學(xué)《體育與健康》體育基礎(chǔ)理論知識
評論
0/150
提交評論