zoukankan      html  css  js  c++  java
  • 使用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

  • 相关阅读:
    软件测试的常阅博客
    使用Silverlight操作ASPNETDB数据库
    在Silverlight中实现跨域访问
    部署Silverlight应用时遇到的问题
    如何在WPF和Silverlight中取得DataTemplate中的命名元素
    [转] Silverlight Navigation(多页面切换、传值)
    如何让Button点击后不得focus
    VS2010无法连接到SQlServer2008 Database file
    常用的gulp插件
    Android通过http协议POST传输方式
  • 原文地址:https://www.cnblogs.com/kogel/p/10843503.html
Copyright © 2011-2022 走看看