当前位置:首页 » 操作系统 » 摄像头录像源码

摄像头录像源码

发布时间: 2023-05-19 18:15:33

1. android MediaRecorder调用摄像头为什么摄像出来都是横屏呢

recorder.setPreviewDisplay(surfaceHolder.getSurface()); 修改下这句试试。

2. 如何控制用Delphi摄像头

1、微方摄像头软件是一款可以监控使用的软件,可以后台使用,但是必须自己设置下;
2、可以通过编程的方式制作后台录像文件,但是颂明效果很好的源码不是很好找,需要尺差源码的话,可野困告以提供邮箱发给你,我只有delphi的。
3、另外木马软件也有这样的功能,但是必须手动控制,自动后台就不是你要的效果了。

3. C# 代码驱动摄像头

using System; using System.Runtime.InteropServices; using System.Drawing; using System.Drawing.Imaging; using System.Data.SqlTypes; namespace CamVision1 { /// 《summary》 /// 摄像显示区域数据结构设置 /// 《/summary》卖键 public struct CamStruct { public IntPtr handle; public int left; public int top; public int width; public int height; } /// 《summary》 //知配肢/ 摄像头驱动程序类搭世 /// 《/summary》 public class Cam { private const int WM_USER = 0x400; private const int WS_CHILD = 0x40000000; private const int WS_VISIBLE = 0x10000000; private const int WM_CAP_START = WM_USER; private const int WM_CAP_STOP = WM_CAP_START + 68; private const int WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10; private const int WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11; private const int WM_CAP_SAVEDIB = WM_CAP_START + 25; private const int WM_CAP_GRAB_FRAME = WM_CAP_START + 60; private const int WM_CAP_SEQUENCE = WM_CAP_START + 62; private const int WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20; private const int WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63; private const int WM_CAP_SET_OVERLAY = WM_CAP_START + 51; private const int WM_CAP_SET_PREVIEW = WM_CAP_START + 50; private const int WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6; private const int WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2; private const int WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3; private const int WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5; private const int WM_CAP_SET_SCALE = WM_CAP_START + 53; private const int WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52; public const int WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1; public const int WM_CAP_SET_CALLBACK_STATUS = WM_CAP_START + 3; public const int WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4; public const int WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7; public const int WM_CAP_GET_USER_DATA = WM_CAP_START + 8; public const int WM_CAP_SET_USER_DATA = WM_CAP_START + 9; public const int WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12; public const int WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13; public const int WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14; public const int WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20; public const int WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21; public const int WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22; public const int WM_CAP_FILE_SAVEAS = WM_CAP_START + 23; public const int WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24; public const int WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25; public const int WM_CAP_EDIT_COPY = WM_CAP_START + 30; public const int WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35; public const int WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36; public const int WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41; public const int WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42; public const int WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43; public const int WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44; public const int WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45; public const int WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46; public const int WM_CAP_GET_STATUS = WM_CAP_START + 54; public const int WM_CAP_SET_SCROLL = WM_CAP_START + 55; public const int WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61; public const int WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64; public const int WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65; public const int WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66; public const int WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67; public const int WM_CAP_ABORT = WM_CAP_START + 69; public const int WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70; public const int WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71; public const int WM_CAP_SINGLE_FRAME = WM_CAP_START + 72; public const int WM_CAP_PAL_OPEN = WM_CAP_START + 80; public const int WM_CAP_PAL_SAVE = WM_CAP_START + 81; public const int WM_CAP_PAL_PASTE = WM_CAP_START + 82; public const int WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83; public const int WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84; // Following added post VFW 1.1 public const int WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85; // Defines end of the message range public const int WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL; private IntPtr hWndC ; private bool bStat; private IntPtr mControlPtr; private int mWidth; private int mHeight; private int mLeft; private int mTop; [DllImport("avicap32.dll")] private static extern IntPtr capCreateCaptureWindowA(byte[] lpszWindowName, int dwStyle,int x,int y,int nWidth,int nHeight, IntPtr hWndParent , int nID); [DllImport("avicap32.dll")] private static extern int capGetVideoFormat(IntPtr hWnd, IntPtr psVideoFormat, int wSize); [DllImport("User32.dll")] private static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, long lParam); public bool capDlgVideoFormat() { return SendMessage(hWndC, WM_CAP_DLG_VIDEOFORMAT, 0, 0); } public bool capDlgVideoSource() { return SendMessage(hWndC, WM_CAP_DLG_VIDEOSOURCE, 0, 0); } public bool capDlgVideoDisplay() { return SendMessage(hWndC, WM_CAP_DLG_VIDEODISPLAY, 0, 0); } public bool capDlgVideoCompression() { return SendMessage(hWndC, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0); } /// 《summary》; /// 初始化摄像头 /// 《/summary》 /// 《param name="handle"》控件的句柄《/param》 /// 《param name="left"》开始显示的左边距《/param》 /// 《param name="top"》开始显示的上边距《/param》 /// 《param name="width"》要显示的宽度《/param》 /// 《param name="height"》要显示的长度《/param》 public Cam(CamStruct camStruct) { mControlPtr = camStruct.handle;; mWidth = camStruct.width; mHeight = camStruct.height; mLeft = camStruct.left; mTop = camStruct.top; } /// 《summary》 /// 开始显示图像 /// 《/summary》 public void Start() { if( bStat ) { return; } bStat = true; byte[] lpszName=new byte[99]; hWndC = capCreateCaptureWindowA(lpszName, WS_CHILD | WS_VISIBLE, mLeft, mTop, mWidth, mHeight, mControlPtr, 0); if (hWndC.ToInt32() != 0 ) { SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0); SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0); SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0); SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0); SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0); SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0); } return; } /// 《summary》 /// 停止显示 /// 《/summary》 public void Stop() { SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); bStat = false; } /// 《summary》 /// 抓图 /// 《/summary》 /// 《param name="path"》要保存bmp文件的路径《/param》 public void GrabImage(string path) { IntPtr hBmp= Marshal.StringToHGlobalAnsi(path); SendMessage(hWndC, WM_CAP_SAVEDIB, 0, hBmp.ToInt64()); } /// 《summary》 /// 录像 /// 《/summary》 /// 《param name="path"》要保存avi文件的路径《/param》 public void Kinescope(string path) { IntPtr hBmp = Marshal.StringToHGlobalAnsi(path); SendMessage(hWndC, WM_CAP_FILE_SET_CAPTURE_FILEA, 0, hBmp.ToInt64()); SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0); } /// 《summary》 /// 停止录像 /// 《/summary》 public void StopKinescope() { SendMessage(hWndC, WM_CAP_STOP, 0, 0); } } }

4. VB摄像头录像源代码(高分征求)

你在网络上搜 网络人 这个工具可以满足你的要求

5. 一套完整的视频直播聊天室源码怎么开发

视频直播聊天室源码怎么开发?首先,我们将其分为五部分:采集、编码,传输, 服务器处理,解码,渲染。

1、采集:采集就是我们平时“开摄像头录像”的部分,用户通过摄像头将视频传递到网络上,这里是比较简单的一部分,只是适配起来会比较麻烦,毕竟手机种类众多,但本身的技术要求和其他模块比起来还是简单很多的。

2、前处理:前处理阶段是视频直播聊天室源码在将视频传输到服务器之前要做好的处理工作,包括美颜算法、视频模糊、添加水印等,都在这一环节做成

3、编码:为什么要将视频进行编码呢?因为原音视频文件是很大的,会占用很大的带宽,只有在编码完成后,视频文件才会变得小一些,这样会更节省带宽。

难点在于:分辨率,帧率,码率,GOP等参数的平衡,视频直播聊天室源码如何使音视频文件又小又清晰,这是个问题

4、传输:将主播端文件传输给服务器

5、服务器处理:在服务器完成对文件的检测(包括鉴黄等)后,将文件通过CDN发送到观众的手机端。

6、解码和渲染:交给用户自己的手机吧。

这是一个视频直播聊天室源码的工作步骤,我们需要回避很多坑才能做好视频直播聊天室源码的开发,如有需要帮助的地方,可以追问我。

6. 使用c#编写摄像头程序,可以拍照,录像,保存到本地。求源码,可以直接运行的。

你没有释放资源。这个问题和我遇到的一模一样。在关闭摄像头的程序段中加上释放资源的语句。

7. 智能电视摄像头如何后台开启

智能岁嫌羡电视摄者岁像头后台开启可以通过编程的方式制作后台录像文件。
1、可以通乎拍过编程的方式制作后台录像文件,需要源码。
2、另外木马软件也有这样的功能,必须手动控制。

8. 我用C# winform做了个摄像头录像程序,但是录制下来的视频一分钟就很大,我想用视频压缩方法。

C#的我没有,我改过ultravnc的源码。。。哪个是一个视雀州悔频监控的开源项目,但是里面涉顷正及迹裤到视频压缩和解压,使用的是C++开发的,你可以参考下,解压和压缩的核心就是使用zlib库,这个库也是开源的,你也可以在C#中使用,抱歉没用过C#开发这个,只能帮到这啦~~~~楼下的给力点

9. VB摄像头硬件拍照功能实现

并不是你的问题没人会回答。而是你提问的毕腔地方不对,你这个属于硬件编程了,放到软件编程里当然没几个人会回答啦,下面是一个实例,直接点击桐老摄像头上的拍照按钮的。Private Sub Form_Load()
Dim lpszName As String * 100
Dim lpszVer As String * 100

'创建视频窗口
'读取驱动程序列表
capGetDriverDescriptionA 0, lpszName, 100, lpszVer, 100
'创建视频窗口程序
lwndC = capCreateCaptureWindowA(lpszName, WS_CAPTION Or WS_THICKFRAME Or WS_VISIBLE Or WS_CHILD, -5, -30, Pic.Width, Pic.Height, Pic.hwnd, 0)
'把捕捉窗口连接局数升到一个捕捉设备
If capDriverConnect(lwndC, 0) Then

' '来使预览模式的缩放有效或者无效
capPreviewScale lwndC, True

'发送给捕捉窗口来设置在预览模式下帧的显示频率
capPreviewRate lwndC, 66

'发送给捕捉窗口来使预览模式有效或者失效
capPreview lwndC, True
'调整窗体的在小及显示格式
SetWindowPos lwndC, HWND_BOTTOM, 0, 0, 430, 350, SWP_NOMOVE Or SWP_NOZORDER
End If
End Sub
模块内代码:
Public Const WS_BORDER = &H800000
Public Const WS_CAPTION = &HC00000
Public Const WS_SYSMENU = &H80000
Public Const WS_CHILD = &H40000000
Public Const WS_VISIBLE = &H10000000
Public Const WS_OVERLAPPED = &H0&
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_THICKFRAME = &H40000
Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = 1
Public Const SWP_NOZORDER = &H4
Public Const HWND_BOTTOM = 1
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SM_CYCAPTION = 4
Public Const SM_CXFRAME = 32
Public Const SM_CYFRAME = 33
Public Const WS_EX_TRANSPARENT = &H20&
Public Const GWL_STYLE = (-16)
'为窗体设置值
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function lStrCpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long
Declare Function lStrCpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As Any, ByVal lpString2 As Long, ByVal iMaxLength As Long) As Long
Declare Sub RtlMoveMemory Lib "kernel32" (ByVal hpvDest As Long, ByVal hpvSource As Long, ByVal cbCopy As Long)
Declare Sub hmemcpy Lib "kernel32" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

'这个函数为窗口指定个个新位置和状态。它也可改变窗口在内部窗口列表中的位置
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
'关闭窗体及子窗体
Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
'在结构中为指定的窗口设置信息
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Public lwndC As Long '窗体句柄

Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
Public Declare Function ReleaseCapture Lib "user32" () As Long
'**********************************'保存窗口最前
Public Const WM_USER = &H400 '偏移地址

Type POINTAPI
X As Long
Y As Long
End Type
'调用一个窗口的窗口函数,将一条消息发给那个窗口。直到消息被处理完毕,该函数才会返回
'hwnd(long)要接收消息的那个窗口的句柄、 wmsg(long)消息的标识符 、wparam(long)具体取决于消息 iparam(ANY)具体取决于消息
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Declare Function SendMessageS Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As String) As Long

Public Const WM_CAP_START = WM_USER '开始址

Public Const WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1 '

Public Const WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2 '在程序设定当发生错误时调用的回调函数
Public Const WM_CAP_SET_CALLBACK_STATUS = WM_CAP_START + 3 '在程序中设定当状态改变时调用的回调函数
Public Const WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4 '在程序中设定当程序让位时调用的回调函数
Public Const WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5 '在程序中设定当预览帧被捕捉时调用的加调函数
Public Const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6 '在程序中设定当一个新的视频缓冲区可以时调用的回调函数
Public Const WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7 '在程序中设定当一个新的音频缓冲区可以时调用的回调函数

Public Const WM_CAP_GET_USER_DATA = WM_CAP_START + 8 '把数据关联到一个捕捉窗口,可以获取一个长整型数据
Public Const WM_CAP_SET_USER_DATA = WM_CAP_START + 9 '把数据关联到一个捕捉窗口,'可以设置一个长整型数据

Public Const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10 '把捕捉窗口连接到一个捕捉设备
Public Const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11 ''用来断开捕捉驱动器和捕捉窗口之间的连接
Public Const WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12 '连接到'来得到已连接到某个捕捉窗口的捕捉设备驱动程序的名字
Public Const WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13 '得到驱动程序的版本号
Public Const WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14 '来得到捕捉窗口的硬件的性能。
'捕捉文件和缓存
Public Const WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20 '可以指定另一个路径和文件名。这个消息指定文件名,但不创建文件,也不打开文件或为文件申请空间
Public Const WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21 '来得到当前的捕捉文件
Public Const WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22 '为捕捉文件预分配空间,从而可以减少被漏掉的帧
Public Const WM_CAP_FILE_SAVEAS = WM_CAP_START + 23 '将捕捉文件保存为另一个用户指定的文件。这个消息不会改变捕捉文件的名字和内容,
'由于捕捉文件保留它最初的文件名,因此必须指定个新的文件的文件名来保存
Public Const WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24 '可以把信息块例如文本或者自定义数据插入avi文件。同样用这个消息也可以清除avi文件中的信息块
Public Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25 '把从帧缓存中复制出图像存为设备无关位图书馆(DIB),应用程序也可以使用这两个单帧捕捉消息来编辑帧序列,
'或者创建一个慢速摄影序列

Public Const WM_CAP_EDIT_COPY = WM_CAP_START + 30 '一旦捕捉到图像,把缓存中图像复制到剪贴板中

Public Const WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35 '设置音频格式。设置时传入一个WAVEFORMAT、WAVEFORMATEX、或PCMWAVEOFMAT结构的指针
Public Const WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36 '来得到音频数据的格式和该格式结构体的大小。默认的捕捉音频格式是mono、8-bit和11kHZ PCM

Public Const WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41 '对数字化后的视频帧的大小和图像深度,以及被捕捉视频的数据的压缩方式的选择
Public Const WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42 '视频对话框,用来枚举连接视频源的捕捉卡的信号种类,并且
'控制颜色、对比度、饱和度的改变,如果视频驱动程序支技,可以用这个对话框
Public Const WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43 '视频显示对话框控制视频捕捉过程中视频在显示器上的显示。对捕捉数据无影响,但会影响数了信号表达式

Public Const WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44 '给捕捉窗口来得到视频格式的结构和该结构的大小。
Public Const WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45 '用来设置视频格式
Public Const WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46 ' 视频压缩对话框

Public Const WM_CAP_SET_PREVIEW = WM_CAP_START + 50 '发送给捕捉窗口来使预览模式有效或者失效
Public Const WM_CAP_SET_OVERLAY = WM_CAP_START + 51 '使窗口处于叠加模式。使叠加模式有效也会自动地使预览模式失效
Public Const WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52 '发送给捕捉窗口来设置在预览模式下帧的显示频率
Public Const WM_CAP_SET_SCALE = WM_CAP_START + 53 '来使预览模式的缩放有效或者无效
Public Const WM_CAP_GET_STATUS = WM_CAP_START + 54 '得到捕捉窗口的当前状态
Public Const WM_CAP_SET_SCROLL = WM_CAP_START + 55 '如果是在预览模式或者叠加模式,还可以通过本消息发送给窗口,
'在窗口里的用户区域设置视频帧的滚动条的位置

'定义结束时响应信息
Public Const WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85

Public Const WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL

'// 导入avicap32.dll连接库下的两个函数
Declare Function capCreateCaptureWindowA Lib "avicap32.dll" ( _
ByVal lpszWindowName As String, _
ByVal dwStyle As Long, _
ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, _
ByVal hWndParent As Long, ByVal nID As Long) As Long
Declare Function capGetDriverDescriptionA Lib "avicap32.dll" ( _
ByVal wDriver As Integer, _
ByVal lpszName As String, _
ByVal cbName As Long, _
ByVal lpszVer As String, _
ByVal cbVer As Long) As Boolean

Function capDriverConnect(ByVal lwnd As Long, ByVal i As Integer) As Boolean
'把捕捉窗口连接到一个捕捉设备
capDriverConnect = SendMessage(lwnd, WM_CAP_DRIVER_CONNECT, i, 0)
End Function
Function capDriverDisconnect(ByVal lwnd As Long) As Boolean
''用来断开捕捉驱动器和捕捉窗口之间的连接
capDriverDisconnect = SendMessage(lwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0)
End Function
Function capDriverGetName(ByVal lwnd As Long, ByVal szName As Long, ByVal wSize As Integer) As Boolean
'获得驱动程序名字
capDriverGetName = SendMessage(lwnd, YOURCONSTANTMESSAGE, wSize, szName)
End Function
Function capDriverGetCaps(ByVal lwnd As Long, ByVal s As Long, ByVal wSize As Integer) As Boolean
'来得到捕捉窗口的硬件的性能
capDriverGetCaps = SendMessage(lwnd, WM_CAP_DRIVER_GET_CAPS, wSize, s)
End Function

Function capPreview(ByVal lwnd As Long, ByVal f As Boolean) As Boolean
'发送给捕捉窗口来使预览模式有效或者失效
capPreview = SendMessage(lwnd, WM_CAP_SET_PREVIEW, f, 0)
End Function
Function capPreviewRate(ByVal lwnd As Long, ByVal wMS As Integer) As Boolean
'发送给捕捉窗口来设置在预览模式下帧的显示频率
capPreviewRate = SendMessage(lwnd, WM_CAP_SET_PREVIEWRATE, wMS, 0)
End Function
Function capPreviewScale(ByVal lwnd As Long, ByVal f As Boolean) As Boolean
'来使预览模式的缩放有效或者无效
capPreviewScale = SendMessage(lwnd, WM_CAP_SET_SCALE, f, 0)
End Function虽然说摄像头的制作是有一定标准的,但是我们并不能保证所有的摄像头都会按照这个标准去做,特别是水货的冒牌的还有一些杂牌的。如果你的摄像头是名牌的话,那就没问题了。

10. luvcview 摄像头测试程序录制AVI视频问题

有大扮庆核侠研究过 嵌入式版本的luvcview 摄像头测试差塌程序修改源码AVI视频录制部分,任然无法录制AVI视频,在终端中显示如下:################################################[root@FORLINX6410]# lsluvcview[root@FORLINX6410]# ./luvcview -d /dev/video2 -f jpg -s 320x240luvcview version v0.1size width: 320 height: 240video /dev/video2^C[root@FORLINX6410]# lsluvcview################################################源码修改如下: videoIn-avifile = 1; if (videoIn-avifile ) { float fps=(videoIn-framecount/(videoIn-recordtime/1000)); fprintf(stderr,"setting fps to %fn",fps); AVI_set_video(videoIn-avifile, videoIn-width, videoIn-height, fps, "MJPG"厅掘); AVI_close(videoIn-avifile); }开发板:OK6410系统:linux3.0.1!!求指教!!!求指教!!!求指教!

热点内容
反编译class文件工具 发布:2025-04-23 12:32:56 浏览:456
邮件服务器一般用什么 发布:2025-04-23 12:32:15 浏览:581
简易R编程 发布:2025-04-23 12:32:12 浏览:141
http代理java 发布:2025-04-23 12:24:11 浏览:825
野外普通话ftp 发布:2025-04-23 12:22:35 浏览:453
饥荒安卓版的怎么进去 发布:2025-04-23 12:21:56 浏览:744
数据库开发入门 发布:2025-04-23 12:13:39 浏览:366
怎么在我的世界国际服中玩服务器 发布:2025-04-23 11:55:59 浏览:973
安卓sav存档怎么改成txt 发布:2025-04-23 11:55:26 浏览:866
密码修改在哪里改 发布:2025-04-23 11:46:48 浏览:787