C#结合AForge实现摄像头录像
发布时间 - 2026-01-11 03:23:36 点击率:次输出为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#
# 调用AForge类库
# 基于AForge的C#摄像头视频录制
# C#调用usb摄像头的实现方法
# C# WPF使用AForge类库操作USB摄像头拍照并保存
# C#实现调用本机摄像头实例
# C#调用AForge实现摄像头录像的示例代码
# C#实现控制摄像头的类
# C#使用Aforge调用摄像头拍照的方法
# C#开发可播放摄像头及任意格式视频的播放器
# c#基于opencv
# 开发摄像头播放程序
# C# 利用AForge实现摄像头信息采集
# C#调用USB摄像头的方法
# 回调
# 选了
# 也会
# 在这个
# 将会
# 如果没有
# 写到
# 带了
# 这里面
# 视频文件
# 官网
# 清空
# 无法播放
# 比特率
# 全局变量
# Height
# VideoResolution
# VideoCapabilities
# Start
# VIDEO
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何为API编写文档_Laravel API文档生成与维护方法
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
昵图网官网入口 昵图网素材平台官方入口
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel如何创建自定义Artisan命令?(代码示例)
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
java中使用zxing批量生成二维码立牌
如何用花生壳三步快速搭建专属网站?
jquery插件bootstrapValidator表单验证详解
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
PHP 500报错的快速解决方法
如何用已有域名快速搭建网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
如何在 Pandas 中基于一列条件计算另一列的分组均值
如何正确选择百度移动适配建站域名?
JavaScript如何实现倒计时_时间函数如何精确控制
Swift中循环语句中的转移语句 break 和 continue
网站页面设计需要考虑到这些问题
网站优化排名时,需要考虑哪些问题呢?
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Android中AutoCompleteTextView自动提示
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
音乐网站服务器如何优化API响应速度?
深圳网站制作的公司有哪些,dido官方网站?
bing浏览器学术搜索入口_bing学术文献检索地址
linux top下的 minerd 木马清除方法
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
Laravel distinct去重查询_Laravel Eloquent去重方法
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
如何快速搭建高效服务器建站系统?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何用PHP工具快速搭建高效网站?
利用python获取某年中每个月的第一天和最后一天
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
浅谈Javascript中的Label语句
简单实现Android验证码

