1.amcap视频音频捕获软件AMCap
2.纯sdk做界面
amcap视频音频捕获软件AMCap
AMCap,码解一款在视频应用工具领域应用广泛的码解软件,支持Directx9.0,码解可制作个人专属的码解easyrtmp 源码MTV等。其功能强大,码解支持多显示器、码解全屏、码解菜单标题栏的码解隐藏和VMR9等,操作便捷。码解AMCap具有窗口多开、码解镜像、码解rpc源码翻转、码解抓拍等功能,码解虽类似Microsoft VidCap,码解但基于Microsoft DirectX 9 SDK的码解AMCap开放代码制作发展,并加入了DirectShow的cnzz源码支持。安装这款小巧的视频捕获软件,即可支持Directx9.0,兼容大多数摄像头,捕捉动态视频图像、静态图像及电视调谐器等。花刺源码软件支持多显示器、全屏、菜单栏的隐藏和VMR9等功能。
在DirectX 9.0 SDK Update (February ) Extras(微软下载中心有程序压缩包)安装目录下,可以找到AMCap的lcx源码源代码。此外,在...\DirectShow\Samples\C++\DirectShow\Bin目录下,还能找到AMCap及其他支持DirectShow的可执行程序。
然而,AMCap在图像动态捕捉方面的效果不尽如人意,可能会出现图像轻微延迟的问题。
纯sdk做界面
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS wc;
MSG msg;//消息
HWND hWnd;//这个叫窗口句柄,类似于一个指针,指向一个窗口所在的内存区域
wc.cbClsExtra=0;//这些表示设置窗口后需要多分配的内存空间,一般写0
wc.cbWndExtra=0;//同上
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景颜色
wc.hCursor=LoadCursor(NULL,IDC_CROSS);//光标的样式,也就是鼠标指针的样式
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);//图标样式
wc.hInstance=hInstance;//实例句柄,跟上面的HINSTANCE hInstance一样
wc.lpfnWndProc=WndProc;//消息处理函数,跟上面声明的LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)函数一样,其中WndProc作为一个地址传递给窗口对象wc
wc.lpszClassName="test";//窗口名称
wc.lpszMenuName=NULL;//菜单
wc.style=CS_HREDRAW | CS_VREDRAW;//窗口样式
RegisterClass(&wc);//注册窗口类
hWnd=CreateWindow("test","hello",WS_SYSMENU,,,,,NULL,NULL,hInstance,NULL);
//上面的参数解释如下:"test"是窗口类的名称,一定要同wc.lpszClassName一样
//"hello"是窗口标题
//WS_SYSMENU窗口模式
//,,,前两个是窗口的初始位置,后两个是窗口的大小
//剩下的一般NULL,NULL,hInstance,NULL这样写
ShowWindow(hWnd,nCmdShow);//显示窗口
UpdateWindow(hWnd);//更新窗口
//下面是得到消息
while(GetMessage(&msg,NULL,0,0))
{
//下面是处理消息
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;//函数返回
}
//下面是消息处理,这个函数表示了程序对用户提交消息所作出的反应
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;//这个叫设备描述表,主要就是做有关屏幕图像、文字之类乱七八糟的事情
PAINTSTRUCT ps;
switch(message)
{
case WM_CREATE://窗口建立后执行的东东,我们暂时设置为什么也不执行
break;
case WM_PAINT://绘制窗口
hDC=BeginPaint(hWnd,&ps);
EndPaint(hWnd,&ps);
break;
case WM_CLOSE://程序结束
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,message,wParam,lParam);//其他消息返回默认处理方式
}