C#錄制視頻


這是一個使用C#語言制作的錄制框架(基於AForge),支持錄制桌面,多屏,聲音,攝像頭,某個應用程序的界面

 

1.安裝

使用此框架需要安裝擴展包Kogel.Record,可以Nuget上搜索

或者使用Nuget命令

Install-Package Kogel.Record

安裝完成包后會出現一個DLL文件夾,里面會有一些依賴的DLL

 選中全部后右擊-屬性,設置復制到輸出目錄-始終復制

 

 

2.定義

需要在應用程序的主入口點初始化下全局配置

//初始化DLL配置
Global.InitDllPath();

 

 還需要在App.config中設置兼容.NetFramework2.0

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    <supportedRuntime version="v2.0.50727"/>
  </startup>

 

 

3.錄制桌面

使用ScreenRecorder

首先創建桌面錄制類對象

//視頻存放路徑
string recorderPath = AppDomain.CurrentDomain.BaseDirectory + DateTime.Now.ToString("MMddHHmmss") + ".avi";
//初始化錄制器 (第一個參數是路徑,第二個參數是幀數,第三個參數是是否錄制聲音)
var recorder = new ScreenRecorder(recorderPath, 10, true);

還可以設置畫質(第四個參數)Raw為原畫畫質,建議不要使用(一分鍾幾個G),默認為MSMPEG4v2(高清,標清)

recorder = new ScreenRecorder(recorderPath, 10, true, AForge.Video.FFMPEG.VideoCodec.Raw);

開始錄制

//開始並設置每幀回調
recorder.Start(VideoStreamer_NewFrame);
/// <summary>
        /// 每幀錄制幀數回調
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventArgs"></param>
        private void VideoStreamer_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            //顯示圖片流
            this.picScreen.Image = (Bitmap)eventArgs.Frame.Clone();
        }

暫停錄制

recorder.Pause();

結束錄制

recorder.End();

 

第一次使用此框架VS可能會彈出警告

 選中“從以下位置引發時除外”和取消選中“引發此異常類型時中斷”,此問題后續就不會再出現

 

 

4.Demo示例

 

 

 

此框架還支持錄制桌面,多屏,聲音,攝像頭,某個程序的界面

框架開源,完整Demo可以去Github上下載:

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

如有問題也可以加QQ群討論:

技術群 710217654


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM