C#中如何使用AForge实现摄像头录像功能

发布时间:2020-10-24 15:02:30

来源:亿速云

阅读:105

作者:小新

这篇文章主要介绍C#中如何使用AForge实现摄像头录像功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1:首先下载库文件>>

也可以去官网寻找>>

下载本教程全代码>>

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

2:添加这些引用:

3:两个全局变量://用来操作摄像头

private VideoCaptureDevice Camera = null;

//用来把每一帧图像编码到视频文件

private VideoFileWriter VideoOutPut = new VideoFileWriter();

开始代码:

//获取摄像头列表

var devs = new FilterInfoCollection(FilterCategory.VideoInputDevice);

//实例化设备控制类(我选了第1个)

Camera = new VideoCaptureDevice(devs[0].MonikerString);

//配置录像参数(宽,高,帧率,比特率等参数)VideoCapabilities这个属性会返回摄像头支持哪些配置,从这里面选一个赋值接即可,我选了第1个

Camera.VideoResolution = Camera.VideoCapabilities[0];

//设置回调,aforge会不断从这个回调推出图像数据

Camera.NewFrame += Camera_NewFrame;

//打开摄像头

Camera.Start();

//打开录像文件(如果没有则创建,如果有也会清空),这里还有关于

VideoOutPut.Open("E:/VIDEO.MP4",

Camera.VideoResolution.FrameSize.Width,

Camera.VideoResolution.FrameSize.Height,

Camera.VideoResolution.AverageFrameRate,

VideoCodec.MPEG4,

Camera.VideoResolution.BitCount);

给AForge输出图像数据的回调方法:

//图像缓存

private Bitmap bmp = new Bitmap(1, 1);

//摄像头输出回调

private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs)

{

//写到文件

VideoOutPut.WriteVideoFrame(eventArgs.Frame);

lock (bmp)

{

//释放上一个缓存

bmp.Dispose();

//保存一份缓存

bmp = eventArgs.Frame.Clone() as Bitmap;

}

}

结束代码://停摄像头

Camera.Stop();

//关闭录像文件,如果忘了不关闭,将会得到一个损坏的文件,无法播放

VideoOutPut.Close();

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

<?xml version="1.0" encoding="utf-8"?>

不然会这样:

以上是C#中如何使用AForge实现摄像头录像功能的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

软件c#语言调用摄像头,C#中如何使用AForge实现摄像头录像功能相关推荐

  1. 软件c#语言调用摄像头,c#基于opencv,开发摄像头播放程序

    前言 Windows下实现摄像视频捕捉有多种实现方式:各种方式的优劣,本文不做对比.但是,opencv是一款老牌开发库,在图像处理领域声名显赫.采用opencv来处理摄像视频,在性能和稳定性上,是有保 ...

  2. 软件c#语言调用摄像头,C#调用摄像头的几种方式

    C#调用摄像头的方式 本文将讲诉在C#的winform程序中如何调用摄像头: 1.调用USB摄像头 2.调用普通IP摄像头 3.通过摄像头SDK进行调用 使用的DLL 首先给上我所使用的DLL 调用U ...

  3. linux中cv调用摄像头,ubuntu中opencv调用摄像头

    ubuntu中opencv调用摄像头 ubuntu中opencv调用摄像头 文章目录 一.Ubuntu中安装opencv 二.关于Linux如何开启摄像头 1.安装VMvareTools,这个是真的强 ...

  4. qt 判断路径非英文符号与非英文字符_Qt中,软件多语言国际化翻译的方法与步骤...

    总第23篇 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法和步骤,用以备忘和参考. 我们 ...

  5. Qt中,软件多语言国际化翻译的方法与步骤

    Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...

  6. python安装库后无法调用摄像头_Python中怎么调用摄像头

    Python中怎么调用摄像头 Python中调用摄像头可以使用opencv库来实现. OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Andro ...

  7. python调用电脑摄像头_Python中怎么调用摄像头

    Python中怎么调用摄像头 Python中调用摄像头可以使用opencv库来实现. OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Andro ...

  8. 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )

    文章目录 一.在 Visual Studio 2019 中创建 " 控制台应用 " 程序 二.拷贝 xxx.lib.xxx.dll.xxx.h 到源码路径 三.导入 xxx.h 头 ...

  9. 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写

     1  案例场景,通过C语言回调Java的代码,案例的最终界面: 2  案例的代码结构如下: 3 编写DataProvider的代码: package com.example.ndkcallbac ...

  10. c语言中调试时go的作用,C语言调用GO

    C语言调用GO 最近工作中遇到需要在c语言里面调用go语言的需求,总结了一下,下面代码里面的每一个注释都很有用,闲话不多说,直接上代码~ 示例 GO代码: package main // 这个文件一定 ...

最新文章

  1. .Net Framework中的委托与事件
  2. Java项目:网上商城系统(java+jsp+servlert+mysql+ajax)
  3. Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式
  4. 一些在NLP的面试中提问频率非常高的问题
  5. 【ArcGIS风暴】ArcGIS10.6获取栅格影像边界范围的三种方法案例详解
  6. 配置了坐标还是找不到serv_为什么老人家总是这疼那疼,还找不到原因?是矫情还是另有原因...
  7. 谈谈如何在面试中发掘程序猿的核心竞争力 什么是程序员的核心竞争力?
  8. JavaScript:变量提升作用域
  9. 阿里巴巴前架构师 360 度无死角剖析微服务
  10. 深度学习资料整理(深度神经网络理解)
  11. (超赞的Chrome翻译插件)沙拉查词-聚合词典划词翻译
  12. python打造微信聊天机器人_求问各位大佬,如何用Python写一款微信聊天机器人?...
  13. 如何在Word文档中制作三线表
  14. CRISC风险及信息系统监控认证
  15. CVPR引起巨大争议的新技术Face2Face:当科技先进到让人害怕
  16. Error response from daemon: conflict: unable to delete acdcfe83bcc5 (must be forced) - image is bein
  17. 微信小程序 MinUI 组件库系列之 label 标签组件
  18. 【无标题】SEO优化
  19. jy-12-SPRINGMYBATIS02——云笔记04-刘苍松
  20. CUDA学习之CUDA执行模型--part3

热门文章

  1. OpenGL ES 理解纹理与纹理过滤
  2. 第一天:英语四级听力训练
  3. 源码安装Zabbix5.0监控系统
  4. python爬取微信朋友圈
  5. plc顺序控制设计法是什么?
  6. 微信内置浏览器缓存清理 微信缓存清除 清除微信里的h5缓存
  7. EndNote X8参考文献样式下载与自定义
  8. (一)机器学习入门与经典算法之KNN算法(第一期)
  9. 构建您的第一个Web爬网程序,第3部分
  10. OLED屏幕的手机和LCD屏幕的手机,到底哪个好?