This project adheres to Semantic Versioning.
- Remove dependency on
childprocessandosgems.
- Match "childprocess" gem version to
selenium-webdriver. Closes #99. - Add support for screenshot resolution. Closes #98.
- Relax "os" gem version to minor level (#97). Thanks, hlascelles!
- Users can now select a ffmpeg capture device from advanced -> input.
- Fix a bug where some advanced parameters were not parsed correctly.
- Add support for audio stream capture (#15)
- Fix #84 where the user given ffmpeg binary path was never used.
- Relax childprocess gem version requirement to roughly match requirements in
selenium-webdrivergem (#85) - Add support for capturing screenshots in both desktop and window modes (#44).
- Reattempt
ffprobeexecution up to times if the first try raisesErrno::EAGAIN. Hopefully fixes #79.
- Support JRuby 9.2+ (#58)
- Add
ScreenRecorder::as an alias forScreenRecorder::Window.fetch_title. TheTitlesclass will be removed in version 2.0.
- Separate input/output specific
ffmpegarguments through theadvancedHash. See example here. - Check for errors after starting the
ffmpegprocess to make sure the recording does not stop silently because of an error. Prints the error from the log if the process exists unexpectedly. - Now using
childprocessgem to manage theffmpegprocess. This requires theffigem to be installed on Windows. See childprocess#132 for more information.
- Add support for macOS (#55). Thanks to Denys Bazarnyi for testing this and providing feedback.
- Force kill
ffmpegif it takes more than 10s to quit (#60). - Fix a bug where
ScreenRecorder.ffmpeg_binary=()was not properly defined. ScreenRecorder::Titles#fetchwill now raiseNotImplementedErrorwhen used in a Linux or a macOS environment. Only works on Windows.- Default
inputvalue on Linux is now:0.
- Released first major version.
- Now uses
ScreenRecorderas top level module.FFMPEGis not directly exposed anymore. - The recording modes are now available through
ScreenRecorder::DesktopandScreenRecorder::Windowclasses to make the usage (parameters) simpler. - Method parameters are now keywords instead of an
optsHash. This means at least Ruby 2.0.0 is required. framerate:is now to be passed through theadvancedHash.
- Gem will now be renamed to
screen-recorder. Please refer to Issue #45 for more information.
- Reverted post install message as
screen_recorderis already taken.
- Recording FPS (
framerate) is defaulted to 15.0. - Gem will soon be renamed to
screen_recorder. Please refer to Issue #45 for more information.
- Fixed an edge case in Microsoft Windows specific implementation of
WindowTitles#fetchwhere processes with mismatching names and window titles, such as process"Calculator.exe"with window title"CicMarshalWnd", were omitted (#35). This fix also prints a warning when this mismatch occurs. - Fixed bug in Linux specific
WindowTitles#fetchimplementation where the filter by application name logic was removed. This filter is required on Linux here becausewmctrlreturns all open window titles unlike Microsoft Windows wheretaskmgrallows us get window titles by process name. - On Linux, you are now required to provide the
inputas"desktop"or a display number, such as":0.0". Runecho $DISPLAYto check your display number. - QOL improvements - Type checking of inputs, spec cleanup, added more tests, and fixed rubocop warnings.
⚠️ FFMPEG::RecordingRegionsis nowFFMPEG::WindowTitles, so the module name is true to the function it provides.- Added support for for a user given path via
FFMPEG#ffmpeg_binary=(). - Removed Bundler version requirement from gemspec to support all versions.
- Implement
#discard(alias#delete) to discard the video file. Useful when your test passes and you want to get rid of the video file.
- Fix a bug where the gem was incorrectly configured to be required as
ffmpeg/screenrecorderinstead ofscreen-recorder. ScreenRecorder#startnow returns the IO process object in case the user has a use case for it.RecordingRegion#fetchnow logs a warning thatx11grabfor Linux does not supporting window recording.⚠️ Parameterinfileis nowinputto make it more intuitive.
- Fix bug in RecorderOptions where an incorrect object was referenced to read the user provided options.
- Stopping the screenrecorder now prints the failure reason given by the ffmpeg binary when
#stopfails (Issue #7). - Log file is now defaulted to
ffmpeg.loginstead of redirecting to nul. log_levelnow defaults toLogger::ERRORinstead ofLogger::INFO.
Screenrecorderclass is nowScreenRecorder.- Add support for Linux.
- Now an exception raised if the gem fails to find
ffmpeg. - Fix a bug where a file named
nulwas created instead of directing the output toNUL. - Fix a bug where
RecordingRegions#window_titleswas not returning anything because of missing return keyword.