C#调用AForge实现摄像头录像的示例代码
发布时间 - 2026-01-11 03:20:59 点击率:次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"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup> <supportedRuntime version="v2.0.50727"/> </configuration>
不然会这样:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# 摄像头录像
# 调用摄像头录像
# C#调用usb摄像头的实现方法
# C# WPF使用AForge类库操作USB摄像头拍照并保存
# C#实现调用本机摄像头实例
# C#实现控制摄像头的类
# C#使用Aforge调用摄像头拍照的方法
# C#结合AForge实现摄像头录像
# C#开发可播放摄像头及任意格式视频的播放器
# c#基于opencv
# 开发摄像头播放程序
# C# 利用AForge实现摄像头信息采集
# C#调用USB摄像头的方法
# 回调
# 选了
# 官网
# 也会
# 在这个
# 将会
# 如果没有
# 写到
# 带了
# 这里面
# 视频文件
# 大家多多
# 清空
# 无法播放
# 比特率
# 全局变量
# VideoCapabilities
# 帧率
# Camera_NewFrame
# Height
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel怎么使用artisan命令缓存配置和视图
Windows Hello人脸识别突然无法使用
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
浅谈redis在项目中的应用
HTML 中如何正确使用模板变量为元素的 name 属性赋值
如何在景安服务器上快速搭建个人网站?
Laravel如何升级到最新版本?(升级指南和步骤)
JS实现鼠标移上去显示图片或微信二维码
微信小程序 scroll-view组件实现列表页实例代码
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
制作电商网页,电商供应链怎么做?
Java类加载基本过程详细介绍
北京专业网站制作设计师招聘,北京白云观官方网站?
香港服务器部署网站为何提示未备案?
做企业网站制作流程,企业网站制作基本流程有哪些?
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Python数据仓库与ETL构建实战_Airflow调度流程详解
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
公司门户网站制作流程,华为官网怎么做?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
EditPlus中的正则表达式 实战(2)
太平洋网站制作公司,网络用语太平洋是什么意思?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
用v-html解决Vue.js渲染中html标签不被解析的问题
图册素材网站设计制作软件,图册的导出方式有几种?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Python3.6正式版新特性预览
创业网站制作流程,创业网站可靠吗?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
大型企业网站制作流程,做网站需要注册公司吗?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何在搬瓦工VPS快速搭建网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
如何安全更换建站之星模板并保留数据?

