目录介绍

  • C#录屏思路
  • 常用实现方法
  • OpencvSharp录屏介绍

C#录屏思路

录屏主要有摄像头录制,采集卡录制,桌面录制,麦克风录制,声卡录制等常用业务需求,主要开发思路
1.通过一定帧频截图采集
2.截图图片数据放入缓存
3.通过缓存图像数据压缩,编码后生成对应的视频文件
自行开发上面的流程复杂,可借助相关的组件来实现结果,如ffmpeg,opencv,及第三方公司组件
ScnLib,Oraycn.MCapture,SharpCapture

常用实现方法

  • 基于Accord(AForge)自行开发,思路就是以一定时间间隔捕获屏幕,再利用Accord实现高效的视频编码,压缩保存等;
  • 基于FFmpeg.AutoGen开发,可以看做是FFmpeg的C#版吧, Net Framework4.5以上兼容性不好啊,原作者貌似也没解决这个问题,总之就是没研究明白,还浪费了不少时间,先放弃了。
  • 基于OpencvSharp,原理与Accord类似,自己实现录屏的捕获桌面、编码等全过程,我一直用此类库,效率和速度还不错,Opencv值得信赖,推荐使用。
  • 基于ScnLib,这家公司开发的录屏SDK,有各种语言实现的版本,能试用(有水印),东西好是真的好,但是也真贵啊,本着程序员自给自足的精神,花钱买它真是羞耻。(土豪忽略)
  • 基本Oraycn.MCapture,这个也是家公司开发的录屏sdk,还有相关的压缩保存的组件及电子会议课堂用的白板,音视频录制,直播等SDK,经测试可以很方便使用来实现自已的业务。缺点就是贵,测试版没有水印,主要限制录屏和保存视频的时间。
  • 基于SharpCapture,SharpCapture是一款音视频数据采集类库。它完全采用C#语言开发,基于DirectShow技术实现摄像头帧画面采集、屏幕录制、声卡采集、麦克风采集、混音等诸多强大功能为一体,且不依赖任何其他第三方组件。通过调用它,您可以快速实现摄像头画面的采集,系统屏幕的录制,采集计算机声卡以及麦克风声音,并且可以对声卡的声音和麦克风的声音进行混音。可以应用到直播、录屏、电脑录音、远程教学、视频聊天等业务场景。
  • 基于FFmpeg.exe,c#程序后台调用这个进程,实现录屏,实际上就是借用FFmpeg.exe来实现录屏,这个方法简单,通过命令行一步实现录屏,解码,压缩功能。很方便快捷 ,推荐使用哦!

OpencvSharp录屏介绍

获取桌面屏幕图片
        private Bitmap GetScreenImgByteArray(){Bitmap bitmap = new Bitmap(_bounds.Width, _bounds.Height, PixelFormat.Format24bppRgb);using (Graphics graphics = Graphics.FromImage(bitmap)){graphics.CopyFromScreen(Point.Empty, Point.Empty, _bounds.Size, CopyPixelOperation.SourceCopy);return bitmap;}}

OpencvSharp主要方法介绍
_videoWriter=new VideoWriter(path, new FourCC(FourCC.XVID), _fps, new OcvSize(_bounds.Width, _bounds.Height));
path:参数1表示读取的视频帧所存放的新的文件
FourCC: 参数2指的是视频存放的编码格式,
fps: 参数3表示每秒的帧数
size:参数4表示图像的长宽大小

FoutCC格式

FoutCC.MP42; FoutCC.IYUV;
FoutCC.MJPG; FoutCC.M4S2;
FoutCC.lX264; FoutCC.MP43;
FoutCC.MP4S; FoutCC.MP4V;
FoutCC.MPG1; FoutCC.MPG2;
FoutCC.MPG4; FoutCC.MSS1;
FoutCC.MSS2; FoutCC.MSVC;
FoutCC.JPEG; FoutCC.PIM1;
FoutCC.WMV1; FoutCC.WMV2;
FoutCC.WMV3; FoutCC.IYUB;
FoutCC.IV50; FoutCC.IV41;
FoutCC.IV32; FoutCC.AVC;
FoutCC.CVID; FoutCC.DIB;
FoutCC.DIV3; FoutCC.DIVX;
FoutCC.DV25; FoutCC.DVC;
FoutCC.WVC1; FoutCC.DVH1;
FoutCC.DVSD; FoutCC.DVSL;
FoutCC.H261; FoutCC.H263;
FoutCC.H264; FoutCC.H265;
FoutCC.HEVC; FoutCC.I420;
FoutCC.DVHD; FoutCC.XVID;

OpencvSharp写入视频文件

Bitmap img=GetScreenImgByteArray();
using (Mat mat = BitmapConverter.ToMat(img))
{//转成Mat,using (InputArray input = InputArray.Create(mat)){lock (_videoWriteingLock){_videoWriter?.Write(input);}}
}

代码示例如下链接
https://download.csdn.net/download/qq_41230604/86504963?spm=1001.2014.3001.5501

c# 桌面录屏,生成视频方案总结相关推荐

  1. 20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕

    20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕 2022/11/25 19:07 01 obs.png obs studio (64bit) 02 obs 设置 ...

  2. recordit:实现电脑录屏生成GIF的轻量级软件!!!极力推荐!!!

    recordit:实现电脑录屏生成GIF的轻量级软件!!!极力推荐!!! 文章目录 recordit:实现电脑录屏生成GIF的轻量级软件!!!极力推荐!!! 一.软件下载 二.实现效果预览: 三.使用 ...

  3. 桌面录屏软件,分享3个十分便捷的录屏软件

    ​图片和视频都是人们传播信息的方式,不过相比于图片,视频能够更加直观生动的表达信息.在日常生活中,除了屏幕上记录一些应用程序的内容外,有时我们还需要记录电脑桌面.有更好的桌面录屏软件吗?当然,小编今天 ...

  4. js实现桌面录屏功能

    纯js实现桌面录屏功能 案例背景 最近在web项目开发过程中,遇到需要录制界面操作视频的需求.在一般情况下,我们一般通过视频录制软件完成桌面录屏功能.然而无意间发现W3C早已提供了API,web也可以 ...

  5. windows10桌面录屏软件哪个好

    windows10拥有更安全的电脑防护,Win10作为一款不断更新的系统,各方面都能够保持最新,并且在界面设计上更符合当今潮流,这也是目前年轻用户追捧的重要原因.那么windows10桌面录屏软件哪个 ...

  6. 如何做电脑游戏桌面录屏直播实现手机直接观看

    原创教程 ( 转载请注明出处 ) 2017-6-26,今天来做一下是电脑游戏桌面录屏直播的教程,就是把桌面的游戏直播出去,加上话筒做讲解.最终实现在电脑.手机.微信中都可以观看到游戏的直播和讲解画面. ...

  7. 笔记本电脑如何录屏 录制视频的方法

    随着当今社会的发展,经济的不断的上升,每个人使用起了笔记本电脑,那么笔记本电脑如何录屏?其实很简单,小编就在此方面分享一些我的经验,并且教大家如何录制视频. 使用工具: 电脑 迅捷屏幕录像工具 使用方 ...

  8. 国产免费高性能桌面录屏软件LiveView1.0正式发布

    即时桌面录屏软件LiveView1.0正式发布,官方下载地址:ifenlan.com.LiveView 是一款简单易用的桌面全屏录制软件,使用 H264 即时编码压缩成 MP4 文件,同时支持声音同步 ...

  9. 电脑录屏的视频保存在哪里?您可以这样查看

    案例:电脑录屏之后保存到哪里去了? "前几天,根据网络上的录屏教程试着录制了一下我的电脑屏幕,录制完成之后却找不到录制的视频.有没有小伙伴知道电脑录屏的视频保存在哪里?怎样才能快速找到?&q ...

  10. nvidia 桌面录屏

    好像nvidia的桌面录屏在后续版本中被禁止了,只能在支持的游戏中录屏,今天随便研究了下,在GeForce Experience 目录下比如我的是:C:\Program Files\NVIDIA Co ...

最新文章

  1. 使用 mysql workbench 建议
  2. 代码审核工具ReviewBoard在Windows下安装问题
  3. ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)
  4. java程序员招聘现场
  5. ML.NET Cookbook:(3)如何从CSV加载包含多个列的数据?
  6. Step By Step 搭建 MySql MHA 集群
  7. C#-WinForm-布局-Anchor-锁定布局、Dock-填充布局、工具箱中的容器
  8. cs客户端 实时权限_【CS学习笔记】7、SMBbean的作用
  9. Java 类图(UML)
  10. doc 问卷调查模板表_调查问卷模板.doc
  11. Python学习:Python分析中国人口(一)爬取数据
  12. 计算机存储器与寄存器的区别,存储器和寄存器的区别
  13. img文件的解压与压缩
  14. java中的面向对象(基础)
  15. 机器人阿郎_机械人阿郎
  16. Halcon深度学习目标检测例程学习经验(1)
  17. 3.2收缩-扩张喷管实例
  18. picker多选 vant_vant的Picker 选择器
  19. Android Handler机制(一) 为什么设计Handler
  20. iOS 边学边记 直播SRT、UDT协议详解

热门文章

  1. Android 中利用XPosed拦截系统消息
  2. 静态时序分析—串扰延迟分析(Crosstalk Delay Analysis)
  3. 世界上第一个便便数据库需要您的帮助!【智能快讯】
  4. [Android系统开发]Launcher Hotseat图标居中排列
  5. 基于SSM的汽车维修管理软件设计与实现
  6. 系统性简述蓝牙以及ESP32对BLE蓝牙的使用(一)
  7. 多线阵列激光三维扫描系统及多线阵列激光三维扫描方法
  8. UIView的frame与bounds
  9. python生成订单失败_尝试在Steam上创建购买订单时请求错误(400)
  10. 使用HVScrollListView 超简单的实现类似股票列表的滑动