• Stars
    star
    1,947
  • Rank 22,828 (Top 0.5 %)
  • Language
    C++
  • License
    Other
  • Created over 12 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a free open source windows "screen capture" device and recorder (also allows VLC/ffmpeg and others to capture/stream desktop/audio)

This program allows one to "record" your desktop, or even stream it!

It includes some helper "record your screen capture/stream it" and setup utilities. It also includes a helper (virtual-audio-capturer) to record "what you hear/see on your desktop" for vista+ system.

In order to use those you'll want/need the java JRE installed on your system first.  Install from java.com if you don't have it installed.

It also includes a free, general purpose, open source directshow desktop/screen source capture filter.

You can use this with any (directshow compatible) program to capture or stream, like VLC, etc.

See also the ChangeLog.txt file for a list of changes in latest versions.

Audio capture

It also includes a directshow source capture filter device for recording "what you hear" in windows 7/vista—​any sound card! see https://github.com/rdp/virtual-audio-capture-grabber-device for info/troubleshooting of that audio capture device.

Usage

Use some helper programs provided in Start menu → Programs → Screen Capture Recorder → record desktp[/broadcast/XXX

Or use any 3rd party program that can read from a Directshow Capture Device (ex: VLC/FFmpeg).

ffmpeg example:

$ ffplay -f dshow -i video="screen-capture-recorder"

or

$ ffmpeg -f dshow  -i video="screen-capture-recorder"  -r 20 -t 10 screen-capture.mp4 # -t 10 for 10 seconds recording

or combine it with recording "what you hear" audio [vista/windows 7] (using ffmpeg in this example):

$ ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" yo.mp4

Note also that ffmpeg has a built in "gdigrab" input option you could use instead of screen capture recorder, as well.

The audio device name can be any other dshow audio devices, as well.

Avisynth also works with it. Add it to a filter graph using graphedit, then use DirectShowSource as your input source with that graphedit filename specified.

gstreamer works, as well, ex:

$ gst-launch.exe dshowvideosrc device-name=screen-capture-recorder ! ffmpegcolorspace ! directdrawsink

I’ve even had Skype accidentally use it, thinking it was my webcam. Let me know if you want an easier way made for it for anything.

Configuration

By default, it captures the "full screen" of the main desktop monitor (all windows, overlapping, from there, with aero if vista+, without transparent windows if non aero).

To configure it differently, run the provided "configuration setup utilities/shortcuts" or adjust registry settings before starting a run (advanced users only):

HKEY_CURRENT_USER\Software\screen-capture-recorder

with DWORD keys respected of start_XXX etc …​ (see the included file {installdir}\configuration_setup_utility\setup_screen_tracker_params.rb for the full list of registry key values available, or see https://github.com/rdp/screen-capture-recorder-to-video-windows-free/blob/master/configuration_setup_utility/setup_screen_tracker_params.rb#L9 )

ex: see configuration_setup_utility\incoming.reg file (though NB that those values are in hex, so editing that file is a bit tedious-- I always just use regedit or the accompanying script utilities and don’t edit it by hand).

To "reset" a value delete its key.

OR

create a file named this: %APPDATA%\ScreenCaptureRecorder.ini

with contents like this, all go under a section "all_settings"

your_first_setting=1 your_second_setting=100 …​

By default it reads the registry first, if it doesn’t find something set there, it’ll look in the .ini file.

Trouble shooting

It’s too slow! (ex: 15 fps)

Run the "benchmark your capture speed" utility to see how slow your system can capture.

If you’re on vista+, turn off aero display manager (esp. if you have dual monitors, this can help). http://www.howtogeek.com/howto/windows-vista/disable-aero-on-windows-vista

It captures much more quickly if aero is turned off (as in with aero, capturing a 650x976 window takes 50ms, without aero, 3ms.

The rest of a single screenshot capture takes about 7ms (sum 10ms without aero), so you can see the relative cost it adds [!].

There’s also a registry setting to have it turned off "automatically".

I have only been able to get max 15 fps when capturing aero [ping me if you want me to look into improving this somewhat, I have some ideas…​].

It’s too slow! (ex: 50 fps)

Disabling or enabling "hardware acceleration" for the desktop might help, too, or setting it to one stop above none

Try switching from 32 to 24 bit or 16 bit input (from this), and/or switching your desktop depth itself—​or both! fastest is 16 bit display with capture in 16 bit mode—​400 fps whoa!).

It starts making the computer sluggish after awhile.

Make sure you have enough RAM available (virtualbox is known to hog some without telling you). Also disable aero if possible.

Note that if your output is, say, going to be 10 fps "actually used" in the end, ex: $ ffmpeg -f dshow -i video=video-capture-recorder -r 10 yo.mp4 -r 10 # output file is only 10 fps

Then to save cpu, a "good" application will also instruct the "source fps" to be 10 fps $ ffmpeg -framerate 10 -f dshow -i video=video-capture-recorder -r 10 yo.mp4 # input and output are set to 10

for an exaplantion of why "framerate" and not "-r" here, see https://trac.ffmpeg.org/wiki/DirectShow#Specifyinginputframerate

that they pass on to this filter, and everybody’s in 10 fps and hopefully happy, and cpu is saved. ex: vlc.exe dshow:// …​ :dshow-fps=10 vlc then passes this in to SetFormat after negotiation, and the device accepts it, and feeds you at 10 fps.

Some "bad" directshow applications don’t pass this parameter in. Most can. So there may be a case where it is wasting cpu somehow, by capturing too many or the like. So for those programs, you’ll want to set the max fps parameter, which will limit its capture frequency.

Setting max fps to greater than 30 also allows you to get fps greater than 30 (the default max). It "enables" them, by giving it a higher max default. I didn’t think people would normally care/want them so there you have.

Skype users

NB that to use it as an input camera skype, you need to specify that it is a reasonably small capture, see http://betterlogic.com/roger/2012/04/skype-directshow-device-just-shows-circles-for-the-preview-capture/

I can’t capture full screen [like starcraft type windows].

Known limitation, try this thread: https://groups.google.com/forum/#!topic/roger-projects/uxmGV_vW4iY [or pay me a bit of money and I’ll create a front end to the excellent OBS project to provide this functionality]

Feedback/Question

Other feedback/problems/questions ping me [email protected] or browse the mailing list: http://groups.google.com/group/roger-projects Or submit to our uservoice: http://rdp.uservoice.com

Redistribution

You can redistribute this. See file LICENSE.TXT. If you do, you may just need to distribute for instance the file PushDesktop.dll If you do, you have to register this device, via registering its dll (like $ regsvr32 PushDesktop.dll—​may require administrator rights) as part of your install. Also note that end users also need the MSVC 2010 redistributable previously installed (or you have to make it available in the same dir as your exe) for the dll to work/install, in case end users don’t have it installed). If you change it and redistribute it, you may want to change the GUID’s, so that it won’t clash if somebody also installs this software. See also #17

Code/Future work/Attributions

The code is gently based on/lifted from ("inspired by") this from the Windows 7.1 SDK …​.\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\filters\pushsource as well as some other dshow demos around the 'net (tmhare virtual capture). so you’ll probably want to install the Windows SDK before messing around with the source code. To hack on the code, build the windows SDK directshow baseclasses, then open source_code/*.vcxproj in visual studio 2010 express. This is meant to provide a "directshow filter" you can use in your graph, not a demo of how to do graphs. It outputs a .dll file that you "register" via (in administrator console) $ regsvr32 XXX.dll (and unregister when you’re done with regsvr32 /u XXX.dll) there are also some scripts to set the registry values (written in ruby/jruby currently for the GUI) but you don’t have to adjust those to mess with the filter itself.

I can add features upon reasonable demand.

Basically you want a feature, ping me, you got it.

To build it locally, install VS Express 2010, install Microsoft SDK, open up your equivalent of \Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\baseclasses.sln build it (debug) now add to your local build (project properties, from the source_code\pushdesktop.sln) adjust the VC++ Directories (Include/Library) to point to your various baseclass directories.

More Attributions

The included speed test utility was originally from http://stereopsis.com/blttest (bitblt is quite hardware dependent, so I’m told, so it’s good to be able to test its speed).

FFmpeg binaries are also included, see their site for licensing details/source: http://ffmpeg.org

http://obsproject.com is open source, doesn’t use FFmpeg but might work for you. May even capture DirectX woot. http://www.ffsplit.com is not open source, but does capture/stream desktop using FFmpeg. http://camstudio.org is open source and free, but requires you to just use your local codecs installed in your windows system, and has some usability issues, which is why I even started this project in the first place :)

More Repositories

1

ffmpeg-windows-build-helpers

Helper script for cross compiling some media tools for windows, like customizable ffmpeg.exe (with or without non-free components, etc), and some other bonuses like mplayer, mp4box, mxf, etc.
Shell
1,015
star
2

virtual-audio-capture-grabber-device

free audio capture device to capture all the "wave out sound" that is playing on your speakers (i.e. record what you hear) for Windows Vista+. Releases downloadable in this package:
C++
531
star
3

open-source-how-to-popularize-your-project

285
star
4

specific_install

rubygems plugin to allow you to install an "edge" gem straight from its github repository
Ruby
275
star
5

ruby_gnuplot

The ruby gnuplot gem [gnuplot] [rgnuplot] (official releases of the gnuplot gem are from rdp branch)
Ruby
214
star
6

os

The OS gem allows for some easy telling if you’re on windows or not. OS.windows? as well as some other helper utilities
Ruby
137
star
7

sensible-cinema

Clean Editing Movie Player (sensible cinema/play it my way) allows you watch edited movies by applying delete lists (EDL's) (i.e. "mute out" or "cut out" scenes) to DVD's/files, with preliminary support for also applying them to arbitrary web/internet based players like netflix instant, hulu/hulu plus etc. http://playitmyway.org
JavaScript
96
star
8

google_hash

wrapper for google's hash functions, for ruby
C++
94
star
9

faster_require

A utility to make require 'xxx' take far less time in windows
Ruby
48
star
10

ruby_tutorials_core

code examples to help enrich the documentation available for ruby's core classes ri output of the core classes
35
star
11

homebrew-openssh-gssapi

homebrew tap that provides an openssh option that supports various useful patches for OS X
Ruby
34
star
12

ruby_bounties

A list of various bounties for things people can develop in Ruby for pay (open source bounty)
22
star
13

open-source-directshow-video-capture-demo-filter

This has a "static" demo (poor demo, at that) of a demo video capture source. From the tmhare stuff.
C++
21
star
14

ri_for

allows you to grab a method's docu at runtime
Ruby
21
star
15

ruby_simple_gui_creator

Framework to ease in creation of ruby GUI apps. Makes designing GUI's a snap.
Ruby
17
star
16

camstudio-clone

git snapshot of camstudio hg repo ( http://sourceforge.net/scm/?type=hg&group_id=131922 )
C
16
star
17

faster_rubygems

A helper to dramatically speedup the time it takes to run a 'require rubygems'. DEPRECATED shouldn't be necessary with newer versions of rubygems, at least I hope not. If it is message me so I can work on this again
Ruby
15
star
18

backtracer

Quality output when an exception is thrown and not caught in Ruby
Ruby
14
star
19

replace-text-pdf

replace text within pdf files
Crystal
12
star
20

on-screen-capture-recorder-to-video-windows-free

moved to https://github.com/rdp/screen-capture-recorder-to-video-windows-free
11
star
21

directshow-demo-audio-input-open-source

This repository has an actual working directshow audio input source filter.
C++
10
star
22

nifty_windows

A github copy [and slightly improved] of Nifty Windows, a program to make microsoft windows behave much nicer
8
star
23

screen-capture-recorder-program

project has moved to https://github.com/rdp/on-screen-capture-recorder-to-video-windows-free
6
star
24

ruby_beautifier

prettifier/beautifier for Ruby code [from http://www.arachnoid.com/ruby/] source reformatter packaged as a gem
Ruby
6
star
25

sane

some methods that *should* have been in core--and some that are planned to enter core
Ruby
6
star
26

whichr

A 'which' command written entirely in Ruby--windows friendly [searches for .bat files, etc. appropriately]
Ruby
5
star
27

sacredsheetmusic.org

rails source for the website freeldssheetmusic.org
Ruby
5
star
28

amf_headers

stripped down copies of the AMD AMF headers...
C++
4
star
29

os_x_keychain_create_pipe_in_password

OS X has no ability to programmatically add to the keychain without leaking it to the process list, this is meant to do that.
Python
4
star
30

visualuruby_here

A git clone of the visualuruby project
Ruby
4
star
31

faster_gem_script

A utility to make ruby "command line scripts" run much faster by using gem prelude instead of full rubygems
Ruby
4
star
32

pcre

PCRE bindings for Ruby--they appear faster than the normal regexes!
Ruby
3
star
33

ruby_talk_faq

repository dedicated to answering common ruby-talk questions via its wiki
3
star
34

easy_window_close

Utility to allow you to close windows more easily on mswin32
3
star
35

npapi-vlc

clone of vlc npapi
C++
3
star
36

open-source-directshow-screen-desktop-capture-source-filter

open source directshow desktop/screen capture source filter
3
star
37

roger-useful

Random useful utilities. Mostly ruby
Ruby
2
star
38

ruby-prof

2
star
39

smplayer-svn

snapshot of http://sourceforge.net/scm/?type=svn&group_id=185512 trunk (smplayer svn)
C++
2
star
40

after

command line utility to run a command "after one in a different terminal completes"
Ruby
2
star
41

nextsprocket

source for nextsprocket.com, the open source bounty page
2
star
42

ruby_windows_tk

binaries for ruby 1.8.6 for ruby tk (tcl tk bindings)
Ruby
2
star
43

family-history-screen-saver

A screen saver that shows ancestors faces and places
Ruby
2
star
44

virtual-audio-output-sniffer

redirect to virtual-audio-capture-grabber-device
2
star
45

tk_as_gem

the tk extension extracted from core and gem-ified
Ruby
2
star
46

open-source-bounty-ideas

2
star
47

gem_file_conflict_checker

A gem plugin to warn you when you accidentally install files with names that collide accidentally
Ruby
2
star
48

p2pwebclient

A p2p web client for automatically sharing files during web download
Ruby
2
star
49

genealogy-collaboration

musings on online tools for genealogy-collaboration
2
star
50

ruby2app

distributer/packager for ruby executables
Objective-C
2
star
51

wait_pid

the wait_pid command -- (ruby gem/binary for waiting on any arbitrary external pid, works on doze/linux)
Ruby
2
star
52

display

ruby tool that gives you "analyze a, b, c" outputs " at line x, a = 3, b = 4, c = 5"
Ruby
2
star
53

windows_backport_process_spawn

Process.spawn for 1.8.x on windows
2
star
54

windows_dvd_edl_playlist_player

reformulation of dvd sample to allow for [single item edit list] playback.
C++
2
star
55

maven_watchr

A "continuous integration local tester" for maven projects (typically java), such that when you update a .java file, it will automatically run its unit test.
Ruby
2
star
56

7zip-clone

copy of 7 zip's source code, with some local modifications
2
star
57

dirt-simple-surveillance

allows you to capture from USB Cameras for surveillance purposes, without the cruft
Ruby
2
star
58

zong

github (+- modifications) clone of git://zong.git.sourceforge.net/gitroot/zong/zong
2
star
59

dvdid

github clone of the "dvdid" project [open source port of Windows' IDvdInfo2::GetDiscID() dvd unique id method from http://dvdid.cjkey.org.uk/ ]
2
star
60

java_code_tutorials

code examples to help enrich the javadocs for the core or various java libraries
1
star
61

timerr

simple "time how long this executable takes" (the time method from bash, but works in windows)
Ruby
1
star
62

require_all

A wonderfully simple way to load your code
Ruby
1
star
63

random-bug-reports

see issues
1
star
64

blank_c_project

trying to trick macports into installing nothing
1
star
65

ruby_remembered_evals

Tool to save eval'ed code strings to a file, first, as eval time
Ruby
1
star
66

ruby_tutorials_any_gem

code examples to help with documentation for any and all gems
1
star
67

pomodoro-timer

pure jruby pomodoro style desktop timer
Ruby
1
star
68

redcar-save-all-on-lose-focus

Redcar plugin to save all tabs when you "alt+tab" away form redcar
1
star
69

meta-domain

list of thoughts for "free" internet domains/subdomains (inet2.org et al)
1
star
70

movie-backlight

movie enhancing color changing backlight.
Ruby
1
star
71

expectations

RSpec 2 expectations (adds should and should_not to Object)
Ruby
1
star
72

rmagick.mingw.old

github copy of rmagick 2.12.2 mingw friendlier
C
1
star
73

redcar-auto-close-when-last-tab-closes

Closes redcar window when the last open tab in that window closes (like TextMate)
1
star
74

ruby_core_source2

192 edge friendlier ruby_core_source
Ruby
1
star
75

windows_ionice

A utility for windows so that if you have one process slamming the disk, it won't slow down other processes
Ruby
1
star
76

soundtouch-linux

Automatically exported from code.google.com/p/soundtouch-linux
C++
1
star
77

substruct-fork

substruct with my local mods, before committing them
Ruby
1
star
78

amethyst

ruby with java-like speed [experimental]
Ruby
1
star
79

google_voice_system_tray

A "desktop" system tray app for google voice--written in Python
Python
1
star
80

workaholic-help

Github wiki of some tips for workaholics
1
star
81

ruby_core_ri

A gem to make it possible to have the core ri/rdoc (especially useful if your distro didn't include it)
Ruby
1
star
82

open-source-new-familysearch-tree

an open source web app to "better" view ones family tree
1
star
83

enumdisplaydevices_console_app

console app to spit out the output of windows' EnumDisplayDevices call
C++
1
star
84

ffi_ez

TODO: one-line summary of your gem
Ruby
1
star
85

relationship_solver

website (not functional yet) to allow you to improve your relationship skillz
Ruby
1
star
86

wait_for

A utility that allows you to "run something after this other task in a different window completes" (on the command line)
Ruby
1
star
87

light_weight_rubygems

1
star
88

easy-ruby-one-click-distributer

1
star
89

split_parameters

Ruby library to allow for objective-c like "split" parameters in a method call
1
star
90

rdoc2.3.0

rdoc faster hanna friendlier
1
star
91

all_gems_rdocs

helpers to generate rdocs for all gems (i.e. the backend code for http://allgems.ruby-forum.com)
Ruby
1
star
92

gem_builder

arbitrarily build a gem out of an xxx.gemspec file! Any file! Skip the publish to github first step and build your own local gem and install it to test it!
Ruby
1
star