该程序允许您“记录”您的桌面,甚至流式传输!
它包括一些帮助程序“记录您的屏幕捕获/流式传输”和设置实用程序。它还包括一个帮助程序(虚拟音频捕获器),用于录制 vista+ 系统的“您在桌面上听到/看到的内容”。
为了使用它们,您需要首先在系统上安装 java JRE。如果尚未安装,请从 java.com 安装。
它还包括一个免费、通用、开源的 directshow 桌面/屏幕源捕获过滤器。
您可以将其与任何(directshow 兼容)程序一起使用来捕获或流式传输,例如 VLC 等。
另请参阅 ChangeLog.txt 文件以获取最新版本中的更改列表。
下载安装程序并运行,从
https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases
它还包括一个 directshow 源捕获过滤器设备,用于在 Windows 7/vista 中记录“您听到的内容”——任何声卡!有关该音频捕获设备的信息/故障排除,请参阅 https://github.com/rdp/virtual-audio-capture-grabber-device。
使用开始菜单 → 程序 → Screen Capture Recorder → 录制桌面[/broadcast/XXX]中提供的一些帮助程序
或者使用任何可以从 Directshow 捕获设备读取数据的第 3 方程序(例如:VLC/FFmpeg)。
VLC 示例:http://betterlogic.com/roger/2010/07/how-to-use-vlc-as-a-free-open-source-alternative-to-playon-tv
ffmpeg 示例:
$ ffplay -f dshow -i 视频=“屏幕捕获记录器”
或者
$ ffmpeg -f dshow -i video="screen-capture-recorder" -r 20 -t 10 screen-capture.mp4 # -t 10 录制 10 秒
或者将其与录制“你听到的”音频 [vista/windows 7] 结合起来(在本例中使用 ffmpeg):
$ ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" yo.mp4
另请注意,ffmpeg 有一个内置的“gdigrab”输入选项,您也可以使用它来代替屏幕捕获记录器。
音频设备名称也可以是任何其他 dshow 音频设备。
Avisynth 也可以使用它。使用 graphedit 将其添加到过滤器图表中,然后使用 DirectShowSource 作为输入源并指定 graphedit 文件名。
gstreamer 也可以工作,例如:
$ gst-launch.exe dshowvideosrc 设备名称=屏幕捕获记录器! ffmpeg颜色空间!直接拉水槽
我什至让 Skype 不小心使用了它,以为这是我的网络摄像头。如果您想要一种更简单的方法来完成任何事情,请告诉我。
默认情况下,它捕获主桌面显示器的“全屏”(所有窗口,从那里重叠,如果 vista + 则带有 aero,如果非 aero,则没有透明窗口)。
要进行不同的配置,请运行提供的“配置设置实用程序/快捷方式”或在开始运行之前调整注册表设置(仅限高级用户):
HKEY_CURRENT_USERSoftware屏幕捕获记录器
与 start_XXX 等相关的 DWORD 键...(请参阅包含的文件 {installdir}configuration_setup_utilitysetup_screen_tracker_params.rb 以获取可用注册表项值的完整列表,或参阅 https://github.com/rdp/screen-capture-recorder -to-video-windows-free/blob/master/configuration_setup_utility/setup_screen_tracker_params.rb#L9 )
例如:参见configuration_setup_utilityincoming.reg 文件(尽管注意这些值是十六进制的,因此编辑该文件有点乏味——我总是只使用regedit 或附带的脚本实用程序,而不是手动编辑它)。
要“重置”值,请删除其键。
或者
创建一个名为此的文件:%APPDATA%ScreenCaptureRecorder.ini
像这样的内容,全部都在“all_settings”部分下
your_first_setting=1 your_second_setting=100 …
默认情况下,它首先读取注册表,如果没有找到其中设置的内容,它将在 .ini 文件中查找。
运行“基准测试您的捕获速度”实用程序来查看您的系统捕获速度有多慢。
如果您使用的是 vista+,请关闭 aero 显示管理器(尤其是如果您有双显示器,这会有所帮助)。 http://www.howtogeek.com/howto/windows-vista/disable-aero-on-windows-vista
如果关闭 aero,捕获速度会更快(如使用 aero,捕获 650x976 窗口需要 50 毫秒,而没有 aero,则需要 3 毫秒。
单个屏幕截图的其余部分大约需要 7 毫秒(没有 Aero 的情况下总计 10 毫秒),因此您可以看到它增加的相对成本 [!]。
还有一个注册表设置可以“自动”关闭它。
我在捕捉空气动力学时只能获得最大 15 fps [如果你想让我考虑改进这一点,请告诉我,我有一些想法......]。
禁用或启用桌面的“硬件加速”也可能有所帮助,或者将其设置为一级以上
尝试从 32 位输入切换到 24 位或 16 位输入(从此),和/或切换桌面深度本身 - 或两者兼而有之!最快的是 16 位显示,并以 16 位模式捕获 - 400 fps 哇!)。
确保您有足够的可用 RAM(众所周知,virtualbox 会在不通知您的情况下占用一些 RAM)。如果可能的话还要禁用航空。
请注意,如果您的输出最终“实际使用”为 10 fps,例如: $ ffmpeg -f dshow -i video=video-capture-recorder -r 10 yo.mp4 -r 10 # 输出文件只有 10 fps
然后为了节省CPU,一个“好的”应用程序还将指示“源fps”为10 fps $ ffmpeg -framerate 10 -f dshow -i video=video-capture-recorder -r 10 yo.mp4 # 输入和输出是设置为 10
有关为什么此处使用“framerate”而不是“-r”的解释,请参阅 https://trac.ffmpeg.org/wiki/DirectShow#Specifyinginputframerate
他们传递到这个过滤器,每个人都在 10 fps 中并且希望很高兴,并且 cpu 得到了节省。 ex: vlc.exe dshow:// … :dshow-fps=10 vlc 然后在协商后将其传递给 SetFormat,设备接受它,并以 10 fps 的速度为您提供数据。
一些“糟糕的”directshow 应用程序不会传入此参数。大多数都可以。因此,可能存在某种情况,通过捕获太多或类似的情况,以某种方式浪费CPU。因此,对于这些程序,您需要设置最大 fps 参数,这将限制其捕获频率。
将最大 fps 设置为大于 30 也可以让您获得大于 30 的 fps(默认最大值)。它通过给予其更高的最大默认值来“启用”它们。我认为人们通常不会关心/想要它们,所以你就有了。
请注意,要将其用作输入摄像头 Skype,您需要指定它是一个相当小的捕获,请参阅http://betterlogic.com/roger/2012/04/skype-directshow-device-just-shows-circles-用于预览捕获/
已知限制,请尝试此线程:https://groups.google.com/forum/#!topic/roger-projects/uxmGV_vW4iY [或者付给我一点钱,我将创建一个优秀的 OBS 项目的前端提供此功能]
其他反馈/问题/问题请联系我 [email protected] 或浏览邮件列表:http://groups.google.com/group/roger-projects 或提交到我们的 uservoice:http://rdp.uservoice。 com
您可以重新分发此内容。请参阅文件 LICENSE.TXT。如果这样做,您可能只需要分发文件 PushDesktop.dll 如果您这样做,则必须通过注册其 dll(例如 $ regsvr32 PushDesktop.dll - 可能需要管理员权限)来注册此设备作为您的文件的一部分安装。另请注意,最终用户还需要先前安装的 MSVC 2010 可再发行组件(或者您必须将其放在与 exe 相同的目录中)才能使 dll 工作/安装,以防最终用户未安装它。如果您更改它并重新分发它,您可能需要更改 GUID,这样如果有人也安装了该软件,就不会发生冲突。另请参阅#17
该代码轻轻地基于/借鉴(“灵感来自”)Windows 7.1 SDK ….Microsoft SDKsWindowsv7.1Samplesmultimediadirectshowfilterspushsource 以及其他一些 dshow 演示围绕“网络”(tmhare 虚拟捕获)。因此,在处理源代码之前,您可能需要安装 Windows SDK。要破解代码,请构建 Windows SDK directshow 基类,然后在 Visual Studio 2010 Express 中打开 source_code/*.vcxproj。这是为了提供一个可以在图表中使用的“directshow 过滤器”,而不是如何制作图表的演示。它输出一个 .dll 文件,您可以通过(在管理员控制台中)$ regsvr32 XXX.dll“注册”(并在使用 regsvr32 /u XXX.dll 完成后注销),还有一些脚本用于设置注册表值(写为目前在 ruby/jruby 中用于 GUI),但您不必调整它们来干扰过滤器本身。
我可以根据合理的需求添加功能。
基本上你想要一个功能,请告诉我,你得到了。
要在本地构建它,请安装 VS Express 2010,安装 Microsoft SDK,打开相当于 Program FilesMicrosoft SDKsWindowsv7.1Samplesmultimediadirectshowbaseclassesbaseclasses.sln 现在构建它(调试)添加对于您的本地构建(项目属性,来自 source_codepushdesktop.sln),调整 VC++ 目录(包含/库)以指向您的各种基类目录。
附带的速度测试实用程序最初来自 http://stereopsis.com/blttest (bitblt 非常依赖硬件,所以我被告知,所以能够测试其速度是件好事)。
还包括 FFmpeg 二进制文件,请参阅其网站以获取许可详细信息/源:http://ffmpeg.org
http://obsproject.com 是开源的,不使用 FFmpeg,但可能适合您。甚至可以捕获 DirectX 的支持。 http://www.ffsplit.com 不是开源的,但使用 FFmpeg 捕获/流式传输桌面。 http://camstudio.org 是开源且免费的,但要求您仅使用 Windows 系统中安装的本地编解码器,并且存在一些可用性问题,这就是我一开始就开始这个项目的原因:)