博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用AForge录制视频
阅读量:6798 次
发布时间:2019-06-26

本文共 1378 字,大约阅读时间需要 4 分钟。

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

(一)首先导入AForge包

需要先导入

using AForge.Video;

using AForge.Video.FFMPEG;

两个工具包

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

            //初始化设置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上下载:

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

技术群 710217654

转载于:https://www.cnblogs.com/kogel/p/10843503.html

你可能感兴趣的文章
C# Excel数据有效性
查看>>
java 调用微信截图工具
查看>>
【Hadoop】伪分布式环境搭建、验证
查看>>
李洪强经典面试案例33-如何面试 iOS 工程师
查看>>
[LeetCode] Sum of Left Leaves 左子叶之和
查看>>
【温故而知新-Javascript】使用 Window 对象
查看>>
Nginx location 匹配顺序整理
查看>>
javascript (function() { /* code */ })() 自执行函数
查看>>
MVC数据库数据分页显示
查看>>
CreatarGlobe实现多机立体显示方案(初稿)
查看>>
JAVA设计模式初探之桥接模式
查看>>
拉链表-增量更新方法一
查看>>
有什么样的博客手机客户端
查看>>
听10秒就会喜欢上的歌曲
查看>>
去掉发送到里的选项
查看>>
windows server 2008修改远程桌面连接数
查看>>
初探Object Pascal的类(二)
查看>>
成功站长应具备的良好心态
查看>>
mke2fs 制作ext2文件系统image
查看>>
模式识别之线条矩形识别---长方形画布或纸张并提取图像内容
查看>>