C#录制视频

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#录制视频相关的知识,希望对你有一定的参考价值。

这是一个使用C#语言制作的录制框架,支持录制桌面,多屏,声音,摄像头,某个应用程序的界面

 

1.安装

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

或者使用Nuget命令

Install-Package Kogel.Record

安装完成包后会出现一个DLL文件夹,里面会有一些依赖的DLL

 选中全部后右击-属性,设置复制到输出目录-始终复制

C#录制视频

 

 

2.定义

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

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

C#录制视频

 

 还需要在App.config中设置兼容.NetFramework2.0

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

C#录制视频

 

 

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);

暂停录制

recorder.Pause();

结束录制

recorder.End();

 

第一次使用此框架VS可能会弹出警告

 选中“从以下位置引发时除外”和取消选中“引发此异常类型时中断”,此问题后续就不会再出现

 

 

4.Demo示例

 

 

 

此框架还支持录制桌面,多屏,声音,摄像头,某个程序的界面

框架开源,完整Demo可以去Github上下载:

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

技术群 710217654


以上是关于C#录制视频的主要内容,如果未能解决你的问题,请参考以下文章

C#录制视频

C#实现录制屏幕

iOS 录制视频MOV格式转MP4

C503怎么删除录制的视频文件?

使用 C# Accord .Net 从网络摄像头录制视频

视频谈话记录和直播系统的实现c# websocket + MediaRecorder + blob 实现服务器端高清录制