C#调用AForge实现摄像头录像
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实现摄像头录像相关推荐
- aardio调用AForge操作摄像头并实现镜像旋转功能
通过Aforge的免费开源库可以方便的实现摄像头的操作功能 , 然后利用gdi对图片的各种格式化, 就可以灵活的实现摄像头的各种骚操作. 得益于aardio对C#功能的大力改进, 现在可以非常方便的对 ...
- C# 利用Aforge调用本机摄像头完成拍照,录像
用C#做了一个简单的摄像头录像项目,记录一下. 实现功能 打开.关闭摄像头并显示相应画面 实现拍照功能 实现录像功能 实现保存图片.录像的功能 运行界面效果 winForm控件 首先安装NuGet程序 ...
- Win10系统C++调用OpenCV实现网络摄像头录像和抓拍图片
1 前言 前边文章介绍了在WIN10系统上,分别用C++和Python调用OpenCV接口,播放本地和网络摄像头视频.本篇我们来看一下,用C++如何调用OpenCV接口,打开网络摄像头的视频,对其进行 ...
- python3 + opencv 调用摄像头录像后保存视频
python3 + opencv 调用摄像头录像后保存视频 #!/usr/bin/python3 import cv2## opening videocapture cap = cv2.VideoCa ...
- 【双目相机】python使用双目摄像头录像、调用摄像头、调用视频
1.调用摄像头 #读取摄像头 import cv2 cap=cv2.VideoCapture(0) #cap=cv2.VideoCapture('output.avi') if not cap.isO ...
- vue调用电脑端摄像头实时拍照
vue调用电脑端摄像头实时拍照 需求描述 功能实现 效果展示 需求描述 点击照相机拍照,弹出照相机拍照弹窗,点击拍照按钮,截取录像的帧,点击保存,提交数据给后台. 功能实现 1.html模块 //点击 ...
- 摄像头录像 及视频保存压缩
c# 摄像头录像 及视频保存压缩等 收藏 using System; using System.Collections.Generic; using System.Linq; using System ...
- 多媒体编程——摄像头录像预览
多媒体编程--摄像头录像预览 1. 新建MFC工程,选择对话框工程. 2.新建一个static控件. 3.修改ID,并且在OnInitDialog里面获取指针. 4.加一个成员函数,并且在OnInit ...
- yunyang tensorflow-yolov3 Intel Realsense D435 (并发)调用两个摄像头运行识别程序并画框
只是一个测试,测试在并发运行下,同时开启两个摄像头获取视频流并调用识别函数的运行结果,以后在摄像头多的情况下,肯定不能这样,需要批量创建各种对象. 并发,指的是不在多线程的情况下,每个摄像头的视频流送 ...
- VMware虚拟机中调用本机摄像头详解
本机环境: 虚拟机:VMware Workstation 16 Player 虚拟机内系统:Centos7(其它也ok的) 本机:win10(任何系统都ok) 调用本机摄像头: 首先wins+R输入s ...
最新文章
- vs 插件小番茄 visual assist x破解版 破解教程下载
- 重磅!上海交通大学取消博士论文发表要求!
- 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
- PHP 接口开发注意事项
- SQL数据库对象的修改
- linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...
- 计算机图形学基础教程论文,计算机图形学小论文
- 《2021多多阅读报告》发布,95后、00后图书消费潜力攀升,大学生群体拼单量同比增长387%...
- 简洁的c++http协议获取内容(一)
- three 查看版本号
- python问号堂--第二篇
- 2021年房地产经纪行业发展研究报告
- 同义词(近义词)算法总结(附代码)
- 删除windows桌面右键出现的无用的菜单项(RegClean工具下载使用自动清理)
- 如何使用SpanReporter接口生成链路数据
- 近年热门细胞研究话题颂通大盘点
- 永恒之蓝攻击处置方法
- IOS微信分享调起微信后立刻返回到app中无法分享的问题
- abp moveto mysql_abp 使用 hangfire结合mysql
- “咱们吃鸡吧”的背后