日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

视频捕捉全教程(MFC+vfw)

發(fā)布時(shí)間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视频捕捉全教程(MFC+vfw) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
視頻捕捉全教程(vc+vfw)

目 錄

一. 視頻捕獲快速入門

二.基本的捕獲設(shè)置

?????????? 1.設(shè)置捕獲速度:

?????????? 2.設(shè)置終止捕獲

?????????? 3.捕獲的時(shí)間限制

三.關(guān)于捕獲窗口

????????? 1.創(chuàng)建一個(gè)AVICAP捕獲窗口

????????? 2.將一個(gè)捕獲窗口連接至捕獲設(shè)備

?????????? 3. 父窗口與子窗口的交互

????????? 4.捕獲窗口的狀態(tài)

四.視頻捕獲驅(qū)動(dòng)和音頻驅(qū)動(dòng)

????????? 1.視頻捕獲驅(qū)動(dòng)的性能:

?????????? 2.視頻對(duì)話框:

???????? 3.PREVIEW 和 OVERLAY模式:

??????? ?? 4.視頻格式

????? ???? 5.視頻捕獲設(shè)置

?????? ?? 6.聲頻格式

五.使用視頻捕獲

???????? 1.創(chuàng)建捕獲窗口(CREATING A CAPTURE WINDOW)

??????? 2.連接到捕獲驅(qū)動(dòng)(CONNECTING TO A CAPTURE DRIVER)

???????? 3.列舉所有已安裝的捕獲驅(qū)動(dòng)(ENUMERATING INSTALLED CAPTURE DRIVERS)

???????? 4.得到捕獲驅(qū)動(dòng)的性能(OBTAINING THE CAPABILITIES OF A CAPTURE DRIVER)

???????? 5.得到捕獲窗口的狀態(tài)(OBTAINING THE STATUS OF A CAPTURE WINDOW)

???????? 6.顯示對(duì)話框設(shè)置視頻特征(DISPLAYING DIALOG BOXES TO SET VIDEO CHARACTERISTICS)

???????? 7.得到和設(shè)置視頻格式(OBTAINING AND SETTING THE VIDEO FORMAT)

???????? 8. 預(yù)覽視頻(PREVIEWING VIDEO)

???????? 9.將視頻設(shè)置為OVERLAY模式(ENABLING VIDEO OVERLAY)

???????? 10.命名捕獲文件(NAMING THE CAPTURE FILE)

???????? 11.格式化聲頻捕獲(FORMATTING AUDIO CAPTURE)

???????? 12.改變視頻捕獲設(shè)置(CHANGING A VIDEO CAPTURE SETTING)

??????? 13.捕獲數(shù)據(jù)(CAPTURING DATA)

???????? 14.增加一個(gè)信息塊(ADDING AN INFORMATION CHUNK)

???????? 15.在程序中加入一個(gè)回調(diào)函數(shù)(ADDING CALLBACK FUNCTIONS TO AN APPLICATION)

??????? 16.創(chuàng)建一個(gè)狀態(tài)回調(diào)函數(shù)(CREATING A STATUS CALLBACK FUNCTION)

???????? 17.創(chuàng)建一個(gè)錯(cuò)誤回調(diào)函數(shù)( CREATING AN ERROR CALLBACK FUNCTION)

??????? 18.創(chuàng)建一個(gè)框架回調(diào)函數(shù)(CREATING A FRAME CALLBACK FUNCTION)

六.將四個(gè)標(biāo)準(zhǔn)對(duì)話框改成函數(shù)調(diào)用形式

???????? AUDIOFORMAT對(duì)話框

???????? VIDEOFORMAT對(duì)話框

???????? VIDEOSOURCE對(duì)話框

???????? VIDEO COMPRESSION對(duì)話框  

前 言

????????? 視頻捕獲是指由專用的視頻采集卡捕獲聲頻和視頻信息,然后將其進(jìn)行數(shù)據(jù)化處理,再經(jīng)過軟件的壓縮進(jìn)行處理,這時(shí)就可對(duì)這些數(shù)據(jù)進(jìn)行保存、回放、傳輸?shù)雀鞣N操作。

???????? Windows專門提供了Video for Windows來對(duì)視頻處理進(jìn)行支持,提供的接口可以被大多數(shù)的視頻采集卡支持,并有多種視頻壓縮驅(qū)動(dòng)供選擇(當(dāng)然視頻壓縮可以自己開發(fā)),采集卡支持?jǐn)z像頭,TV等多種輸入。


一. 視頻捕獲快速入門

????????? 視頻捕捉將一個(gè)視頻流和音頻流數(shù)字化, 然后存儲(chǔ)在硬盤或其他存儲(chǔ)介質(zhì)上.

????????? 一個(gè)AVICap視窗口句柄描述了聲頻與視頻流的細(xì)節(jié), 這樣就使你的應(yīng)用程序從AVI文件格式, 聲頻視頻緩沖管理, 低層聲頻視頻驅(qū)動(dòng)訪問等等解脫出來, AVICap為應(yīng)用程序提供了一個(gè)靈活的介面, 你可以僅僅使用如下幾行代碼就可以將視頻捕捉加入你的程序:

hWndC = capCreateCaptureWindow ( "My Own Capture Window",

WS_CHILD | WS_VISIBLE , 0, 0, 160, 120, hwndParent, nID);

SendMessage (hWndC, WM_CAP_DRIVER_CONNECT, 0 /* wIndex */, 0L);

SendMessage (hWndC, WM_CAP_SEQUENCE, 0, 0L);

?????????? 一個(gè)宏其實(shí)也是使用SendMessage, 只不過提供給程序一個(gè)更易讀的代碼而已, 下面的這些示例就是使用宏的方法將視頻捕捉加入程序:

hWndC = capCreateCaptureWindow ( "My Own Capture Window",

WS_CHILD | WS_VISIBLE , 0, 0, 160, 120, hwndParent, nID);

capDriverConnect (hWndC, 0);

capCaptureSequence (hWndC);


????????? 當(dāng)你創(chuàng)建了一個(gè)AVICap類的捕捉窗口并將它連接到一個(gè)視頻驅(qū)動(dòng)時(shí), 此捕捉窗口即可以開始捕捉數(shù)據(jù), 你的程序可以簡(jiǎn)單的發(fā)送WM_CAP_SEQUENCE消息(或者使用capCaptureSequence宏)來開始捕捉.

????????? 如果是缺省的設(shè)置, WM_CAP_SEQUENCE會(huì)開始捕捉視頻音頻流到CAPTURE.AVI文件中, 直到下面的某一事件發(fā)生為止:

用戶按下了ESC鍵或者一個(gè)鼠標(biāo)鍵

你的應(yīng)用程序終止或異常中斷捕捉操作

磁盤已滿


????????????? 在一個(gè)應(yīng)用程序里, 你可以發(fā)送WM_CAP_STOP消息來終止捕捉數(shù)據(jù)(或者使用capCaptureStop宏), 你也可以發(fā)送WM_CAP_ABORT消息(或者使用capCaptureAbort宏)來終止.


二.基本的捕獲設(shè)置

????????? 基本的捕獲設(shè)置包括:設(shè)置捕獲速度(每秒捕獲多少幀),是否同時(shí)捕獲聲頻,捕獲緩沖,允許最大丟失多少幀,是否使用DOS內(nèi)存,以及用鍵盤的哪個(gè)鍵或鼠標(biāo) 的哪個(gè)鍵來終止捕獲等等。這些基本的設(shè)置都可以使用CAPTUREPARAMS結(jié)構(gòu)來描述,你可以使用capCaptureGetSetup宏來得到當(dāng)前 的設(shè)置,然后改變此結(jié)構(gòu)的成員變量,再使用capCaptureSetSetup宏設(shè)置新的設(shè)置。

例如:

1.設(shè)置捕獲速度:

?????????? 捕捉速度是指捕捉任務(wù)每秒鐘捕獲的幀數(shù), 你可以發(fā)送WM_CAP_GET_SEQUENCE_SETUP消息(或者使用capCaptureGetSetup宏)來得到當(dāng)前的捕捉速度, 當(dāng)前的捕捉速度保存在CAPTUREPARAMS結(jié)構(gòu)的dwRequestMicroSecPerFrame成員變量中, 你可以通過設(shè)置此變量來改變當(dāng)前設(shè)置, 單位是每毫秒連續(xù)的幀數(shù), 你可以發(fā)送WM_CAP_SET_SEQUENCE_SETUP消息(或者使用capCaptureSetSetup宏), dwRequestMicroSecPerFrame的值是66667, 相當(dāng)于每秒15幀.


2.設(shè)置終止捕獲

?????????? 你可以允許用戶按下某鍵或某組合鍵或者鼠標(biāo)的左右鍵來終止一個(gè)捕獲任務(wù), 如果是實(shí)時(shí)的捕獲, 則捕獲的文件將會(huì)被丟棄; 如果是單步捕獲, 在終止之前所捕獲的內(nèi)容將會(huì)被保存.

????????? 你可以通過發(fā)送WM_CAP_GETQUENCE_SETUP消息(或者使用capCaptureGetSetup宏)來得到當(dāng)前的設(shè)置, 當(dāng)前的按鍵設(shè)置保存在CAPTUREPARAMS的vKeyAbort成員中, 當(dāng)前的鼠標(biāo)設(shè)置保存在fAbortLeftMouse和fAbortRightMouse成員中. 你可以設(shè)置新的按鍵或按鍵組合, 或者鼠標(biāo)左右鍵, 當(dāng)你修改的CAPTUREPARAMS后,應(yīng)該發(fā)送WM_CAP_SET_SEQUENCE_SETUP消息來進(jìn)行更新(或者使用 capCaptureSetSetup宏). 缺省的按鍵是VK_ESCAPE. 你必須在指定按鍵之前使用RegisterHotKey函數(shù), 鼠標(biāo)缺省的值是fAbortLeftMouse和fAbortRightMouse都為TRUE.


3.捕獲的時(shí)間限制

?????????? CAPTUREPARAMS結(jié)構(gòu)中的fLimitEnabled指示是否有時(shí)間限度, wTimeLimit指示最大的持續(xù)時(shí)間, 單位為秒.

????????? 得到fLimitEnabled和wTimeLimit的值可以發(fā)送WM_CAP_GET_SEQUENCE_SETUP消息(或使用 capCatureGetSetup宏), 當(dāng)設(shè)置了這些成員變量后, 應(yīng)該發(fā)送消息WM_CAP_SET_SEQUENCE_SETUP消息(或capCaptureSetSetup宏)來更新CAPTUREPARAMS結(jié) 構(gòu).


三.關(guān)于捕獲窗口

??????? 在捕獲之前必須創(chuàng)建一個(gè)捕獲窗口(capture window),在發(fā)送消息或使用宏的過程中都需要使用此窗口。

1.創(chuàng)建一個(gè)AVICap捕獲窗口

??????? 你可以使用capCreateCaptureWindow函數(shù)來創(chuàng)建一個(gè)AVICap捕獲窗口, 此函數(shù)將會(huì)返回一個(gè)句柄, 此句柄以后在發(fā)送消息時(shí)要用.

??????? 你可以在一個(gè)程序里創(chuàng)建一個(gè)或多個(gè)捕獲窗口, 然后給每一個(gè)窗口連接不同的捕獲設(shè)置.


2.將一個(gè)捕獲窗口連接至捕獲設(shè)備

?????????? 你可以動(dòng)態(tài)的在一個(gè)捕獲窗口與一個(gè)捕獲設(shè)備之前連接或斷接, 你可以發(fā)送WM_CAP_DRIVER_CONNECT消息來使一個(gè)捕獲窗口與一個(gè)捕獲設(shè)備連接或關(guān)聯(lián). 當(dāng)連接上以后, 你就可以通過捕獲窗口向捕獲設(shè)備發(fā)送各種消息.

??????? 如果你的系統(tǒng)里裝有多個(gè)捕獲設(shè)備, 你可以在發(fā)送WM_CAP_DRIVER_CONNECT消息時(shí)用wParam參數(shù)指定使用哪一個(gè), 此參數(shù)是登記在SYSTEM.INI文件的[drivers]一節(jié)里的列表中的某一項(xiàng), 0為第一個(gè).

????????? 你可以使用capGetDriverDescription函數(shù)來得到已安裝的捕獲設(shè)備的名稱及版本, 這樣你的程序就可以列舉所有已安裝的捕獲設(shè)備和驅(qū)動(dòng), 這樣用戶就可以選擇其中的一個(gè)來與你的捕獲窗口連接.

???????? 你可以發(fā)送WM_CAP_DRIVER_GET_NAME消息(或capDriverGetName宏)來得到連接到捕獲窗口的捕獲設(shè)備的名稱, 得到版本發(fā)送WM_CAP_DRIVER_GET_VERSION消息(或capDriverGetVersion宏)

???????? 你可以發(fā)送WM_CAP_DRIVER_DISCONNECT消息(或capDriverDisconnect宏)來斷接.


3. 父窗口與子窗口的交互

?????????? 一些象WM_PALETTECHANGED和WM_QUERYNEWPALETTE的系統(tǒng)級(jí)消息只能發(fā)送到頂級(jí)窗口或OVERLAPPED窗口, 如果一個(gè)捕獲窗口是子窗口,就必須通過父窗口轉(zhuǎn)送.

???????? 同樣的, 如果父窗口的尺寸改變了, 它就需要通知捕獲窗口, 相反地, 如果捕獲窗口的尺寸改變了, 捕獲窗口就需要發(fā)送消息給父窗口, 一個(gè)簡(jiǎn)單的方法就是始終保持捕獲窗口的尺寸與視頻流的尺寸一致, 并隨時(shí)將尺寸的改變通知父窗口.


4.捕獲窗口的狀態(tài)

????????? 你可以發(fā)送WM_CAP_GET_STATUS消息(或capGetStatus宏)來得到當(dāng)前捕獲窗口的狀態(tài), 得到的是一個(gè)CAPSTATUS結(jié)構(gòu)的拷貝, 它包含圖片的尺寸, 卷軸的當(dāng)前位置, overlay和preview是否已設(shè)置.

??????? 因?yàn)镃APSTATUS信息是動(dòng)態(tài)的, 你的程序應(yīng)該只要捕獲的視頻流的尺寸或格式可能發(fā)生了改變就應(yīng)該進(jìn)行刷新(例如: 顯示了捕獲設(shè)備的視頻格式以后).

??????? 改變捕獲窗口的尺寸并不影響實(shí)際的捕獲的視頻流的尺寸, 視頻捕獲設(shè)備的格式對(duì)話框捕獲頻流的尺寸.


四.視頻捕獲驅(qū)動(dòng)和音頻驅(qū)動(dòng)

1.視頻捕獲驅(qū)動(dòng)的性能:

????????? 你可以通過發(fā)送WM_CAP_DRIVER_GET_CAPS消息(或者capDriverGetCaps宏)來得到當(dāng)前連接的視頻驅(qū)動(dòng)的硬件性能. 得到的信息保存在CAPDRIVERCAPS結(jié)構(gòu)中.


2.視頻對(duì)話框:

????????? 每一個(gè)視頻驅(qū)動(dòng)能夠提供四個(gè)對(duì)話框來控制視頻捕獲和數(shù)字化處理, 定義壓縮品質(zhì)等, 這些對(duì)話框都定義在視頻捕獲驅(qū)動(dòng)中.

????????? Video Source對(duì)話框用于控制選擇視頻來源, 此對(duì)話框列舉了此視頻捕獲卡連接的所有視頻源(典型的例如:SVHS和合成輸入), 并提供了改變色調(diào), 對(duì)比度, 飽和度. 如果視頻驅(qū)動(dòng)支持此對(duì)話框, 你就可以顯示并更新它, 使用WM_CAP_DLG_VIDEOSOURCE消息(或capDlgVideoSource宏).

?????????? Video Format對(duì)話框定義視頻幀的尺寸以及精度, 視頻捕獲卡的壓縮設(shè)置. 如果卡支持的話, 可以發(fā)送消息WM_CAP_DLG_VIDEOFORMAT消息或(capDlgVideoFormat宏).

?????????? Video Display對(duì)話框控制在視頻捕獲期間在顯示器上的顯示, 此控制不會(huì)影響視頻數(shù)字?jǐn)?shù)據(jù), 但是他們可能會(huì)影響數(shù)字信號(hào)的表現(xiàn)形式, 例如: 如果捕獲設(shè)備支持overlay, 可能允許改變色調(diào)和飽和度, 關(guān)鍵色彩 或者overlay隊(duì)列. 如果卡支持, 你可以發(fā)送WM_CAP_DLG_VIDEODISPLAY消息(或者使用capDlgVideoDisplay宏).

?????????? Video Compression對(duì)話框控制壓縮品質(zhì), 如果卡支持, 發(fā)送消息WM_CAP_DLG_VIDEOCOMPRESSION(或capDlgVideoCompression宏).


3.Preview 和 Overlay模式:

???????????????? 一個(gè)視頻捕獲驅(qū)動(dòng)對(duì)進(jìn)入的視頻流有兩種工作模式: Preview模式和overlay模式, 如果一個(gè)捕獲驅(qū)動(dòng)能夠執(zhí)行兩種方法, 用戶可以在其中選擇一種.

?????????????? Preview模式把從捕獲硬件傳來的數(shù)據(jù)送入系統(tǒng)內(nèi)存并使用圖形設(shè)備介面(GDI)將數(shù)字化幀顯示在捕獲窗口內(nèi). 應(yīng)用程序可以在父窗口失去焦點(diǎn)時(shí)減緩顯示速度, 當(dāng)重新又得到焦點(diǎn)后加快顯示速度, 此種模式要占用大量CPU時(shí)間.

有三種消息控制Preview操作:

WM_CAP_SET_PREIVEW消息(capPreview宏)允許或禁止preview模式

WM_CAP_SET_PREVIEWRATE(capPreviewRate宏)當(dāng)幀在preview模式顯示時(shí)設(shè)置速度.

WM_CAP_SET_SCALE(capPreviewScale宏)允許或禁止preview視頻的縮放比例.

????????? 當(dāng)preview和scaling同時(shí)使用, 捕獲的視頻幀將會(huì)根據(jù)捕獲窗口的尺寸自動(dòng)縮放, 允許preview模式會(huì)自動(dòng)關(guān)閉overlay模式.

????????????????????? overlay模式是一個(gè)硬件函數(shù)它將數(shù)據(jù)送入捕獲緩沖區(qū)中因而不占用CPU資源. 你可以發(fā)送消息WM_CAP_SET_OVERLAY(或capOverlay宏)給捕獲窗口來啟用或終止overlay模式, 允許overlay模式會(huì)自動(dòng)禁止preview模式.

?????????????? 你同時(shí)也可以在preview模式或overlay模式里發(fā)送WM_CAP_SET_SCROLL消息(或capSetScrollPos宏)來設(shè)置視頻幀的客戶區(qū)卷軸位置.


4.視頻格式

??????????? 你可以通過發(fā)送WM_CAP_GET_VIDEOFORMAT消息(或capGetVideoFormat和capGetVideoFormatSize 宏)來得到視頻格式的結(jié)構(gòu)或結(jié)構(gòu)的尺寸. 你可以通過發(fā)送CAP_SET_VIDEOFORMAT消息(或capSetVideoFormat宏)來設(shè)置視頻格式.


5.視頻捕獲設(shè)置

?????????? CAPTUREPARMS結(jié)構(gòu)包含了對(duì)視頻捕獲流的控制參數(shù), 你可以完成以下這些任務(wù):

指定幀數(shù)

指定分配多少視頻緩沖

允許或禁止聲頻捕獲

指定捕獲的時(shí)間間隔

指定在捕獲的過程中是否使用MCI設(shè)置(VCR或者videodisc)

指定終止流的鍵盤或鼠標(biāo)

specify the type of video averaging applied during capture.


得到:WM_CAP_GET_SEQUENCE_SETUP消息(或capCaptureGetSetup宏)

設(shè)置:WM_CAP_SET_SEQUENCE_SETUP消息(或capCaptureSetSetup宏)


6.聲頻格式

?????????????? 你可以通過發(fā)送WM_CAP_GET_AUDIOFORMAT消息(或capGetAudioFormat宏和 capGetAudioFormatSize宏)來得到當(dāng)前捕獲音頻數(shù)據(jù)的格式或尺寸格式。缺省的聲頻格式是:單聲道、8位、11kHz PCM。 當(dāng)你使用WM_CAP_GET_AUDIOFORMAT時(shí),總是使用WAVEFORMATEX結(jié)構(gòu)。

???????????? 設(shè)置發(fā)送消息WM_CAP_SET_AUDIOFORMAT消息(或capSetAudioFormat宏),可以傳送WAVEFORMAT,WAVEFORMATEX,PCMWAVEFORMAT結(jié)構(gòu)指針。

五.使用視頻捕獲

1.創(chuàng)建捕獲窗口(Creating a Capture Window)

hWndC = capCreateCaptureWindow (

(LPSTR) "My Capture Window", // window name if pop-up

WS_CHILD | WS_VISIBLE, // window style

0, 0, 160, 120, // window position and dimensions

(HWND) hwndParent,

(int) nID /* child ID */);


2.連接到捕獲驅(qū)動(dòng)(Connecting to a Capture Driver)

?????????? 下面的例子是將MSVIDEO驅(qū)動(dòng)連接到句柄為hWndC的捕獲窗口, 然后調(diào)用capDriverDisconnect宏來斷接.

fOK = SendMessage (hWndC, WM_CAP_DRIVER_CONNECT, 0, 0L);

//

// Or, use the macro to connect to the MSVIDEO driver:

// fOK = capDriverConnect(hWndC, 0);

//

// Place code to set up and capture video here.

//

capDriverDisconnect (hWndC);


3.列舉所有已安裝的捕獲驅(qū)動(dòng)(Enumerating Installed Capture Drivers)

?????????? 下面的例子使用capGetDriverDescription函數(shù)得到已安裝的捕獲驅(qū)動(dòng)的名稱及版本:

char szDeviceName[80];

char szDeviceVersion[80];


for (wIndex = 0; wIndex < 10; wIndex++)

{

if (capGetDriverDescription (wIndex, szDeviceName,

sizeof (szDeviceName), szDeviceVersion,

sizeof (szDeviceVersion))

{

// Append name to list of installed capture drivers

// and then let the user select a driver to use.

}

}


4.得到捕獲驅(qū)動(dòng)的性能(Obtaining the Capabilities of a Capture Driver)

????????????? 發(fā)送WM_CAP_DRIVER_GET_CAPS消息可以得到捕獲驅(qū)動(dòng)的性能,并保存入一個(gè)CAPDRIVERCAPS結(jié)構(gòu).每當(dāng)程序連接一個(gè)新的捕獲 驅(qū)動(dòng)到一個(gè)捕獲窗口時(shí), 就應(yīng)該更新CAPDRIVERCAPS結(jié)構(gòu). 下面的程序舉例說明了如何使用capDriverGetCaps宏來得到捕獲驅(qū)動(dòng)的性能:


CAPDRIVERCAPS CapDrvCaps;

SendMessage (hWndC, WM_CAP_DRIVER_GET_CAPS,

sizeof (CAPDRIVERCAPS), (LONG) (LPVOID) &CapDrvCaps);

// Or, use the macro to retrieve the driver capabilities.

// capDriverGetCaps(hWndC, &CapDrvCaps, sizeof (CAPDRIVERCAPS));


5.得到捕獲窗口的狀態(tài)(Obtaining the Status of a Capture Window)

???????????????? 下面的例子使用SetWindowPos函數(shù)使捕獲窗口與進(jìn)來的視頻流尺寸保持一致, 視頻流的基本信息是使用capGetStatus宏得到的, 保存在CAPSTATUS結(jié)構(gòu)中.


CAPSTATUS CapStatus;

capGetStatus(hWndC, &CapStatus, sizeof (CAPSTATUS));

SetWindowPos(hWndC, NULL, 0, 0, CapStatus.uiImageWidth,

CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);


6.顯示對(duì)話框設(shè)置視頻特征(Displaying Dialog Boxes to Set Video Characteristics)

????????????? 每個(gè)視頻捕獲卡一般能提供三個(gè)不同的對(duì)話框用于控制視頻捕獲及數(shù)字化處理. 下面的例子說明如何顯示這些對(duì)話框, 在顯示這些對(duì)話框之前,使用了capDriverGetCaps宏來檢查CAPDRIVERCAPS結(jié)構(gòu), 以檢測(cè)該卡是否有顯示這些對(duì)話框:


CAPDRIVERCAPS CapDrvCaps;

capDriverGetCaps(hWndC, &CapDrvCaps, sizeof (CAPDRIVERCAPS));


// Video source dialog box.

if (CapDriverCaps.fHasDlgVideoSource)

capDlgVideoSource(hWndC);


// Video format dialog box.

if (CapDriverCaps.fHasDlgVideoFormat)

{

capDlgVideoFormat(hWndC);

// Are there new image dimensions?

capGetStatus(hWndC, &CapStatus, sizeof (CAPSTATUS));

// If so, notify the parent of a size change.

}


// Video display dialog box.

if (CapDriverCaps.fHasDlgVideoDisplay)

capDlgVideoDisplay(hWndC);


7.得到和設(shè)置視頻格式(Obtaining and Setting the Video Format)

?????????????????? BITMAPINFO結(jié)構(gòu)的長(zhǎng)度既適應(yīng)于標(biāo)準(zhǔn)的也適應(yīng)于壓縮的數(shù)據(jù)格式, 所有程序必須總是詢問此結(jié)構(gòu)的尺寸以便在得到當(dāng)前的視頻格式之前分配內(nèi)存. 下面的例子就是使用capGetVideoFormatSize宏來得到緩沖區(qū)尺寸并調(diào)用capGetVideoFormat宏來得到當(dāng)前的視頻格式.


LPBITMAPINFO lpbi;

DWORD dwSize;

dwSize = capGetVideoFormatSize(hWndC);

lpbi = GlobalAllocPtr (GHND, dwSize);

capGetVideoFormat(hWndC, lpbi, dwSize);


// Access the video format and then free the allocated memory.


????????????? 程序可以使用capSetVideoFormat宏(或WM_CAP_SET_VIDEOFORMAT消息)發(fā)送一個(gè)BITMAPINFO頭結(jié)構(gòu)給捕獲窗口, 因?yàn)橐曨l格式是設(shè)備細(xì)節(jié), 你的程序應(yīng)該檢查返回值以便確定此格式是否已被接受.


8. 預(yù)覽視頻(Previewing Video)

???????????? 下面的例子使用capPreviewRate宏來設(shè)置每66毫秒顯示一幀, 并使用capPreview宏將它放置在捕獲窗口里.


capPreviewRate(hWndC, 66); // rate, in milliseconds

capPreview(hWndC, TRUE); // starts preview

// Preview

capPreview(hWnd, FALSE); // disables preview


9.將視頻設(shè)置為overlay模式(Enabling Video Overlay)

??????????? 下面的例子: capDriverGetCaps宏確定此捕獲卡是否有overlay功能, 如果有就使用宏來設(shè)置它


CAPDRIVERCAPS CapDrvCaps;

capDriverGetCaps(hWndC, &CapDrvCaps, sizeof (CAPDRIVERCAPS));


if (CapDrvCaps.fHasOverlay)

capOverlay(hWndC, TRUE);


10.命名捕獲文件(Naming the Capture File)

???????????? 下面的例子: 使用capFileSetCaptureFile宏來指定預(yù)備文件名為:MYCAP.AVI, capFileAlloc宏預(yù)先指定它的大小為5M.


char szCaptureFile[] = "MYCAP.AVI";

capFileSetCaptureFile( hWndC, szCaptureFile);

capFileAlloc( hWndC, (1024L * 1024L * 5));


11.格式化聲頻捕獲(Formatting Audio Capture)

???????????? 下面的例子使用capSetAudioFormat來設(shè)置聲頻格式為:11kHz, PCM 8位, 立體聲


WAVEFORMATEX wfex;

wfex.wFormatTag = WAVE_FORMAT_PCM;

wfex.nChannels = 2; // Use stereo

wfex.nSamplesPerSec = 11025;

wfex.nAvgBytesPerSec = 22050;

wfex.nBlockAlign = 2;

wfex.wBitsPerSample = 8;

wfex.cbSize = 0;


capSetAudioFormat(hWndC, &wfex, sizeof(WAVEFORMATEX));


12.改變視頻捕獲設(shè)置(Changing a Video Capture Setting)

?????????????? 下面的例子使用capCaptureGetSetup和capCaptureSetSetup宏得將捕獲幀數(shù)從缺省的15幀改成每秒10幀.


CAPTUREPARMS CaptureParms;

float FramesPerSec = 10.0;


capCaptureGetSetup(hWndC, &CaptureParms, sizeof(CAPTUREPARMS));


CaptureParms.dwRequestMicroSecPerFrame = (DWORD) (1.0e6 /FramesPerSec);

capCaptureSetSetup(hWndC, &CaptureParms, sizeof (CAPTUREPARMS));


13.捕獲數(shù)據(jù)(Capturing Data)

??????????????? 下面的例子使用capCaptureSequence宏來開始捕獲視頻并使用capFileSaveAs宏來將捕獲的數(shù)據(jù)拷貝至NEWFILE.AVI文件中.


char szNewName[] = "NEWFILE.AVI";

// Set up the capture operation.

capCaptureSequence(hWndC);

// Capture.

capFileSaveAs(hWndC, szNewName);


14.增加一個(gè)信息塊(Adding an Information Chunk)

?????????????? 如果你需要在你的程序捕獲的聲頻和視頻數(shù)據(jù)中加入你的其他信息, 你可以創(chuàng)建一個(gè)信息塊并將它們插入捕獲文件中, 信息塊可以包含一些典型的信息, 例如:版權(quán)信息,視頻來源, 外部定位信息等. 下面的例子使用capFileSetInfoChunk宏來插入一個(gè)信息塊, 里面包含了一個(gè)SMPTE的時(shí)間代碼.


// This example assumes the application controls

// the video source for preroll and postroll.

CAPINFOCHUNK cic;

// .

// .

// .

cic.fccInfoID = infotypeSMPTE_TIME;

cic.lpData = "00:20:30:12";

cic.cbData = strlen (cic.lpData) + 1;

capFileSetInfoChunk (hwndC, &cic);


15.在程序中加入一個(gè)回調(diào)函數(shù)(Adding Callback Functions to an Application)

?????????????? 一個(gè)程序可以為捕獲窗口登記一個(gè)回調(diào)函數(shù)以便在以下的這些情況下通知程序.


狀態(tài)改變

錯(cuò)誤發(fā)生

視頻框架和聲頻緩沖區(qū)變得可用

程序應(yīng)用在捕獲視頻流的過程中接收


?????????? 下面的例子創(chuàng)建一個(gè)捕獲窗口并登記狀態(tài),錯(cuò)誤,視頻流和框架回調(diào)函數(shù)在消息處理對(duì)列中, 也包括了一個(gè)終止回調(diào)函數(shù)的說明.


case WM_CREATE:

{

char achDeviceName[80]

char achDeviceVersion[100]

char achBuffer[100]

WORD wDriverCount = 0

WORD wIndex

WORD wError

HMENU hMenu


// Create a capture window using the capCreateCaptureWindow macro.

ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window",

WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0);


// Register the error callback function using the

// capSetCallbackOnError macro.

capSetCallbackOnError(ghWndCap, fpErrorCallback);


// Register the status callback function using the

// capSetCallbackOnStatus macro.

capSetCallbackOnStatus(ghWndCap, fpStatusCallback);


// Register the video-stream callback function using the

// capSetCallbackOnVideoStream macro.

capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback);


// Register the frame callback function using the

// capSetCallbackOnFrame macro.

capSetCallbackOnFrame(ghWndCap, fpFrameCallback);


// Connect to a capture driver


break;

}

case WM_CLOSE:

{

// Use the capSetCallbackOnFrame macro to

// disable the frame callback. Similar calls exist for the other

// callback functions.


capSetCallbackOnFrame(hWndC, NULL);


break;

}


16.創(chuàng)建一個(gè)狀態(tài)回調(diào)函數(shù)(Creating a Status Callback Function)

??????????? 下面的例子是創(chuàng)建一個(gè)簡(jiǎn)單的狀態(tài)回調(diào)函數(shù),登記此回調(diào)函數(shù)使用capSetCallbackOnStatus宏.


// StatusCallbackProc: status callback function

// hWnd: capture window handle

// nID: status code for the current status

// lpStatusText: status text string for the current status

//

LRESULT PASCAL StatusCallbackProc(HWND hWnd, int nID,

LPSTR lpStatusText)

{

if (!ghWndMain)

return FALSE;


if (nID == 0) { // Clear old status messages.

SetWindowText(ghWndMain, (LPSTR) gachAppName);

return (LRESULT) TRUE;

}

// Show the status ID and status text...

wsprintf(gachBuffer, "Status# %d: %s", nID, lpStatusText);


SetWindowText(ghWndMain, (LPSTR)gachBuffer);

return (LRESULT) TRUE;

}


17.創(chuàng)建一個(gè)錯(cuò)誤回調(diào)函數(shù)( Creating an Error Callback Function)

???????????? 下面的例子是創(chuàng)建一個(gè)簡(jiǎn)單的錯(cuò)誤回調(diào)函數(shù),登記此回調(diào)函數(shù)使用capsetCallbackOnError宏:


// ErrorCallbackProc: error callback function

// hWnd: capture window handle

// nErrID: error code for the encountered error

// lpErrorText: error text string for the encountered error

//

LRESULT PASCAL ErrorCallbackProc(HWND hWnd, int nErrID,

LPSTR lpErrorText)

{

if (!ghWndMain)

return FALSE;


if (nErrID == 0) // Starting a new major function.

return TRUE; // Clear out old errors.


// Show the error identifier and text.

wsprintf(gachBuffer, "Error# %d", nErrID);


MessageBox(hWnd, lpErrorText, gachBuffer,

MB_OK | MB_ICONEXCLAMATION);


return (LRESULT) TRUE;

}


18.創(chuàng)建一個(gè)框架回調(diào)函數(shù)(Creating a Frame Callback Function)

????????????? 登記此回調(diào)函數(shù)使用capSetCallbackOnFrame宏:


// FrameCallbackProc: frame callback function

// hWnd: capture window handle

// lpVHdr: pointer to struct containing captured

// frame information

//

LRESULT PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)

{

if (!ghWndMain)

return FALSE;


wsprintf(gachBuffer, "Preview frame# %ld ", gdwFrameNum++);

SetWindowText(ghWndMain, (LPSTR)gachBuffer);

return (LRESULT) TRUE

}


六.將四個(gè)標(biāo)準(zhǔn)對(duì)話框改成函數(shù)調(diào)用形式

????????????? 系統(tǒng)提供了四個(gè)標(biāo)準(zhǔn)的對(duì)話框:AudioFormat, VideoFormat, VideoSource, Video Compression,但有時(shí)程序希望通過函數(shù)控制它們,而不是使用系統(tǒng)提供的那個(gè)單一的對(duì)話框,此時(shí)就應(yīng)該使用函數(shù)調(diào)用的方法:


AudioFormat對(duì)話框

??????????? 可以通過使用capSetAudioFormat來實(shí)現(xiàn),此時(shí)要使用WAVEFORMATEX結(jié)構(gòu)。

例如:改成PCM格式,立體聲,16聲道,12.05kHz,則:

WAVEFORMATEX audioFormat;

// 確定寬度

acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT,&dwSize);

dwSize = max (dwSize, capGetAudioFormatSize (m_hwCapCapturing));

// 設(shè)置參數(shù)

audioFormat.wFormatTag = WAVE_FORMAT_PCM;

audioFormat.nChannels = 2;

audioFormat.nSamplesPerSec = 120500;

audioFormat.wBitsPerSample =16;

audioFormat.nBlockAlign = nBitsPerSample * nChannels / 8;

audioFormat.nAvgBytesPerSec =

audioFormat.nBlockAlign * nSamplesPerSec;

// 更新

capSetAudioFormat(ghCapWnd,&audioFormat,dwSize);

VideoFormat對(duì)話框

????????????????? 可以通過使用capSetVideoFormat來實(shí)現(xiàn),此時(shí)要使用BITMAPINFOHEADER結(jié)構(gòu)。

例如:設(shè)置圖片大小為RGB24位歲,大小為230X160

BITMAPINFOHEADER bi;

DWORD dwSize,dw;

bi.biSize = sizeof(BITMAPINFOHEADER);

bi.biWidth = 320; // 起作用

bi.biHeight = 160; // 起作用

bi.biPlanes = 1;

bi.biBitCount = 24;

bi.biCompression = BI_RGB;

bi.biSizeImage = 0;

bi.biXPelsPerMeter = 176;

bi.biYPelsPerMeter = 144;

bi.biClrUsed = 0;

bi.biClrImportant = 0;

dwSize = bi.biSize + ((bi.biBitCount > 8 || bi.biClrUsed) ? (bi.biClrUsed * sizeof(PALETTEENTRY)) : (2 ^ bi.biBitCount * sizeof(PALETTEENTRY)));

dw = capSetVideoFormat(m_hwCapCapturing, &bi, dwSize);

VideoSource對(duì)話框

??????????????? 沒有找到現(xiàn)成的方法,但視頻捕獲卡提供的CD里面有一個(gè)動(dòng)態(tài)鏈接庫(kù)可以實(shí)現(xiàn)。

Video Compression對(duì)話框

???????????? 可以通過使用ICOpen,ICInfo等函數(shù)聯(lián)合起來,得到當(dāng)前系統(tǒng)里面的視頻壓縮驅(qū)動(dòng)的列表,并可選擇其一,MSDN里面有一個(gè)程序示范了此用戶,程序名叫:ICWalk。

總結(jié)

以上是生活随笔為你收集整理的视频捕捉全教程(MFC+vfw)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美精品在线观看一区 | 成人黄色影片在线 | 四虎影视8848dvd | 操综合| 狠狠狠狠狠狠天天爱 | 久久情爱 | 久久亚洲在线 | 久精品在线 | 国产精品一区二区果冻传媒 | 欧美日韩国产一区二区三区在线观看 | 亚洲精品欧美专区 | 日b视频在线观看网址 | 91精品毛片 | 美女黄色网在线播放 | 久久国产精品久久国产精品 | 国产精品免费久久久久 | 中文av字幕在线观看 | 免费色婷婷| 91精品在线播放 | 成人在线视 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲无吗天堂 | 黄色精品一区 | 亚州精品视频 | 国产 一区二区三区 在线 | 91精品中文字幕 | 免费在线观看日韩欧美 | 中文在线字幕观看电影 | 日日日日干 | 波多野结衣在线观看一区二区三区 | 婷婷亚洲综合五月天小说 | 97免费视频在线 | 国产免费专区 | 国产成人在线观看免费 | 国产 日韩 在线 亚洲 字幕 中文 | 91成人在线看 | 丰满少妇高潮在线观看 | 日韩在线观看视频中文字幕 | 99视频精品 | 久草网在线| 91av在线视频免费观看 | 久久综合国产伦精品免费 | 久久午夜影院 | 亚洲精品午夜久久久久久久久久久 | 国产视频在线看 | 国产伦理剧 | 国产黄免费在线观看 | 婷婷狠狠操 | 在线网站黄 | 国产婷婷vvvv激情久 | 久久久久久久久久久久久久av | 亚洲做受高潮欧美裸体 | 91免费的视频在线播放 | 六月丁香社区 | 福利区在线观看 | 999免费视频 | 久久久久综合网 | 久久天| 国产在线一线 | 韩国三级一区 | 久久亚洲私人国产精品 | 久热电影 | 最近2019中文免费高清视频观看www99 | 992tv在线观看网站 | 又黄又刺激又爽的视频 | 国产午夜精品理论片在线 | 狠狠色丁香婷婷综合最新地址 | 91av久久| 九九精品视频在线观看 | 毛片一级免费一级 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 久久色在线观看 | 91成人区| 欧美老女人xx | 成片免费观看视频大全 | 黄色毛片网站在线观看 | 四虎小视频 | 91视频免费国产 | 成人欧美一区二区三区在线观看 | 亚洲伊人天堂 | 在线观看免费一级片 | 久精品在线| 国产 日韩 欧美 自拍 | 在线视频 区 | 国产视频亚洲 | 欧美最猛性xxxxx免费 | 在线观看91av | 精品一区二区久久久久久久网站 | 在线观看免费中文字幕 | 特级西西444www大胆高清无视频 | 欧美 日韩 国产 中文字幕 | 亚洲精品国产第一综合99久久 | 日韩一区视频在线 | 久久精品站| 特级西西www44高清大胆图片 | 亚洲国产精品va在线看黑人动漫 | 夜夜躁狠狠躁日日躁 | 亚洲欧洲国产精品 | 色资源二区在线视频 | 日韩av免费大片 | 成人a在线观看 | 国产手机在线观看视频 | 黄色大片av | 国产日韩中文字幕 | 精品视频99 | 免费看一级黄色 | 免费久久久 | www免费看片com | 狠狠久久综合 | 久久久久久久久久久久久久免费看 | 久久在线看 | 日韩成人黄色 | 国产视频二区三区 | 亚洲全部视频 | 亚洲视频 一区 | 精品99视频 | 亚洲国产大片 | 国产又粗又猛又黄又爽 | 国产精品久久久久久久久久久久午夜 | 国产亚洲一区二区三区 | 婷婷在线播放 | 国产精品区二区三区日本 | 激情电影在线观看 | av怡红院 | 日韩特黄一级欧美毛片特黄 | 在线免费观看一区二区三区 | 国产精品不卡在线播放 | 色就色,综合激情 | 国语精品久久 | 黄在线免费观看 | 精品久久久影院 | 天天综合精品 | 久草www| 亚洲精品在线观看视频 | 欧美一级艳片视频免费观看 | 久久综合视频网 | 久草网站在线 | 一区二区中文字幕在线播放 | 国内精品久久久久久久久久 | 午夜久久| 一区二区三区手机在线观看 | 欧美精品一区二区在线播放 | 精品自拍sae8—视频 | 午夜999| 国产成人精品一二三区 | 色婷婷亚洲综合 | 97在线观看视频国产 | 天天干天天天 | 美女黄视频免费看 | 中文字幕第一页在线 | 最新日韩在线观看 | 亚洲精品色婷婷 | 国产精品18久久久久久久 | 久久这里只有精品23 | 麻豆国产精品一区二区三区 | 国产精品人人做人人爽人人添 | 99电影456麻豆 | 亚洲国产精品va在线看 | 日本精品久久久久中文字幕 | 婷婷国产视频 | 日韩电影中文字幕在线观看 | 99视频精品 | 国产麻豆精品一区 | 91亚洲精品国产 | 91丨九色丨高潮丰满 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 欧美精品在线视频 | 成人免费在线播放视频 | 在线亚洲观看 | 亚洲理论片 | 成人毛片a| 在线观看国产区 | 麻豆精品在线 | 中文字幕日本特黄aa毛片 | 黄色小网站免费看 | 午夜久久久久久久久久久 | 黄色毛片视频免费 | 亚洲精品综合欧美二区变态 | 在线观看亚洲免费视频 | 国产免费中文字幕 | 久久av网址 | 国产精品一区二区av | 国内一区二区视频 | 国产在线无 | 永久免费精品视频网站 | 色综合中文字幕 | 亚洲永久精品在线观看 | 成人av在线一区二区 | 久久久久亚洲精品 | 天天插天天操天天干 | av网址在线播放 | 婷婷色伊人 | 四虎成人免费观看 | 日韩欧美xxx | 国产99精品在线观看 | 国产一区久久 | 国产网红在线 | 一级理论片在线观看 | 99精品成人 | 91亚洲国产成人久久精品网站 | 久久精品成人欧美大片古装 | 久久久精品国产免费观看同学 | 97超碰资源网 | 亚洲一二三区精品 | www.少妇| 91av小视频 | 亚洲一区二区三区四区在线视频 | 久久精品亚洲综合专区 | 成人精品国产免费网站 | 免费在线观看国产黄 | 激情丁香综合五月 | 亚洲黄色av | 国产精品成人久久久久 | 亚洲成色777777在线观看影院 | 日韩在线播放av | 蜜臀av性久久久久av蜜臀妖精 | 国产精品中文字幕在线观看 | 国产色拍拍拍拍在线精品 | 中文在线字幕免 | 天天操操操操操 | 午夜.dj高清免费观看视频 | 国产日产在线观看 | 精品美女在线观看 | 视频一区二区在线观看 | 精品国产乱子伦一区二区 | 国产亚洲精品福利 | 97超碰人人澡人人爱学生 | 91久久久久久久一区二区 | 在线色吧 | 国产无套一区二区三区久久 | 亚洲天堂网站视频 | 男女拍拍免费视频 | 天天天干 | 欧美视频99| 久久亚洲精品国产亚洲老地址 | 欧洲亚洲精品 | 天天操天天射天天插 | 9999在线| 国产91精品一区二区绿帽 | 日韩久久一区二区 | 九色91福利 | www.成人sex | 99在线看| 综合伊人久久 | 亚洲国产成人在线 | 国产高清在线精品 | 黄色小说网站在线 | 成人蜜桃 | 韩日精品中文字幕 | 免费观看国产精品视频 | 91在线视频观看免费 | 日韩欧三级 | 亚洲高清91 | 婷婷六月在线 | 久久免费视频7 | www日韩视频 | 色av男人的天堂免费在线 | 99精品视频在线观看播放 | 综合色亚洲 | 97av影院| 五月综合色婷婷 | 涩涩资源网| 久久久久久久久久免费 | 久久综合九九 | 在线观看国产区 | 香蕉影视在线观看 | 涩涩网站在线播放 | 国产一级特黄毛片在线毛片 | 免费久久99精品国产 | 在线观看视频 | 日韩中午字幕 | 日韩高清无线码2023 | 亚洲国产欧美一区二区三区丁香婷 | 国内成人av | 亚洲第一区在线观看 | 久草香蕉在线视频 | 色久网| 日韩欧美精品一区 | 97色婷婷| 久久精品视频在线免费观看 | 亚洲精品免费在线视频 | 国产区在线看 | 正在播放一区二区 | 欧美日高清视频 | 久久久久久久影院 | 日韩av免费大片 | 日日夜夜精品免费观看 | 欧美色噜噜噜 | 国产在线观看,日本 | 国产精品原创视频 | 色亚洲激情 | 国产一区二区播放 | 六月婷操| 久久久国产精品网站 | 韩日av一区二区 | 国产在线久久久 | 成人免费视频免费观看 | 免费三级黄色 | www黄在线 | 国产正在播放 | 成人黄在线 | 国产精品永久免费观看 | 成人av手机在线 | 国产五十路毛片 | 国产成人免费高清 | 激情综合色综合久久综合 | 热久久免费视频 | 国产精品久久久久久久久免费 | 69xxxx欧美 | 欧美ⅹxxxxxx| 久久久wwww | 色综合久久88| 女人18片 | 69av久久 | 成人h视频在线播放 | 久久久国产一区二区三区四区小说 | 中文字幕精品三区 | 天天操天天爱天天干 | 精品视频一区在线观看 | www.天天射.com | 99爱视频 | 美女网站色在线观看 | 亚洲人成人天堂h久久 | 在线a人v观看视频 | 婷婷婷国产在线视频 | 亚a在线 | 日日日日| 超碰在线个人 | 中文字幕亚洲欧美日韩2019 | a级黄色片视频 | 婷婷丁香激情五月 | 国产自产在线视频 | 在线电影日韩 | 日韩视频免费观看高清 | 婷婷丁香七月 | 久久再线视频 | 狠狠色噜噜狠狠狠狠 | 国内久久久久久 | 成人国产综合 | 在线免费观看视频你懂的 | 久久久99精品免费观看 | 国产经典 欧美精品 | 日韩成人免费在线电影 | 91av视频在线观看免费 | 丁香九月婷婷综合 | 97精产国品一二三产区在线 | 国产亚洲精品美女久久 | 黄影院| 一级全黄毛片 | 91看成人 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 久久视频在线观看免费 | 午夜电影 电影 | 西西4444www大胆艺术 | 人人爽人人av | 免费高清在线观看成人 | 日韩精品视频在线免费观看 | 亚洲区精品视频 | av成人在线观看 | 久久九九网站 | 免费视频xnxx com | 国产在线观看中文字幕 | 日韩精品免费在线观看视频 | 国产日韩欧美视频 | 国产视频精选在线 | 成人黄色av免费在线观看 | 国产一区二区久久久 | 国产无套精品久久久久久 | 国产香蕉97碰碰久久人人 | 五月天,com | 久久久久久高潮国产精品视 | 久热爱 | 亚洲最大在线视频 | 国产精品美女久久久久久久网站 | 91九色视频导航 | 国产免费久久久久 | 日本视频不卡 | 成人国产精品一区二区 | 国产淫a| 精品久久美女 | 久久久视频在线 | 久久综合九色综合久久久精品综合 | 日韩欧美视频在线观看免费 | 91精品国产麻豆国产自产影视 | 91精品视频免费看 | 91久久国产露脸精品国产闺蜜 | 亚洲五月 | 国产大陆亚洲精品国产 | 在线电影a | 久久久免费少妇 | 手机看片久久 | 午夜精品中文字幕 | 精品主播网红福利资源观看 | 日本久久中文 | 91久久人澡人人添人人爽欧美 | 精品国产一区二区三区在线观看 | 国产一级二级三级视频 | 激情电影影院 | 午夜精选视频 | 日本黄色免费看 | 欧美午夜精品久久久久 | 一区二区中文字幕在线观看 | 看片的网址| 亚洲精品在线免费 | 日韩精品一区二区三区中文字幕 | 夜夜澡人模人人添人人看 | 激情丁香综合 | 亚洲精品久久久久www | 亚洲人成免费网站 | 91丨九色丨蝌蚪丨对白 | 午夜少妇一区二区三区 | 成人精品久久 | 国产精品入口66mio女同 | 91大神精品视频 | 欧美久久久久 | 天天操天天操天天操天天操 | 国产精品永久免费 | 免费观看性生交 | 久久久久一区二区三区 | 国产又粗又长又硬免费视频 | 在线观看中文字幕av | 国产黄在线看 | 美女禁18| 国产精品女视频 | 国产视频在线观看一区 | 亚洲欧美综合精品久久成人 | 97色在线视频 | 色wwwww| 欧美日韩不卡在线视频 | 欧美成人黄色片 | 91日本在线播放 | 成年人免费电影在线观看 | 在线影院av| 亚洲精品一区中文字幕乱码 | 国产在线精品福利 | 日本精品一区二区三区在线观看 | 中文字幕 成人 | 高清视频一区 | 日韩国产在线观看 | 中文字幕av网站 | 狠狠狠操 | 91丨九色丨丝袜 | 91免费日韩 | 中文字幕丝袜制服 | 91热| 成人黄色在线观看视频 | 一区二区三区日韩精品 | 久久永久免费视频 | 日韩免费电影一区二区三区 | 69亚洲视频| 午夜精品剧场 | 天天射一射 | 日韩欧美国产免费播放 | 欧美日韩一区二区免费在线观看 | 精品国产观看 | 国产亚洲精品无 | 黄色精品网站 | 国产成人av福利 | 一区二三国产 | 最新国产在线 | 亚洲免费在线观看视频 | 91女子私密保健养生少妇 | 99久高清在线观看视频99精品热在线观看视频 | 久草在线视频免赞 | 久久中文精品视频 | 亚洲国产精品久久久 | 久草在线欧美 | 久久综合九色综合网站 | 久久久免费看视频 | 一区二区三区日韩在线观看 | 超碰日韩 | 又色又爽又黄 | 国产精品久久久久亚洲影视 | 热久久国产| 日韩簧片在线观看 | 91手机电视| 国产精品久久久久久一区二区三区 | 久久综合狠狠狠色97 | 91精品色 | 九九九九精品 | 九九一级片 | 日本天天操 | 天天色天天射综合网 | 色婷婷精品大在线视频 | 欧美a在线免费观看 | 99在线观看视频 | 国产精品永久免费 | 国产精品美女视频网站 | 91在线观看视频 | 成人av午夜 | 日日干,天天干 | 久草视频在线播放 | 国产字幕在线播放 | 欧美综合在线视频 | 国产最新视频在线观看 | 超碰成人免费电影 | 中文av影院| av三级av | 91男人影院 | 午夜国产福利在线观看 | 天天干人人| 操高跟美女 | 在线观看av麻豆 | 337p日本大胆噜噜噜噜 | 日本黄色免费播放 | 成人在线你懂得 | 91看片淫黄大片一级在线观看 | 91看片网址 | 黄色av三级在线 | 热久久这里只有精品 | 亚洲一区二区精品 | 婷婷久久综合网 | 五月婷婷六月丁香在线观看 | 欧美一二三区在线观看 | 国产中文在线视频 | 一区中文字幕电影 | 亚洲精品国产精品乱码在线观看 | 国产另类xxxxhd高清 | 久久一区二| 日韩成人免费在线观看 | 久久夜色精品国产欧美乱 | 韩日色视频 | 精品国产乱码一区二 | 久久久久久草 | 欧美精品xxx | 91麻豆传媒 | 久久国内免费视频 | 蜜臀av一区二区 | 狠狠综合网 | 国产精品婷婷 | 91成人网在线观看 | 天天天干天天天操 | 国产亚洲成人网 | 亚洲妇女av | 亚洲成人资源 | www.久草视频| 久久综合狠狠综合久久综合88 | 久久人人爽人人爽人人片av免费 | 国产在线一区观看 | 国产在线观看二区 | 成人在线观看网址 | 午夜三级在线 | 香蕉手机在线 | 国产精品成人一区二区 | 日韩成人高清在线 | 天天插天天狠 | 激情影音 | 成人小电影在线看 | 国产亚洲精品久久久久秋 | 国产精品欧美日韩在线观看 | 日韩午夜剧场 | 久久久久久久久久久高潮一区二区 | 人人插人人搞 | 免费又黄又爽的视频 | 欧美性生活小视频 | 久久网站av| 91亚瑟视频| 欧美在线aa | 国产精品视频免费看 | 国产精品久久久久久久久免费 | 99激情网 | 久久黄色片 | 在线观看视频你懂得 | 国产日韩精品一区二区在线观看播放 | 精品国产乱码久久久久久浪潮 | 99久久夜色精品国产亚洲 | 国产99久久久国产精品成人免费 | 成人一级影视 | 免费高清在线观看成人 | 99视频精品在线 | 91亚洲精品国偷拍自产在线观看 | 99精彩视频 | 国产精品一区二区你懂的 | 日本精品中文字幕在线观看 | 亚洲成人资源 | 好看的国产精品视频 | 在线视频 影院 | 在线视频日韩一区 | 99精品视频在线 | 97操操| 国产日韩精品一区二区三区在线 | 日韩高清免费观看 | 中文字幕韩在线第一页 | 99在线观看免费视频精品观看 | 人人狠 | 国产精品乱码久久久久久1区2区 | 国产成人一区二区精品非洲 | 日韩高清精品一区二区 | 在线播放国产一区二区三区 | 99精品视频观看 | 江苏妇搡bbbb搡bbbb | 免费日韩视 | 国产精品99久久久 | 99在线精品观看 | 激情五月伊人 | 中文字幕乱码电影 | 日韩中文字幕视频在线 | 国产精品欧美精品 | 国产黄色视 | 中文字幕 国产专区 | 丝袜av一区| 成人在线一区二区 | 亚洲 欧美日韩 国产 中文 | 黄色网址中文字幕 | 国产黄色高清 | 欧美三级免费 | 日韩成人一级大片 | 午夜精品久久久久久久爽 | 亚洲国产精品一区二区久久hs | 亚洲涩涩网 | 欧美在线你懂的 | 99久久影院 | 草久视频在线 | 日韩特级片 | 久久久精品 | 一区二精品 | 国产在线传媒 | 在线免费av电影 | 美女视频黄色免费 | 久久成人一区二区 | 不卡的av片 | 人人爱在线视频 | av动态图片| 国产很黄很色的视频 | 亚洲国产精品久久久久婷婷884 | 久久久精品影视 | 久热久草 | www看片网站 | 国内精品久久久久久中文字幕 | 欧美成人69av | 国产一区二区在线免费视频 | 玖玖视频免费在线 | 免费日韩 精品中文字幕视频在线 | 亚洲午夜小视频 | 久久国产香蕉视频 | 久久久久久久久久久久亚洲 | 日韩欧美在线综合网 | 亚洲欧美怡红院 | 欧美日韩免费一区二区 | 久久免费的精品国产v∧ | 日韩在线视频观看 | 午夜精品视频一区二区三区在线看 | 婷婷久久久 | 一区二区三区国 | 久草新在线 | 日韩成人av在线 | 91激情 | 精品国产免费观看 | www.69xx| 日韩a在线观看 | 97电影在线看视频 | 亚州精品国产 | 夜夜干夜夜 | 在线免费观看不卡av | 久久99久久99精品中文字幕 | 日韩精品一区电影 | 国产男女无遮挡猛进猛出在线观看 | 亚洲国产精品影院 | 国产精品麻豆视频 | 日本午夜在线观看 | 国产精品色 | 在线三级av | 激情欧美日韩一区二区 | 成人国产电影在线观看 | 操操综合| 九色福利视频 | 91久久丝袜国产露脸动漫 | 婷婷中文字幕 | 中文字幕观看av | 在线观看免费成人 | 午夜精品久久久久久久99热影院 | 夜夜操综合网 | 久久人人爽人人爽人人片av免费 | 亚洲精品乱码久久久久久蜜桃不爽 | 丝袜美腿亚洲综合 | 亚洲人精品午夜 | 久久综合精品一区 | 日日夜夜精品免费视频 | 久久99在线 | 国产一级二级在线观看 | 男女啪啪免费网站 | 一级黄色免费网站 | 首页中文字幕 | 99欧美 | 色狠狠操 | 一区二区不卡高清 | 亚洲精品视频网站在线观看 | 热久久视久久精品18亚洲精品 | 国产69精品久久久久99尤 | 久久视频在线观看免费 | 一区二区不卡高清 | 亚洲精品播放 | 亚洲精品一区二区三区高潮 | av片一区二区 | 99麻豆视频| 久久久婷| 国产精品v a免费视频 | 一级国产视频 | 久久久久网址 | 日韩免费中文字幕 | 超碰在线9| 日女人电影 | 亚洲在线视频观看 | 久久天天综合网 | 欧洲激情综合 | 中文字幕亚洲综合久久五月天色无吗'' | 成年人免费在线观看网站 | 亚洲精品www | 在线免费观看黄网站 | 欧美坐爱视频 | 香蕉视频亚洲 | 日韩av中文字幕在线免费观看 | 免费观看完整版无人区 | 免费看的黄网站 | 日本久久成人中文字幕电影 | 日本特黄一级 | 麻豆精品国产传媒 | 国产在线观看黄 | 精品国产伦一区二区三区观看说明 | 日韩欧美一区二区三区在线观看 | 色99色| 久草在线视频看看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 色中色亚洲| 91在线观看视频 | 亚洲黄色免费观看 | 国产精品久久久久久久久久三级 | 五月婷婷久 | 嫩草av影院 | 免费中文字幕 | av色综合| 久久在线精品视频 | 精品国产乱码久久久久久天美 | 13日本xxxxxⅹxxx20| 天堂av网在线 | 在线国产黄色 | 成人试看120秒 | 日韩国产欧美在线播放 | 天天干亚洲 | 色婷婷福利 | 中国一级片在线播放 | 一二区电影| 亚洲电影一级黄 | 久久久久久久看片 | 国模视频一区二区三区 | 亚洲视频 一区 | 97夜夜澡人人双人人人喊 | 色偷偷88欧美精品久久久 | av免费黄色 | 久久久黄视频 | 亚洲成av人片在线观看无 | 国产在线精品区 | 欧美狠狠操 | 久久男女视频 | 就色干综合 | 探花视频免费观看高清视频 | 五月婷香蕉久色在线看 | 国产美女久久久 | 久久久久久免费视频 | 亚洲精品伦理在线 | 麻豆视频网址 | 久久精品99久久久久久 | 国产中年夫妇高潮精品视频 | 色一级片| 午夜精品久久久久久久99水蜜桃 | 婷婷五月情 | 精品一区精品二区 | 国产成人三级 | 亚洲天天在线 | 91视视频在线直接观看在线看网页在线看 | 特级黄色视频毛片 | 偷拍精偷拍精品欧洲亚洲网站 | 菠萝菠萝蜜在线播放 | 欧美一级电影片 | 黄色大全在线观看 | 91成人免费在线视频 | 欧美日韩不卡在线 | a黄色影院 | 91网址在线看 | 久久久亚洲影院 | 精品久久精品 | 久久九九视频 | 美女网站在线 | 黄色三级免费 | 国产夫妻自拍av | 日本h在线播放 | 91精品在线观看视频 | 色综合久久久久综合 | 免费黄色特级片 | 亚洲精品福利视频 | 99久久久久久久久久 | 国产精品99久久久久久小说 | 97超碰中文字幕 | 欧美做受高潮 | 亚州国产精品久久久 | 五月激情丁香图片 | 69国产盗摄一区二区三区五区 | 成人9ⅰ免费影视网站 | 成人午夜电影免费在线观看 | 一区二区三区四区免费视频 | 亚洲 成人 一区 | 中文日韩在线视频 | 色综合久久88色综合天天免费 | 日本久久久久久久久 | 97热视频 | 久久精品久久久精品美女 | 欧美一区二区三区四区夜夜大片 | 男女拍拍免费视频 | 日韩最新理论电影 | 黄色精品国产 | 丰满少妇在线观看资源站 | 狠狠色狠狠色综合日日92 | 永久免费观看视频 | 色老板在线 | 亚洲 欧洲 国产 日本 综合 | 亚洲国产婷婷 | 成人一区不卡 | 久久精品专区 | av网站免费在线 | 91成品人影院 | 国产高清视频在线观看 | 开心色插 | 国产日产高清dvd碟片 | 亚洲国产欧美一区二区三区丁香婷 | 欧美精品一区在线发布 | 国产精品人成电影在线观看 | 天天摸夜夜添 | 黄色小说网站在线 | 日韩午夜大片 | 伊人天天 | 久久视频 | 久久国产热 | 国产成人免费在线观看 | 天天干天天操天天操 | 国产在线观看你懂的 | 国产专区视频在线观看 | 一区 二区电影免费在线观看 | 丝袜精品视频 | 视频在线在亚洲 | 久人人 | 亚洲精品日韩一区二区电影 | 九九久久精品视频 | 久久久亚洲电影 | 日本老少交 | 伊人伊成久久人综合网站 | 久久久激情网 | 色综合久久网 | 夜夜嗨av色一区二区不卡 | 激情文学综合丁香 | 免费h视频| 国产精品久久久久久久久久东京 | 亚洲精选视频免费看 | 五月婷婷色丁香 | 在线日本看片免费人成视久网 | 亚洲在线资源 | 美女视频国产 | 视频福利在线观看 | 欧美激情第28页 | 国产精品手机视频 | 免费观看黄 | 国产成人在线免费观看 | 亚洲黑丝少妇 | 成人免费一区二区三区在线观看 | 一级性视频| 中文字幕第| 亚洲成av人片一区二区梦乃 | 亚洲精品久久久久久久蜜桃 | 亚洲精品字幕 | 亚洲国产中文字幕在线 | 欧美 亚洲 另类 激情 另类 | 在线日韩视频 | 久久久亚洲影院 | 国产福利精品一区二区 | 免费看的黄色网 | 四虎最新入口 | 成人av电影免费在线观看 | 国产精选在线 | 不卡中文字幕在线 | 国产一区av在线 | 日本久久精品视频 | 99 色 | 国产成人99久久亚洲综合精品 | 亚洲综合激情小说 | 波多野结衣视频一区 | 看片网站黄色 | 激情开心色 | 国产精品久久久久av福利动漫 | 手机看片午夜 | 国产精品成人久久久 | 日韩高清在线不卡 | 欧美无极色| 99热在线国产 | 国产在线精品视频 | 国产精品久久久一区二区 | 久草视频在线免费 | 99热在线免费观看 | 国产精品手机在线 | 成人动态视频 | 欧美日韩在线视频观看 | 婷婷草| 97免费在线观看视频 | 成年人毛片在线观看 | 免费在线观看视频一区 | 美女精品国产 | 正在播放 国产精品 | 九九九电影免费看 | 色视频国产直接看 | 中文字幕影视 | 久久99久国产精品黄毛片入口 | 久久国色夜色精品国产 | 日韩视频一区二区 | 国产精品精品久久久久久 | 91精品国自产在线观看 | 天天干,天天草 | 国产精品三级视频 | 91丨九色丨国产在线观看 | 久久久久免费 | 粉嫩av一区二区三区入口 | 中文字幕在线免费看 | 久久精品www人人爽人人 | 99国产精品久久久久久久久久 | 欧美在线aa | a极黄色片 | 成人网页在线免费观看 | 欧美一级日韩免费不卡 | 国产一区在线观看视频 | 久草在线视频在线观看 | 国产韩国日本高清视频 | 一区二区视频电影在线观看 | 国产精品 日本 | 五月天欧美精品 | 丁香六月在线观看 | 成人av在线观| 色婷婷视频在线观看 | 婷婷丁香视频 | 日本乱码在线 | 国产精品igao视频网网址 | 午夜三级大片 | 国产成人黄色片 | 91.精品高清在线观看 | 九九亚洲视频 | 在线成人观看 | 中文字幕 婷婷 | 丁香婷婷电影 | 99在线视频网站 | 久草97| 日韩在线一级 | 尤物97国产精品久久精品国产 | 一级片视频在线 | 91久久久久久国产精品 | 粉嫩av一区二区三区入口 | 三级黄色在线 | 91看毛片 | 成人三级视频 | 操操操干干干 | 999久久a精品合区久久久 | 91成人在线网站 | 又黄又爽的免费高潮视频 | 日韩欧美精选 | 国产在线观看高清视频 | 99精品福利视频 | 欧美日韩国产精品爽爽 | 日韩欧美电影在线观看 | 综合久久久久 | 亚洲欧洲中文日韩久久av乱码 | 99精品国产在热久久 | 国产手机在线观看视频 | 毛片永久免费 | 国产精品一区二区果冻传媒 | 日韩在线网址 | 国产高清在线视频 | 国产精品久久久av | 成人四虎| 国产精品久久久久久五月尺 | 国产破处视频在线播放 | 在线免费视频你懂的 | 亚洲视频 视频在线 | 国产在线视频一区二区 | 88av网站 | 国产一区二区观看 | 91精品啪在线观看国产81旧版 | 亚洲精品午夜久久久久久久 | 97精品国产97久久久久久粉红 | 在线视频1卡二卡三卡 | www.国产在线 | 欧美日韩综合在线 | 一区二区精品在线观看 | 久久国产电影院 | 成人国产精品一区 | 成在线播放 | 狠色狠色综合久久 | 国产一区二区在线影院 | 国产精品每日更新 | 亚洲日本国产 | 激情综合网五月 | 亚洲日本在线一区 | 国产资源 | 毛片二区 |