使用AForge录制视频

使用AForge录制视频,基于Winform开发

(一)首先导入AForge包

需要先导入

using AForge.Video;
using AForge.Video.FFMPEG;

两个工具包

完整AForge工具包和扩展包可以加群下载

(二)初始化需要属性参数

//初始化设置AForge所需的参数
            this.screenWidth = SystemInformation.VirtualScreen.Width;
            this.screenHight = SystemInformation.VirtualScreen.Height;
            this.frameRate = DEFAULT_FRAME_RATE;
            this.isRecording = false;
            this.framesCount = default(int);
            this.screenArea = Rectangle.Empty;
            this.videoWriter = new VideoFileWriter();
            this.folderBrowser = new FolderBrowserDialog();
            this.videoCodec = (VideoCodec)3;
            this.bitRate = 3000000;

  

(三)开始录制

               

//写入当前电脑上的所有屏幕(可能会有双屏或多屏)
                foreach (Screen screen in Screen.AllScreens)
                {
                    this.screenArea = Rectangle.Union(this.screenArea, screen.Bounds);
                }
                //打开写入流
                this.videoWriter.Open
                    (this.fileName, this.screenWidth, this.screenHight,
                    this.frameRate, this.videoCodec, this.bitRate);

 

               //初始化设置参数
                InitializeRecordingParameters(AppDomain.CurrentDomain.BaseDirectory + "aaa.avi");
                //开始录制
                this.videoStreamer = new ScreenCaptureStream(this.screenArea);
                //设置每帧图像录制的回调
                this.videoStreamer.NewFrame += new NewFrameEventHandler((object senders, NewFrameEventArgs es) =>
                {
                    this.framesCount++;
                    //写入到视频
                    this.videoWriter.WriteVideoFrame(es.Frame);
                });
                this.videoStreamer.Start();

  

(四)结束录制

               

//停止录像
                videoStreamer.Stop();
                //关闭写入器
                videoWriter.Close();

  

支持录制声音和暂停以及录制摄像头,需要的话可以加群讨论

完整Demo可以去Github上下载:

https://github.com/a935368322/Kogel.Record.Test

如有问题也可以加QQ群讨论:

技术群 710217654

原文地址:https://www.cnblogs.com/kogel/p/10843503.html