录屏

基于FFMpeg的C#录屏全攻略

扶醉桌前 提交于 2020-01-26 01:18:39
最近负责一个录屏的小项目,需要录制Windows窗口内容并压缩保存到指定文件夹,本想使用已有的录屏软件,但是本着学习的态度去探索了FFMpeg,本文主要介绍基于FFMpeg开源项目的C#录屏软件开发。 在Windows平台下开发录屏相比Linux比较复杂,Windows平台下录屏有gdigrab和dshow两种方法,由于gdigrab可修改属性受限,所以本文采用dshow方法实现录屏的功能,原理是注册录屏dshow滤镜(例如screen-capture-recorder),然后通过dshow获取录屏图像然后编码处理,其中gdigrab可以详见http://www.ffmpeg.org/ffmpeg-devices.html#gdigrab。 软件开发环境: Windows7 32位 Visual Studio2013 screen capture recorder(需要Java运行环境Java Runtime Environment) 1、软件安装完成后,可以在CMD命令行中检测软件安装是否正确,首先进入FFMpeg.exe的根目录文件夹,输入命令:ffmpeg -list_devices true -f dshow -i dummy 命令执行后检查输出的结果是否有[dshow @xxx] "screen-capture-recorder" ,如果有则“screen capture

用Python来做一个屏幕录制工具

谁说胖子不能爱 提交于 2020-01-18 13:58:33
一、写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位。以前都是用ScreenToGif来录屏制作成动态图,偶尔的机会看到python也能实现。那就赶紧学习下。 二、效果展示 三、知识串讲 这次要讲的东西可能比较多了,涉及到pyqt5 GUI软件的制作、QThread多线程的使用、Sikuli库的图形操作、win32库的模拟键盘操作、cv2库的写视频文件等。下面我们一点点来蚕食我这次写的代码。 1、GUI界面制作 这次我用的是现成的Pyqt5界面布局类,QVBoxLayout。这个类可以快速协助我完成按钮的垂直分布,而且按钮添加也更方便。 button1 = QPushButton("自定义录屏") layout.addWidget(button1) 两行代码就完成了按钮的命名和添加。我之前玩qt时,用的都是qt的UI界面,对应生成的组件代码也比较复杂。因此,在开发一些少量按钮、简单布局时可以用QVBoxLayout类。如果喜欢水平布局,可以用QHBoxLayout类,使用方法是一样的。 另外,在按钮点击关联的功能函数,即work()方法时,如果想带参数,可以通过lambda匿名函数来实现。这 也是个小技巧。 # 不带参数 button1.clicked.connect(self.work) # 带参数 button1.clicked.connect

ubuntu---录屏工具Kazam

允我心安 提交于 2020-01-16 15:33:48
ubuntu---录屏软件Kazam Ubuntu下一个很好用的录屏软件kazam,Ubuntu官方源中就有。 1、安装 sudo add-apt-repository ppa:kazam-team/stable-series sudo apt- get update sudo apt- get install kazam $ sudo apt-get install kazam 2、使用 使用很简单,除了截图,还可以录制屏幕视频。既可以全屏录制,也可以对某个窗口和区域进行录制。使用界面如下图。 *************************************************************************************************************************************************************** 第一块区域可以选择是录屏还是截屏 第二块选择录制的区域和方式,有全屏、多屏、窗口和自由选择。 多屏在多显示器才能使用,窗口和自由选择区域需要进行选择。 窗口方式是鼠标选择确认,enter和esc取消; 自由选择方式是鼠标选择和移动,enter确认,esc取消。 第三块区域进行录制的额外设置,包括是否录制鼠标、是否录制麦克风和外放,录制前的倒计时。 在点击录制后,会有一个倒计时

Unity录屏

烂漫一生 提交于 2020-01-11 02:35:39
一、准备工作 使用到的插件:ffmpeg 和 ScreenCapturerRecorder。 ffmpeg 录屏的核心,ScreenCapturerRecorder是对ffmpeg的扩充插件。 ffmpeg 放在工程的StreamingAssets中,如图: ScreenCapturerRecorder直接安装就行,装完桌面会有一个这样的图标: 弄好这两个东西基本就准备好了。 二、功能逻辑 调用ffmpeg的逻辑,是使用命令行的方式,具体可参考文章: https://blog.csdn.net/qq_21397217/article/details/80537263 // 参数:-b比特率 -r帧率 -s分辨率 文件路径 文件名 //private const string FFARGS_DSHOW = "-f dshow -i video=\"screen-capture-recorder\" -f dshow -i audio=\"virtual-audio-capturer\" -y -preset ultrafast -rtbufsize 3500k -b:v {0} -r {1} -s {2} \"{3}\"/{4}.mp4"; //+麦克风 private string FFARGS_DSHOW = "-f dshow -i video=\"screen-capture

FSCapture(录屏,截屏软件)

混江龙づ霸主 提交于 2019-12-15 22:43:19
FSCapture(录屏,截屏软件) FSCapture是一款功能强大且十分实用的抓屏软件,该款软件集成了图像捕捉、图像浏览以及图像编辑等功能为一体,帮助用户对截取的图形进行处理操作,该款软件的操作十分的简单,即使是新手用户也能够快速上手,该软件支持用户对截取的图片进行各种编辑设置,该软件不但拥有着常规的截图功能,而且还有着一个从扫描器获取图像的功能以及将图像转换为PDF文档等功能 来源: CSDN 作者: 人码合一 % 链接: https://blog.csdn.net/weixin_43799793/article/details/103554264

【python做个录屏软件】2.用PyQt5做个漂亮的GUI

耗尽温柔 提交于 2019-12-12 04:56:49
本篇内容包含: 1.PyQt5-手动书写GUI 2.无边框无标题栏界面 3.鼠标拖动 4.界面隐藏到桌面右边,靠近弹出。 1. GUI的模板 import sys from PyQt5 import QtCore, QtGui, QtWidgets class qt_window(QtWidgets.QWidget): def __init__(self): super().__init__() # 控件布局 # 绑定信号和槽 if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) ex = qt_window() ex.show() sys.exit(app.exec_()) 继承一个QWidget,然后就可以写自己的界面了。 1.1 添加控件,绑定信号和槽 class qt_window(QtWidgets.QWidget): def __init__(self): super().__init__() self.press_start = True # 控件布局 self.button_start_pause = QtWidgets.QPushButton(u"开始") self.button_stop = QtWidgets.QPushButton(u"结束") main_layout =

Andriod 录屏:AudioRecord、MediaProjection、MediaCodec、MediaMuxer

别说谁变了你拦得住时间么 提交于 2019-12-10 09:51:00
文章目录 背景 Android 音视频组件介绍 模块介绍 状态介绍 音频录制模块:AudioRecord + MediaCodec 视频录制模块:MediaProjection + MediaCodec 混合模块:MediaMuxer 流程图 问题 1. 时间戳同步问题 2. 暂停和恢复 3. 花屏问题或者启动奔溃问题 (1) 长宽限制 (2) 启动崩溃 (3) 切换场景会出现糊或者花屏 4. 纯视频时候,播放速度过快问题 5. 异常处理 6. MediaCodec数量限制、AudioRecord被占用 7. 绕过权限检测 8. 死锁问题 9. 录制系统声音 10. 利用SurfaceControl替换MediaProjection 11. 强制输出key帧 背景 Android 为开发者提供了MediaRecorder的类,可以帮助录屏。但是重要的缺陷: MediaRecorder控制粒度很粗,无法完成更多的自定义功能,如对音频数据处理 MediaRecorder录制的效果很差,特别是音频效果。 为了更好的效果,最终决定利用AudioRecord、MediaProjection、MediaCodec、MediaMuxer几个重要的组件进行录屏。 这几个组件都涉及到很多的音视频的知识,建议先看之前的音视频相关的文章介绍。 Android 音视频组件介绍 AudioRecord :

截取动图

蹲街弑〆低调 提交于 2019-12-06 16:14:11
此博客链接: 一、问题描述 怎样在电脑上截取动图,更好的展示效果 二、环境 window10 64位系统 三、截动态图步骤 前三个步骤是准备工作,如果你电脑按快捷健win+G有反应,请跳过前三步。 1.点击开始按钮,找到设置。 2.点击设置,向下滑动页面,找到游戏选项。 3.点击游戏,点击打开游戏,并勾选如图选框。 4.按下快捷键win+G ,你会看到出现一个录屏进度条,勾选“是的,这是一个游戏”。 5.你会看到一个多项工具条,单击黑点按钮,开始录屏。 6.录制视频时,你会发现录屏界面不见了,不要着急,录屏界面只是缩小了,跑到右上角,右上角会显示录制时间,当你录制完成时,点击右上角白框,视频就录制好了。 7.视频录制完成时,右下角通知栏会有提示录制的视频位置,按照路径找到视频存放位置。 8.点击通知栏,会出现下面页面,点击确定。 9.选择一个Xbox打开,我打开了第一个。 10.点击获取,进行一系列操作(注册,补充信息)。 11.完成一系列操作后,等待下载。 12.下载完成后,点击启动。 13.启动完成等待几秒,你可以选择在线名称或者自己创建一个。 14.个人创建账号失败。 15.这里使用时已有账号,在捕获里可以看到刚才录得视频。 16.选中你所需要得视频,然后打开文件夹。 17.找到所需视频。 18. Totaltime:75min 来源: https://www.cnblogs

linux终端录屏与播放:script和scriptreplay

人盡茶涼 提交于 2019-12-05 22:24:07
linux下script命令能够录制击键以及击键时机,并将输入和输出结果保存在对应的文件中;scriptreplay可以回放记录。这两个命令在绝大多数的GUN/Linux发型版上都可以找到,通过录制终端记录来制作命令行技巧视频,也可分享回话记录文件。另还可以调用其他解释器并录制发送给该解释器的击键。 srcript 说下常用的选项,更详细的说明可以man script来查看 选项 描述 -a, - -append 输出录制的文件,在现有内容上追加新的内容 -c, - -command 直接执行命令,而非是交互式的shell -r, - -return 返回子shell的退出码 -f, - -flush 每次操作后都立即刷新缓存。 如果不设置这个选项,则不会实时写入文件 -q, - -quiet 可以使script命令以静默模式运行,不显示script启动和exit的命令,用户可以完全察觉不到在录屏 -t, - -timing[=<file>] 输出录制的时间数据,输出到屏幕或者存到指定文件中,回放的时候用到 -V, - -version 显示版本并退出 -h, - -help 显示使用说明并退出 scriptreplay 选项 描述 -t, - -timing file 包含记录时序的文件 -s, - -typescript file 包含脚本终端输出的文件 -d,

linux下录屏和回放工具script和scriptreplay

Deadly 提交于 2019-12-03 16:39:00
  读书是一个长见识的过程,以前偶尔会用到录屏的工具,很少用想系统的学习一下。最近看了linux shell脚本攻略,发现很多新东西是以前自己没有接触到的。比如,这个非常好用的录屏工具:script,这次就好好熟悉一下了。免得后面忘记了。   script和scriptreplay命令在绝大多数linux发行版上都可以找到,把终端会话记录到一个文件中是非常有意思的事情。特别是对那些想在线教学或者远程定位问题的人来说,是一个必备的工具。看来,自身的linux熟悉程度还不够啊。 下面介绍用法: 开始录制终端:$ script -t 2> timing.log -a output.session commands .. .. exit script的两个文件。timing.log 用于存储时许信息,描述每一个命令何时运行。另一个文件(output.session)用于存储命令输出。 -t就是将时许信息导入stderr。2> 用于将stderr重定向到timming.log   有了这两个文件,就可以使用下面的命令执行回放过程了: $:scriptreplay timing.log output.session 下面笔者电脑的实际操作实例:    来源: https://www.cnblogs.com/dylancao/p/11800458.html