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#运用AForge完成摄像头录相功用的案例的细致内容,更多请关注ki4网别的相干文章!