1:

首先下载库文件>>

也可以去官网寻找>>

下载本教程全代码>>

输出为MP4需要用到ffmpeg相关的文件,我打包的库已经带了,去官网找的库可以在这个目录找到:

2:

添加这些引用:

3:

两个全局变量:

1 //用来操作摄像头
2 private VideoCaptureDevice Camera = null;
3 //用来把每一帧图像编码到视频文件
4 private VideoFileWriter VideoOutPut = new VideoFileWriter();

开始代码:

 1 //获取摄像头列表
 2 var devs = new FilterInfoCollection(FilterCategory.VideoInputDevice);
 3
 4 //实例化设备控制类(我选了第1个)
 5 Camera = new VideoCaptureDevice(devs[0].MonikerString);
 6
 7 //配置录像参数(宽,高,帧率,比特率等参数)VideoCapabilities这个属性会返回摄像头支持哪些配置,从这里面选一个赋值接即可,我选了第1个
 8 Camera.VideoResolution = Camera.VideoCapabilities[0];
 9
10 //设置回调,aforge会不断从这个回调推出图像数据
11 Camera.NewFrame += Camera_NewFrame;
12
13 //打开摄像头
14 Camera.Start();
15
16 //打开录像文件(如果没有则创建,如果有也会清空),这里还有关于
17 VideoOutPut.Open("E:/VIDEO.MP4",     Camera.VideoResolution.FrameSize.Width,     Camera.VideoResolution.FrameSize.Height,     Camera.VideoResolution.AverageFrameRate,     VideoCodec.MPEG4,     Camera.VideoResolution.BitCount);

给AForge输出图像数据的回调方法:
 1 //图像缓存
 2 private Bitmap bmp = new Bitmap(1, 1);
 3
 4 //摄像头输出回调
 5 private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs)
 6 {
 7     //写到文件
 8     VideoOutPut.WriteVideoFrame(eventArgs.Frame);
 9     lock (bmp)
10     {
11         //释放上一个缓存
12         bmp.Dispose();
13         //保存一份缓存
14         bmp = eventArgs.Frame.Clone() as Bitmap;
15     }
16 }

结束代码:

            //停摄像头
            Camera.Stop();//关闭录像文件,如果忘了不关闭,将会得到一个损坏的文件,无法播放VideoOutPut.Close();

4:

修改App.config,兼容net2.0的一些东西:

<?xml version="1.0" encoding="utf-8"?>
<configuration><startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup><supportedRuntime version="v2.0.50727"/>
</configuration>

不然会这样:

转载于:https://www.cnblogs.com/DragonStart/p/7563351.html

C#调用AForge实现摄像头录像相关推荐

  1. aardio调用AForge操作摄像头并实现镜像旋转功能

    通过Aforge的免费开源库可以方便的实现摄像头的操作功能 , 然后利用gdi对图片的各种格式化, 就可以灵活的实现摄像头的各种骚操作. 得益于aardio对C#功能的大力改进, 现在可以非常方便的对 ...

  2. C# 利用Aforge调用本机摄像头完成拍照,录像

    用C#做了一个简单的摄像头录像项目,记录一下. 实现功能 打开.关闭摄像头并显示相应画面 实现拍照功能 实现录像功能 实现保存图片.录像的功能 运行界面效果 winForm控件 首先安装NuGet程序 ...

  3. Win10系统C++调用OpenCV实现网络摄像头录像和抓拍图片

    1 前言 前边文章介绍了在WIN10系统上,分别用C++和Python调用OpenCV接口,播放本地和网络摄像头视频.本篇我们来看一下,用C++如何调用OpenCV接口,打开网络摄像头的视频,对其进行 ...

  4. python3 + opencv 调用摄像头录像后保存视频

    python3 + opencv 调用摄像头录像后保存视频 #!/usr/bin/python3 import cv2## opening videocapture cap = cv2.VideoCa ...

  5. 【双目相机】python使用双目摄像头录像、调用摄像头、调用视频

    1.调用摄像头 #读取摄像头 import cv2 cap=cv2.VideoCapture(0) #cap=cv2.VideoCapture('output.avi') if not cap.isO ...

  6. vue调用电脑端摄像头实时拍照

    vue调用电脑端摄像头实时拍照 需求描述 功能实现 效果展示 需求描述 点击照相机拍照,弹出照相机拍照弹窗,点击拍照按钮,截取录像的帧,点击保存,提交数据给后台. 功能实现 1.html模块 //点击 ...

  7. 摄像头录像 及视频保存压缩

    c# 摄像头录像 及视频保存压缩等 收藏 using System; using System.Collections.Generic; using System.Linq; using System ...

  8. 多媒体编程——摄像头录像预览

    多媒体编程--摄像头录像预览 1. 新建MFC工程,选择对话框工程. 2.新建一个static控件. 3.修改ID,并且在OnInitDialog里面获取指针. 4.加一个成员函数,并且在OnInit ...

  9. yunyang tensorflow-yolov3 Intel Realsense D435 (并发)调用两个摄像头运行识别程序并画框

    只是一个测试,测试在并发运行下,同时开启两个摄像头获取视频流并调用识别函数的运行结果,以后在摄像头多的情况下,肯定不能这样,需要批量创建各种对象. 并发,指的是不在多线程的情况下,每个摄像头的视频流送 ...

  10. VMware虚拟机中调用本机摄像头详解

    本机环境: 虚拟机:VMware Workstation 16 Player 虚拟机内系统:Centos7(其它也ok的) 本机:win10(任何系统都ok) 调用本机摄像头: 首先wins+R输入s ...

最新文章

  1. vs 插件小番茄 visual assist x破解版 破解教程下载
  2. 重磅!上海交通大学取消博士论文发表要求!
  3. 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
  4. PHP 接口开发注意事项
  5. SQL数据库对象的修改
  6. linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...
  7. 计算机图形学基础教程论文,计算机图形学小论文
  8. 《2021多多阅读报告》发布,95后、00后图书消费潜力攀升,大学生群体拼单量同比增长387%...
  9. 简洁的c++http协议获取内容(一)
  10. three 查看版本号
  11. python问号堂--第二篇
  12. 2021年房地产经纪行业发展研究报告
  13. 同义词(近义词)算法总结(附代码)
  14. 删除windows桌面右键出现的无用的菜单项(RegClean工具下载使用自动清理)
  15. 如何使用SpanReporter接口生成链路数据
  16. 近年热门细胞研究话题颂通大盘点
  17. 永恒之蓝攻击处置方法
  18. IOS微信分享调起微信后立刻返回到app中无法分享的问题
  19. abp moveto mysql_abp 使用 hangfire结合mysql
  20. “咱们吃鸡吧”的背后

热门文章

  1. Could not start Tomcat
  2. Linux系统中使用Xbox360手柄
  3. WPS上配置使用Endnote软件
  4. 达索系统携百世慧科技亮相第二届四川装备智造国际博览会
  5. 文字转语音文件现成工具
  6. cocos creator之自定义事件
  7. 计算机无法同步,在win7中,为什么电脑时间不能同步?
  8. 交换机接出来的网线可以再接上无线路由器实现无线上网吗
  9. Python回归分析五部曲(二)—多重线性回归
  10. mro python_Python-MRO