aforge java_C#调用AForge实现摄像头录像的示例代码

本文介绍如何利用AForge库在Java或C#中实现摄像头录像功能。首先,下载包含ffmpeg的库文件,然后添加所需引用。设置摄像头参数和录像文件配置,并通过NewFrame事件回调将每一帧图像写入视频文件。最后,别忘了停止摄像头和关闭录像文件以确保文件完整。代码示例中详细展示了这一过程。
摘要由CSDN通过智能技术生成

1:首先下载库文件>>

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

0a1fd83742b4880853604bea6738b2eb.png

2:添加这些引用:

121558935ca20134aeaa03b6aa6b0675.png

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的一些东西:

68fffde1489ff8f2348353c54550e711.png

不然会这样:

85c28369314dfc3c23ad6a6d502c4826.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值