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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

[转]视频捕捉全教程(vc+vfw)

發布時間:2024/3/26 c/c++ 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]视频捕捉全教程(vc+vfw) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目 錄

一. 視頻捕獲快速入門

二.基本的捕獲設置

??????????1.設置捕獲速度:

??????????2.設置終止捕獲

??????????3.捕獲的時間限制

三.關于捕獲窗口

????????? 1.創建一個AVICAP捕獲窗口

????????? 2.將一個捕獲窗口連接至捕獲設備

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

????????? 4.捕獲窗口的狀態

四.視頻捕獲驅動和音頻驅動

????????? 1.視頻捕獲驅動的性能:

??????????2.視頻對話框:

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

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

????? ????5.視頻捕獲設置

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

五.使用視頻捕獲

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

??????? 2.連接到捕獲驅動(CONNECTING TO A CAPTURE DRIVER)

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

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

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

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

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

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

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

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

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

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

??????? 13.捕獲數據(CAPTURING DATA)

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

????????15.在程序中加入一個回調函數(ADDING CALLBACK FUNCTIONS TO AN APPLICATION)

??????? 16.創建一個狀態回調函數(CREATING A STATUS CALLBACK FUNCTION)

????????17.創建一個錯誤回調函數( CREATING AN ERROR CALLBACK FUNCTION)

??????? 18.創建一個框架回調函數(CREATING A FRAME CALLBACK FUNCTION)

六.將四個標準對話框改成函數調用形式

???????? AUDIOFORMAT對話框

???????? VIDEOFORMAT對話框

???????? VIDEOSOURCE對話框

???????? VIDEO COMPRESSION對話框  

前 言

?????????視頻捕獲是指由專用的視頻采集卡捕獲聲頻和視頻信息,然后將其進行數據化處理,再經過軟件的壓縮進行處理,這時就可對這些數據進行保存、回放、傳輸等各種操作。

???????? Windows專門提供了Video for Windows來對視頻處理進行支持,提供的接口可以被大多數的視頻采集卡支持,并有多種視頻壓縮驅動供選擇(當然視頻壓縮可以自己開發),采集卡支持攝像頭,TV等多種輸入。


一. 視頻捕獲快速入門

????????? 視頻捕捉將一個視頻流和音頻流數字化, 然后存儲在硬盤或其他存儲介質上.

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

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);

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

hWndC = capCreateCaptureWindow ( "My Own Capture Window",

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

capDriverConnect (hWndC, 0);

capCaptureSequence (hWndC);


????????? 當你創建了一個AVICap類的捕捉窗口并將它連接到一個視頻驅動時, 此捕捉窗口即可以開始捕捉數據, 你的程序可以簡單的發送WM_CAP_SEQUENCE消息(或者使用capCaptureSequence宏)來開始捕捉.

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

用戶按下了ESC鍵或者一個鼠標鍵

你的應用程序終止或異常中斷捕捉操作

磁盤已滿


????????????? 在一個應用程序里, 你可以發送WM_CAP_STOP消息來終止捕捉數據(或者使用capCaptureStop宏), 你也可以發送WM_CAP_ABORT消息(或者使用capCaptureAbort宏)來終止.


二.基本的捕獲設置

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

例如:

1.設置捕獲速度:

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


2.設置終止捕獲

?????????? 你可以允許用戶按下某鍵或某組合鍵或者鼠標的左右鍵來終止一個捕獲任務, 如果是實時的捕獲, 則捕獲的文件將會被丟棄; 如果是單步捕獲, 在終止之前所捕獲的內容將會被保存.

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


3.捕獲的時間限制

?????????? CAPTUREPARAMS結構中的fLimitEnabled指示是否有時間限度, wTimeLimit指示最大的持續時間, 單位為秒.

????????? 得到fLimitEnabled和wTimeLimit的值可以發送WM_CAP_GET_SEQUENCE_SETUP消息(或使用capCatureGetSetup宏), 當設置了這些成員變量后, 應該發送消息WM_CAP_SET_SEQUENCE_SETUP消息(或capCaptureSetSetup宏)來更新CAPTUREPARAMS結構.


三.關于捕獲窗口

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

1.創建一個AVICap捕獲窗口

??????? 你可以使用capCreateCaptureWindow函數來創建一個AVICap捕獲窗口, 此函數將會返回一個句柄, 此句柄以后在發送消息時要用.

??????? 你可以在一個程序里創建一個或多個捕獲窗口, 然后給每一個窗口連接不同的捕獲設置.


2.將一個捕獲窗口連接至捕獲設備

?????????? 你可以動態的在一個捕獲窗口與一個捕獲設備之前連接或斷接, 你可以發送WM_CAP_DRIVER_CONNECT消息來使一個捕獲窗口與一個捕獲設備連接或關聯. 當連接上以后, 你就可以通過捕獲窗口向捕獲設備發送各種消息.

??????? 如果你的系統里裝有多個捕獲設備, 你可以在發送WM_CAP_DRIVER_CONNECT消息時用wParam參數指定使用哪一個, 此參數是登記在SYSTEM.INI文件的[drivers]一節里的列表中的某一項, 0為第一個.

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

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

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


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

?????????? 一些象WM_PALETTECHANGED和WM_QUERYNEWPALETTE的系統級消息只能發送到頂級窗口或OVERLAPPED窗口, 如果一個捕獲窗口是子窗口,就必須通過父窗口轉送.

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


4.捕獲窗口的狀態

????????? 你可以發送WM_CAP_GET_STATUS消息(或capGetStatus宏)來得到當前捕獲窗口的狀態, 得到的是一個CAPSTATUS結構的拷貝, 它包含圖片的尺寸, 卷軸的當前位置, overlay和preview是否已設置.

??????? 因為CAPSTATUS信息是動態的, 你的程序應該只要捕獲的視頻流的尺寸或格式可能發生了改變就應該進行刷新(例如: 顯示了捕獲設備的視頻格式以后).

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


四.視頻捕獲驅動和音頻驅動

1.視頻捕獲驅動的性能:

????????? 你可以通過發送WM_CAP_DRIVER_GET_CAPS消息(或者capDriverGetCaps宏)來得到當前連接的視頻驅動的硬件性能. 得到的信息保存在CAPDRIVERCAPS結構中.


2.視頻對話框:

????????? 每一個視頻驅動能夠提供四個對話框來控制視頻捕獲和數字化處理, 定義壓縮品質等, 這些對話框都定義在視頻捕獲驅動中.

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

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

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

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


3.Preview 和 Overlay模式:

???????????????? 一個視頻捕獲驅動對進入的視頻流有兩種工作模式: Preview模式和overlay模式, 如果一個捕獲驅動能夠執行兩種方法, 用戶可以在其中選擇一種.

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

有三種消息控制Preview操作:

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

WM_CAP_SET_PREVIEWRATE(capPreviewRate宏)當幀在preview模式顯示時設置速度.

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

????????? 當preview和scaling同時使用, 捕獲的視頻幀將會根據捕獲窗口的尺寸自動縮放, 允許preview模式會自動關閉overlay模式.

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

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


4.視頻格式

??????????? 你可以通過發送WM_CAP_GET_VIDEOFORMAT消息(或capGetVideoFormat和capGetVideoFormatSize宏)來得到視頻格式的結構或結構的尺寸. 你可以通過發送CAP_SET_VIDEOFORMAT消息(或capSetVideoFormat宏)來設置視頻格式.


5.視頻捕獲設置

?????????? CAPTUREPARMS結構包含了對視頻捕獲流的控制參數, 你可以完成以下這些任務:

指定幀數

指定分配多少視頻緩沖

允許或禁止聲頻捕獲

指定捕獲的時間間隔

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

指定終止流的鍵盤或鼠標

specify the type of video averaging applied during capture.


得到:WM_CAP_GET_SEQUENCE_SETUP消息(或capCaptureGetSetup宏)

設置:WM_CAP_SET_SEQUENCE_SETUP消息(或capCaptureSetSetup宏)


6.聲頻格式

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

???????????? 設置發送消息WM_CAP_SET_AUDIOFORMAT消息(或capSetAudioFormat宏),可以傳送WAVEFORMAT,WAVEFORMATEX,PCMWAVEFORMAT結構指針。

五.使用視頻捕獲

1.創建捕獲窗口(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.連接到捕獲驅動(Connecting to a Capture Driver)

?????????? 下面的例子是將MSVIDEO驅動連接到句柄為hWndC的捕獲窗口, 然后調用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.列舉所有已安裝的捕獲驅動(Enumerating Installed Capture Drivers)

?????????? 下面的例子使用capGetDriverDescription函數得到已安裝的捕獲驅動的名稱及版本:

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.得到捕獲驅動的性能(Obtaining the Capabilities of a Capture Driver)

????????????? 發送WM_CAP_DRIVER_GET_CAPS消息可以得到捕獲驅動的性能,并保存入一個CAPDRIVERCAPS結構.每當程序連接一個新的捕獲驅動到一個捕獲窗口時, 就應該更新CAPDRIVERCAPS結構. 下面的程序舉例說明了如何使用capDriverGetCaps宏來得到捕獲驅動的性能:


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.得到捕獲窗口的狀態(Obtaining the Status of a Capture Window)

???????????????? 下面的例子使用SetWindowPos函數使捕獲窗口與進來的視頻流尺寸保持一致, 視頻流的基本信息是使用capGetStatus宏得到的, 保存在CAPSTATUS結構中.


CAPSTATUS CapStatus;

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

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

CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);


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

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


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.得到和設置視頻格式(Obtaining and Setting the Video Format)

?????????????????? BITMAPINFO結構的長度既適應于標準的也適應于壓縮的數據格式, 所有程序必須總是詢問此結構的尺寸以便在得到當前的視頻格式之前分配內存. 下面的例子就是使用capGetVideoFormatSize宏來得到緩沖區尺寸并調用capGetVideoFormat宏來得到當前的視頻格式.


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消息)發送一個BITMAPINFO頭結構給捕獲窗口, 因為視頻格式是設備細節, 你的程序應該檢查返回值以便確定此格式是否已被接受.


8. 預覽視頻(Previewing Video)

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


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

capPreview(hWndC, TRUE); // starts preview

// Preview

capPreview(hWnd, FALSE); // disables preview


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

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


CAPDRIVERCAPS CapDrvCaps;

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


if (CapDrvCaps.fHasOverlay)

capOverlay(hWndC, TRUE);


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

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


char szCaptureFile[] = "MYCAP.AVI";

capFileSetCaptureFile( hWndC, szCaptureFile);

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


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

???????????? 下面的例子使用capSetAudioFormat來設置聲頻格式為: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.改變視頻捕獲設置(Changing a Video Capture Setting)

?????????????? 下面的例子使用capCaptureGetSetup和capCaptureSetSetup宏得將捕獲幀數從缺省的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.捕獲數據(Capturing Data)

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


char szNewName[] = "NEWFILE.AVI";

// Set up the capture operation.

capCaptureSequence(hWndC);

// Capture.

capFileSaveAs(hWndC, szNewName);


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

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


// 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.在程序中加入一個回調函數(Adding Callback Functions to an Application)

?????????????? 一個程序可以為捕獲窗口登記一個回調函數以便在以下的這些情況下通知程序.


狀態改變

錯誤發生

視頻框架和聲頻緩沖區變得可用

程序應用在捕獲視頻流的過程中接收


?????????? 下面的例子創建一個捕獲窗口并登記狀態,錯誤,視頻流和框架回調函數在消息處理對列中, 也包括了一個終止回調函數的說明.


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.創建一個狀態回調函數(Creating a Status Callback Function)

??????????? 下面的例子是創建一個簡單的狀態回調函數,登記此回調函數使用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.創建一個錯誤回調函數( Creating an Error Callback Function)

???????????? 下面的例子是創建一個簡單的錯誤回調函數,登記此回調函數使用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.創建一個框架回調函數(Creating a Frame Callback Function)

????????????? 登記此回調函數使用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

}


 

六.將四個標準對話框改成函數調用形式

????????????? 系統提供了四個標準的對話框:AudioFormat, VideoFormat, VideoSource, Video Compression,但有時程序希望通過函數控制它們,而不是使用系統提供的那個單一的對話框,此時就應該使用函數調用的方法:


AudioFormat對話框

??????????? 可以通過使用capSetAudioFormat來實現,此時要使用WAVEFORMATEX結構。

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

WAVEFORMATEX audioFormat;

// 確定寬度

acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT,&dwSize);

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

// 設置參數

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對話框

????????????????? 可以通過使用capSetVideoFormat來實現,此時要使用BITMAPINFOHEADER結構。

例如:設置圖片大小為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對話框

??????????????? 沒有找到現成的方法,但視頻捕獲卡提供的CD里面有一個動態鏈接庫可以實現。

Video Compression對話框

???????????? 可以通過使用ICOpen,ICInfo等函數聯合起來,得到當前系統里面的視頻壓縮驅動的列表,并可選擇其一,MSDN里面有一個程序示范了此用戶,程序名叫:ICWalk。

總結

以上是生活随笔為你收集整理的[转]视频捕捉全教程(vc+vfw)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

99精品久久久久久久久久综合 | 久爱精品在线 | 一级做a爱片性色毛片www | 国产小视频免费在线观看 | 婷婷.com| 久久精品—区二区三区 | 国产系列在线观看 | 91精品综合在线观看 | 国产精品观看视频 | 国产精品一区二区精品视频免费看 | www国产亚洲 | 欧美日韩高清一区二区 国产亚洲免费看 | 精品一区二区在线免费观看 | 91精品色| 久久精品成人欧美大片古装 | www黄免费| 精品一二三四在线 | 青青草国产精品视频 | 亚洲精品白浆高清久久久久久 | 国产97在线视频 | 亚洲精品永久免费视频 | freejavvideo日本免费 | 欧美二区视频 | 911精品视频 | 日韩免费电影网 | 91精品入口 | 国产一级淫片在线观看 | 日韩免费电影网站 | 午夜 久久 tv | 国产成人99av超碰超爽 | 久草国产精品 | 91精品久久久久久 | 日本精品一区二区在线观看 | 精品久久久99 | 亚洲一区二区视频在线播放 | 国产电影黄色av | 亚洲一区日韩在线 | 日韩www在线 | 超碰av免费 | 午夜电影久久 | 免费a级黄色毛片 | 久久久午夜视频 | 日韩在线 | 99热在线精品观看 | 色操插 | 久久涩视频 | 操操综合| 中文字幕韩在线第一页 | 成人在线视频在线观看 | 91麻豆看国产在线紧急地址 | 国产精品精品视频 | 国产日韩精品一区二区三区 | 久久专区 | 成人精品999 | 福利一区二区在线 | 亚洲女欲精品久久久久久久18 | 成人av久久 | 国产 在线 高清 精品 | 亚洲电影黄色 | 国产不卡一区二区视频 | 一区二区三区在线免费观看视频 | 久久久精品欧美一区二区免费 | 日韩免费视频在线观看 | 一级性视频 | 少妇按摩av| 香蕉在线观看 | 国产高清免费 | 精品1区2区| 日韩av影视在线观看 | 又黄又爽又无遮挡的视频 | www亚洲一区 | 制服丝袜欧美 | 黄色一级大片在线免费看国产一 | 免费黄色特级片 | 国产成人精品三级 | 少妇搡bbb | av中文字幕网站 | 国产首页| 亚洲香蕉视频 | 99久久日韩精品免费热麻豆美女 | 91超碰在线播放 | 青青河边草免费视频 | 中文字幕有码在线播放 | 日韩视频一区二区在线观看 | 久久96国产精品久久99漫画 | 中文字幕视频一区 | 99久久精品免费看国产 | 操操操com | a级片久久久 | 国产精品在线看 | 国产亚洲欧美一区 | 久久国产精品99国产精 | 麻豆视频免费播放 | 天天综合精品 | 亚洲视频www| 91在线免费公开视频 | 色天天久久 | 婷婷爱五月天 | 亚洲精品美女久久久久网站 | 国产一级免费电影 | 亚洲精品国产拍在线 | 欧美日韩一区二区三区不卡 | 亚洲欧美精品一区二区 | 久久字幕网 | 久久久免费在线观看 | 国产精品免费久久久久久 | 亚洲专区免费观看 | 国产精品中文在线 | avav99| 久久精品免费播放 | 69成人在线| 超碰激情在线 | 国产中文在线播放 | 国产精品美女久久久网av | 国产91大片 | 欧美成人一区二区 | 三级黄免费看 | 国产福利中文字幕 | 日韩成年视频 | 久久五月婷婷综合 | 亚洲欧洲视频 | 亚洲资源在线观看 | 在线日本看片免费人成视久网 | 夜夜夜夜夜夜操 | 一区二区伦理 | 狠狠激情中文字幕 | 碰超在线观看 | 国产短视频在线播放 | 999久久久免费精品国产 | 欧美日韩电影在线播放 | 一级免费片 | 国产精品24小时在线观看 | 91精品国产一区二区在线观看 | 超碰日韩 | 欧美视屏一区二区 | 久久av免费观看 | 色亚洲网 | 亚洲精品激情 | 成人午夜剧场在线观看 | 天天操人人干 | 日韩91在线 | 国产精品美女久久 | av在线播放国产 | 久久视频99| 婷婷av网 | 日韩高清精品免费观看 | 久久兔费看a级 | 精品国产视频一区 | 国产99在线免费 | 亚洲一级二级三级 | 亚洲精品国 | 超碰在线97国产 | 色停停五月天 | 天天干天天想 | 东方av免费在线观看 | www.91av在线 | 亚洲男男gaygayxxxgv | 成人一级视频在线观看 | 欧美精品亚洲精品日韩精品 | 中文字幕在线人 | 麻豆国产精品永久免费视频 | 国产高清视频免费 | 国产五月色婷婷六月丁香视频 | 亚洲国产精品第一区二区 | 中文字幕精品三区 | 国产夫妻av在线 | 一区二区三区免费在线观看视频 | 日韩乱码中文字幕 | 久久久蜜桃 | 草久在线视频 | 超碰在线观看99 | 国产96在线视频 | 国产高清视频在线免费观看 | 亚洲精品综合一区二区 | 国内精品中文字幕 | 国产视频在线观看一区 | 日韩 在线a| 日韩一区二区三免费高清在线观看 | av在线播放网址 | 2022中文字幕在线观看 | 韩国一区二区三区视频 | 99色视频 | 婷婷五月情 | 国产品久精国精产拍 | 欧美成人69av | 在线观看视频你懂 | 玖玖玖在线 | 免费成人av在线 | 日本黄色免费在线观看 | 成人免费在线观看电影 | 亚洲精品一区中文字幕乱码 | 日韩av一区二区三区 | 成年人电影免费在线观看 | 国产网站av | 久久九九国产视频 | 黄色一级免费网站 | 欧美 日韩 国产 成人 在线 | 日韩中文字幕亚洲一区二区va在线 | 亚洲综合网 | 在线观看91视频 | 超碰在线人人 | 国产欧美三级 | 日日夜夜操av | 五月婷婷在线视频观看 | 国产中文字幕在线看 | 国产麻豆视频网站 | 在线 国产 亚洲 欧美 | 国产亚洲精品久久久久久久久久久久 | 亚洲精品在线观看网站 | 91麻豆精品国产91久久久无限制版 | 在线观看免费视频你懂的 | 国产精品久久久久久久久久久久午夜 | 中文字幕乱码日本亚洲一区二区 | 中文字幕一区二区三区乱码不卡 | 超碰在线人人97 | 国产永久免费观看 | 久草在线视频首页 | 中文字幕免费在线 | 久久资源在线 | 国产亚洲亚洲 | 国产玖玖精品视频 | 久久久精品免费观看 | 一本色道久久精品 | 六月丁香激情综合色啪小说 | 99精彩视频在线观看免费 | 国产一区二区在线看 | 欧美日本三级 | 久久精品国产亚洲精品 | 深爱婷婷网 | 中文国产成人精品久久一 | 精品a级片 | 在线日韩亚洲 | 久久视频精品在线观看 | 国产精品久久久久国产精品日日 | 911av视频| 国产精品一区二区三区在线看 | 在线视频福利 | 国产字幕在线播放 | 免费h漫在线观看 | 狠狠色伊人亚洲综合网站野外 | 国产精品高清av | 亚洲人片在线观看 | 激情 一区二区 | 日韩国产精品久久 | 国产高清免费视频 | 成人午夜影院在线观看 | 亚洲男男gⅴgay双龙 | 亚洲国产精品一区二区尤物区 | 国产精品免费久久久久影院仙踪林 | 天天性天天草 | 国产成人精品一区二区 | 精品一区二区免费视频 | 免费观看av网站 | 丁香五月网久久综合 | 久久99在线观看 | 亚洲午夜不卡 | 日韩av电影中文字幕 | 天天操天天射天天爱 | 一级电影免费在线观看 | av导航福利 | 精品高清美女精品国产区 | 在线观看国产一区 | 91日韩在线播放 | 国产精品一码二码三码在线 | 亚洲韩国一区二区三区 | 久久久综合香蕉尹人综合网 | 久久国产电影 | 国产午夜精品一区二区三区在线观看 | 精品九九久久 | 色六月婷婷 | 欧美福利在线播放 | 日韩高清一 | free. 性欧美.com | 91色偷偷| 天天射夜夜爽 | 精品一区在线 | 91精品在线免费视频 | 成人小电影在线看 | 毛片网在线播放 | 色国产精品一区在线观看 | 人人干人人草 | 国产在线精品观看 | 黄色中文字幕在线 | 婷婷国产一区二区三区 | av电影中文字幕在线观看 | 国产精品高清免费在线观看 | 五月婷婷免费 | 成人精品国产免费网站 | 久久久久久久免费观看 | 久草干 | 国产精品久久久久久久久久久杏吧 | 日韩有码在线播放 | 成人综合婷婷国产精品久久免费 | 中文字幕在线免费观看 | 免费视频91| 亚洲精品字幕 | av免费在线网站 | 激情av在线播放 | 久久免费国产精品 | 国产99久久精品一区二区永久免费 | 欧美性色黄大片在线观看 | 天天综合天天做 | 在线免费观看黄 | av在线免费播放 | 婷婷色亚洲 | 在线视频观看亚洲 | 成人h动漫精品一区二 | 91大神免费视频 | 国产无遮挡又黄又爽馒头漫画 | 亚洲国产三级在线观看 | 日本在线观看一区二区三区 | 日韩高清一区 | 亚洲在线a| 青春草免费在线视频 | 综合久久久 | 成人va在线观看 | 在线免费性生活片 | 日韩高清三区 | 欧美一区成人 | 91免费高清 | 97免费中文视频在线观看 | 免费av片在线 | 成人国产精品电影 | 成人免费在线观看av | 四虎在线免费观看 | 日韩综合视频在线观看 | h视频日本| 中文字幕在线网址 | 91精品啪在线观看国产 | 亚洲天堂社区 | 久久艹影院 | 国产成人久久精品 | 亚洲精品综合久久 | 国产精品久久久久影院 | 欧美精品国产综合久久 | 国产 日韩 欧美 自拍 | 午夜精品av在线 | 久久成人视屏 | 毛片网在线观看 | 国产视频亚洲精品 | 亚洲撸撸 | 天天爽天天碰狠狠添 | 国产一区在线观看免费 | 欧美日韩国产精品久久 | 丁香婷婷激情网 | 99精品视频一区二区 | 日本久久综合网 | 免费看黄电影 | 97色狠狠| 成人免费av电影 | 天天操天天操天天操天天操天天操天天操 | 亚洲精品日韩一区二区电影 | 亚洲五月综合 | 日韩精品中文字幕在线不卡尤物 | 欧美激情综合五月色丁香 | 欧美激情第十页 | 国产一二区免费视频 | 欧美国产日韩在线观看 | a√天堂资源 | 二区三区av | 免费电影播放 | 欧美一级电影免费观看 | 国产资源 | 久久试看| 日韩美在线观看 | 在线视频手机国产 | 日韩精品影视 | 一区在线观看视频 | 日韩视频www| av电影免费| 久久久性 | 日韩免费视频在线观看 | 成人av中文字幕 | 三上悠亚一区二区在线观看 | 久久精品99国产精品亚洲最刺激 | 婷婷六月中文字幕 | 成人免费共享视频 | 色天天综合网 | 国产成人精品亚洲精品 | 亚洲精品美女久久久 | 日韩精品不卡在线观看 | 91亚洲永久精品 | 天天干天天操人体 | 中文字幕乱视频 | 91成年视频 | 在线观看久久久久久 | 色综合天天天天做夜夜夜夜做 | 久久资源在线 | 狠狠狠综合 | 国产1区2| 亚州精品天堂中文字幕 | 日韩成人免费在线 | 最新极品jizzhd欧美 | 中文字幕第一页av | 婷婷色九月| 天天插天天色 | av综合站 | 在线国产能看的 | 国产麻豆精品久久一二三 | 一区二区精品视频 | 免费福利视频网 | 天天操天天草 | 天天操夜夜操夜夜操 | 婷婷色综合色 | 丁香一区二区 | 日韩午夜电影 | 日本特黄一级片 | 久久精品国产精品亚洲 | 国产午夜精品一区二区三区四区 | 在线播放第一页 | 91传媒在线播放 | 青草视频在线播放 | www.久久色| 九九免费在线观看视频 | 少妇bbw揉bbb欧美 | 欧美一级片在线免费观看 | 24小时日本在线www免费的 | 国产伦精品一区二区三区四区视频 | 婷婷午夜天 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 亚洲精品在线观看网站 | 国产精品乱码久久久 | 黄色在线成人 | a级免费观看 | 色狠狠婷婷 | 欧美一二三四在线 | 91视频-88av | 久久久久久久亚洲精品 | www.超碰97.com| 日韩欧美一区二区三区视频 | 午夜精品一二区 | 人人干97 | 久草视频99 | 久久精品一区二区三区中文字幕 | 久久国产成人午夜av影院宅 | 福利视频导航网址 | 免费看一级特黄a大片 | 国产伦精品一区二区三区在线 | 国产精品99久久久久久宅男 | 最新av在线播放 | 最近日本mv字幕免费观看 | 国产电影一区二区三区四区 | 国产精品亚州 | 欧美视频xxx| 日韩一区二区三区不卡 | 中文字幕一区二区三区在线播放 | 国产69熟 | 韩国一区二区av | 欧美精品久久久久性色 | 日韩精品视频免费看 | 国产精品一区专区欧美日韩 | 五月婷婷中文网 | 亚洲精品综合一区二区 | 99国产精品免费网站 | 国产成人在线看 | 亚洲一区二区黄色 | 一二三区高清 | 日本精品视频一区二区 | 国产亚洲精品久久久久动 | 91精品国产一区 | 亚洲成人免费 | 一二区av| 91成人精品国产刺激国语对白 | 四虎国产精品免费 | 麻豆免费观看视频 | 久久久久亚洲最大xxxx | 国产精品久久艹 | 久草视频在线免费看 | 国产又粗又猛又色又黄网站 | 午夜视频二区 | 免费看av在线 | 国产 精品 资源 | 婷婷丁香花 | 五月天婷婷免费视频 | 国产一级免费在线观看 | 久久久久久久久久国产精品 | 久久国产精品久久国产精品 | 日韩精品视频一二三 | 日韩专区视频 | 国产精品理论片在线观看 | 在线视频91| 成人午夜电影在线播放 | 国产生活一级片 | 99视频在线精品国自产拍免费观看 | 免费看污的网站 | 国产精彩视频一区二区 | 日韩电影精品一区 | 久久伊人热 | 亚洲日韩欧美视频 | 中文字幕在线观看你懂的 | 亚洲国产精品一区二区久久,亚洲午夜 | 日韩中文字幕电影 | 日本xxxx.com| 超碰在线人人97 | 久久免费高清视频 | 成人午夜精品久久久久久久3d | 2022国产精品视频 | 91在线产啪 | 日韩av成人在线观看 | 夜夜骑天天操 | 国产香蕉视频 | 日韩在线观看的 | www.婷婷com| 国产视频一区二区在线 | 欧美成年人在线观看 | 99精品视频一区二区 | 久久久久久久久久网站 | 91麻豆网站 | 激情五月亚洲 | 国产九色91 | 久久男人免费视频 | 97成人在线 | 国产精品美女久久久久久久久 | 丝袜美腿在线播放 | 欧美精品v国产精品v日韩精品 | 中文字幕在线观看亚洲 | 国产黄色高清 | 国产精品视频在线看 | 亚洲国产精彩中文乱码av | 色综合久久五月天 | 亚洲国产伊人 | 天天射天天干 | 91国内在线视频 | 人人爽人人片 | 国产91丝袜在线播放动漫 | 精品视频专区 | 午夜性色| 中文区中文字幕免费看 | 亚洲区二区 | 99这里只有精品视频 | 丝袜美腿在线 | 在线亚洲午夜片av大片 | 一区二区三区四区五区在线 | 亚洲激情在线观看 | 正在播放国产91 | 欧美成人在线免费 | 国产一区二区精品久久91 | 国产日韩在线观看一区 | 久久久精品福利视频 | 夜色资源网 | 在线观看av大片 | 久久精品视频网址 | 久久久久久久久久福利 | 亚洲精品女 | 麻豆视频在线观看免费 | av看片在线 | 色资源二区在线视频 | 婷婷六月天综合 | 高清av影院 | 97超视频免费观看 | 久久看片网| 欧美性脚交| 成人av电影免费在线播放 | 欧美日韩高清一区二区 国产亚洲免费看 | 日日久视频 | 国产精品久久久久久一区二区三区 | 在线香蕉视频 | 五月婷婷在线观看 | 婷婷六月综合网 | 午夜在线国产 | 四虎成人精品永久免费av | 天天操天天干天天操天天干 | 91麻豆精品国产91久久久使用方法 | 国产中文字幕大全 | 久草免费色站 | 久久视频免费在线 | 成人国产电影在线观看 | 麻豆免费视频网站 | 免费观看一级成人毛片 | 婷婷精品在线视频 | 国产在线毛片 | 欧美日韩一级久久久久久免费看 | 91九色丨porny丨丰满6 | 国产国产人免费人成免费视频 | 亚洲激情校园春色 | av网站在线免费观看 | 丁香影院在线 | 人人玩人人添人人 | 日韩a在线看 | 一本一道久久a久久综合蜜桃 | 91九色在线视频 | 国产四虎在线 | 日韩视频免费在线 | av电影免费在线播放 | 国产不卡网站 | 久草在线视频看看 | 色婷婷综合久久久 | 91中文字幕视频 | 日韩欧美xxxx| 六月丁香激情综合色啪小说 | 中文字幕一区二区三区久久蜜桃 | 国产精品入口久久 | 99视频在线免费看 | 久艹在线观看视频 | 国产精品一区二区av麻豆 | 在线免费观看的av网站 | 欧美在线视频一区二区三区 | 国产午夜精品一区二区三区四区 | 色之综合网 | 婷婷六月天天 | 久久综合婷婷综合 | 国产精品久久久久久麻豆一区 | 欧美性粗大hdvideo | 午夜在线看片 | 午夜av色 | 一级黄色片在线观看 | 成人黄色在线电影 | 91看片在线 | 久久在线免费视频 | 亚洲永久字幕 | 亚洲精品女人 | 91在线资源 | 久草97| 欧美精品xxx| 开心婷婷色 | 日韩精品中文字幕在线 | 成年人三级网站 | 亚洲自拍自偷 | bbbb操bbbb| 久久高清免费视频 | av在线中文| 国产午夜三级一二三区 | 狠狠色丁香婷婷综合 | a天堂最新版中文在线地址 久久99久久精品国产 | 激情av在线播放 | 久草在线费播放视频 | 国产精品嫩草在线 | 亚洲国产美女久久久久 | 国产精彩视频一区二区 | 国产无遮挡又黄又爽在线观看 | 国产美女精品久久久 | 成人午夜精品福利免费 | 欧美日韩综合在线观看 | 日日射av| 久久高清精品 | 国产日韩高清在线 | 一区二区三区在线不卡 | 免费看一级黄色大全 | 免费观看全黄做爰大片国产 | 国产精品一区在线 | 国产一区二区三区视频在线 | 欧美不卡视频在线 | 亚洲精品高清视频在线观看 | 在线观看免费高清视频大全追剧 | 国产中文字幕在线免费观看 | 欧美一级视频在线观看 | 网站在线观看日韩 | 色午夜 | 天天色天天射天天操 | 99精品欧美一区二区蜜桃免费 | 中文字幕久久亚洲 | 黄色av网站在线观看 | 久久久久久久免费 | 国产免费午夜 | 欧美成人亚洲 | 免费三级网 | 91看片在线免费观看 | 最近2019好看的中文字幕免费 | 五月婷婷影视 | 日韩在线激情 | 久久免费高清视频 | 久草a在线 | 99精品国产在热久久 | 97福利在线观看 | 五月天婷婷在线播放 | 碰超在线观看 | 亚洲精区二区三区四区麻豆 | 国产99一区| 日韩电影一区二区在线 | 丁香激情综合 | 国产精品白浆视频 | 国产精品大片 | 国产尤物视频在线 | 91人人揉日日捏人人看 | 青青草国产成人99久久 | 日韩精品一区二区三区免费视频观看 | 黄色.com| 国内精品久久久久久久久久 | 97超碰色偷偷 | 亚洲国产精品传媒在线观看 | 91亚洲精品久久久蜜桃 | 亚洲日韩中文字幕在线播放 | 日日操日日插 | 中文字幕在线一区观看 | 综合久久久久久久 | 国产91精品一区二区麻豆网站 | 日本精品一区二区三区在线观看 | 女人高潮特级毛片 | 久久免费中文视频 | 久久精品综合 | 超碰97成人 | 国产一级精品视频 | 韩国av一区二区三区在线观看 | 国产无遮挡又黄又爽馒头漫画 | 亚洲精品视频免费看 | 久久免费影院 | 久久爱www. | 国产视频一区二区在线观看 | 中文字幕乱码电影 | 国产精品久久综合 | 亚洲美女在线国产 | 黄色网www | 国产精品99久久久精品免费观看 | 色综合国产 | 天天综合入口 | www..com毛片 | 国产精品毛片一区视频 | 亚洲精区二区三区四区麻豆 | 日韩欧美xxx | 国产精品国产三级国产专区53 | 国产亚洲精品中文字幕 | 久久久91精品国产一区二区三区 | 色婷婷亚洲 | 美女黄频在线观看 | 中国精品少妇 | 免费观看日韩av | 久久久久久久久久久免费 | 最近中文字幕完整高清 | 久久久国产精品视频 | 日韩欧美有码在线 | 久久国产精品99久久久久久老狼 | 99精品国产福利在线观看免费 | 中文一区在线 | www.天天色.com | 97超碰在线资源 | 亚洲精品乱码 | 女人魂免费观看 | 丁香五月亚洲综合在线 | www.99久久.com | 在线看一区二区 | 日韩精品一区二区久久 | 色综合久久88色综合天天 | 在线免费av观看 | 欧美日韩一区二区久久 | 国产视频精品网 | 久久精品99国产 | 中文字幕在线观看网站 | 中文字幕人成不卡一区 | 婷婷网在线 | 在线看国产日韩 | 久久亚洲福利视频 | 免费观看91视频 | 国产成人精品av在线观 | 婷婷六月中文字幕 | 四虎影视精品 | 免费看的黄色网 | 国产一区二区不卡视频 | 成人午夜网址 | 午夜视频欧美 | 国产在线资源 | 国产在线观看免 | 中文字幕久久精品一区 | 久久精品美女视频 | 日韩三级精品 | 九九热视频在线免费观看 | 久久久毛片 | 日韩网 | 中文字幕永久在线 | 久久99精品久久久久久久久久久久 | 亚洲最大av| 高清久久久久久 | 国产精品久久久久久久毛片 | 中文字幕人成人 | 亚洲人成网站精品片在线观看 | 欧美国产大片 | 成人免费视频网 | 91精品国产自产在线观看永久 | 国产一区二区三区午夜 | 日本中文字幕系列 | 欧美 亚洲 另类 激情 另类 | 欧美在线一级片 | 国产精品乱看 | 欧美激情综合五月 | 亚洲成人午夜在线 | 香蕉网在线播放 | 91九色最新地址 | 日韩高清毛片 | 夜夜操网 | 精品国产一区二区三区日日嗨 | 日本久久久影视 | 夜夜操狠狠操 | 国产伦理久久精品久久久久_ | 99久久精品免费看国产四区 | 久久99精品久久久久久清纯直播 | 久99久在线视频 | 男女激情免费网站 | 人人舔人人射 | 天天色视频 | 色综合天天色综合 | 成人精品一区二区三区电影免费 | 天天艹天天爽 | 波多野结衣在线中文字幕 | 麻豆免费精品视频 | 在线播放av网址 | 日韩精品欧美专区 | 超碰在线公开免费 | 久草在线最新 | 国产夫妻自拍av | www.色午夜.com | 五月婷婷久久丁香 | 99久久婷婷国产一区二区三区 | 国产精品嫩草影院99网站 | 久久人人爽人人爽人人片 | 四虎国产免费 | 成人在线视频免费看 | 99 视频 高清| 97视频免费在线看 | 伊人婷婷在线 | 久久综合成人网 | 中文字幕亚洲精品在线观看 | 午夜久久精品 | 免费视频黄色 | 五月婷婷丁香六月 | 久久久亚洲精华液 | 久久九九久久精品 | 久久久久久久久久久黄色 | 国产精品久久久久婷婷二区次 | 99视频偷窥在线精品国自产拍 | 久久久亚洲国产精品麻豆综合天堂 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 91视频91蝌蚪 | 成人av影视在线 | 字幕网av| 欧美性做爰猛烈叫床潮 | 欧美日韩国产精品一区二区 | 有码中文在线 | 久久专区| 97操碰 | 久久国产精品免费一区二区三区 | 国产中文字幕网 | 久久久久久久久久网站 | 久久另类小说 | 中文字幕观看av | 久爱综合 | 人人涩 | 婷婷精品国产一区二区三区日韩 | 成人av影院在线观看 | 国产精品久久伊人 | 亚洲理论在线 | 国产精品免费看久久久8精臀av | www91在线观看| 欧美一级视频一区 | 国产原创在线 | 婷婷丁香激情网 | 草久在线播放 | 草草草影院 | 日韩在线高清免费视频 | 综合精品久久 | 激情www| 成人免费91| 国产亚洲免费观看 | 欧美va天堂va视频va在线 | 国语精品免费视频 | 国产爽妇网 | 99视频导航| 在线播放精品一区二区三区 | 成人一级免费视频 | 亚洲成人频道 | 国产精品视频在线看 | 国产视频精品久久 | 国内精品久久天天躁人人爽 | 国产中文视频 | 国产精品欧美久久久久久 | 6080yy午夜一二三区久久 | 久久精品国产亚洲精品2020 | 国产最新精品视频 | 一色屋精品视频在线观看 | 色婷婷激情电影 | 亚洲国产av精品毛片鲁大师 | 一级成人在线 | 精品国产123 | 免费观看一区二区 | 在线播放亚洲激情 | 免费看一级特黄a大片 | 国产欧美精品xxxx另类 | 成人一区二区三区中文字幕 | 精品久久一区 | 国产精品久久久久久久久久不蜜月 | 精品二区视频 | 激情图片qvod | 久久久久久久久久国产精品 | 欧美精品在线观看免费 | 在线影视 一区 二区 三区 | 欧洲av不卡 | 日韩av在线看 | 99爱国产精品 | 久久综合一本 | 福利av影院| 成年人电影毛片 | 亚洲综合在线观看视频 | 午夜a区| 狠狠色丁香婷婷综合 | 99久高清在线观看视频99精品热在线观看视频 | 久草资源在线 | 国产精品久久99综合免费观看尤物 | 手机在线观看国产精品 | 久久精品视频国产 | 亚洲视屏在线播放 | 国产精品国产三级国产不产一地 | 插插插色综合 | 欧美另类成人 | 97成人精品视频在线观看 | 国产一级片直播 | 色av男人的天堂免费在线 | 久久国产亚洲精品 | 日韩天堂在线观看 | 91精品啪在线观看国产线免费 | 天天射网站 | 激情婷婷欧美 | 精品国产免费观看 | 成人在线免费视频观看 | 国产在线欧美在线 | 成全在线视频免费观看 | 公开超碰在线 | 美女很黄免费网站 | av网站在线观看免费 | 色综合久久久久综合99 | 色午夜影院 | 久久久美女 | 97国产精品亚洲精品 | 欧美另类视频 | 97视频在线观看播放 | 国产高清av免费在线观看 | 91影视成人 | 最近中文字幕在线中文高清版 | 久黄色| 综合久久一本 | 黄色成人小视频 | 最近中文字幕免费视频 | 91av视频 | 偷拍区另类综合在线 | 日本女人的性生活视频 | 久久久99精品免费观看app | 国产视| 五月激情姐姐 | av电影中文| 久久综合免费视频 | 欧美影片 | 国产激情电影综合在线看 | 国产一区二区在线免费视频 | 亚洲免费国产 | 91网在线观看 | 午夜美女视频 | 狠狠色丁香婷婷综合久小说久 | 成人久久18免费 | 婷婷综合视频 | 91麻豆精品国产91久久久无限制版 | 免费色av| 色视频网站免费观看 | 激情五月婷婷激情 | 国产亚洲成人网 | 一区二区三区四区五区在线视频 | 四虎永久网站 | 亚洲精品免费看 | 国产精品不卡av | 成年人黄色免费网站 | 高潮久久久 | 日韩欧美在线综合网 | 青草视频在线看 | 奇米影视8888在线观看大全免费 | 欧美日韩在线视频一区二区 | 69av在线播放 | 亚洲干视频在线观看 | 欧美激情综合五月色丁香 | 狠狠色丁香久久婷婷综合_中 | 99精品国产一区二区三区麻豆 | 亚洲精品午夜久久久 | 香蕉久草在线 | 国产青春久久久国产毛片 | 久久久久激情视频 | 国产亚洲精品久久久久久移动网络 | 日韩精品久久久 | 欧美老人xxxx18 | 99精品国产在热久久下载 | 伊人手机在线 | 国产伦精品一区二区三区四区视频 | 久久成人高清 | 欧美一区日韩精品 | 国产欧美日韩精品一区二区免费 | 在线看片一区 | 国产精品123 | 狠狠躁日日躁 | 激情电影在线观看 | 中文字幕丰满人伦在线 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产剧情av在线播放 | 国产小视频你懂的 | 欧美精彩视频在线观看 | 免费观看不卡av | a视频在线观看 | 91在线视频免费播放 | 97国产大学生情侣酒店的特点 | 中文字幕一区二区三区视频 | 日韩精品久久一区二区三区 | 狠狠色噜噜狠狠狠狠2022 | 免费在线观看av网站 | 国产亚洲精品成人av久久ww | 97视频人人免费看 |