Bashcaster is a simple script that uses ffmpeg
to record screencasts to videos or GIFs. It can record the whole screen or a window. It can optionally optimize GIFs with gifsicle
.
Put bashcaster.sh
wherever you want.
Bashcaster only works on X-based GUIs. It should work on any Linux distro, and all common ones should have these tools available for installation:
ffmpeg
does all the work behind the scenes.xprop
andxwininfo
are used to retrieve screen and window dimensions.yad
shows the stop-icon tray notification and confirmation dialogs.- slop is used when available to select rectangles, otherwise a fallback method is used.
gifsicle
optionally optimizes GIFs.
Record a window to a GIF:
bashcaster --window output.gif
Record a window to a GIF at 15 frames per second, with the mouse cursor, optimize it, and don’t show confirmation prompts:
bashcaster -coy --window -f 15 output.gif
Record the whole screen to an MKV at 60 fps immediately, without confirmation:
bashcaster -f 60 -y output.mkv
bashcaster.sh [OPTIONS] OUTPUT-FILE Bashcaster is a simple script that uses ffmpeg to record screencasts to videos or GIFs. It can record the whole screen or a window. It can optionally optimize GIFs with gifsicle. OUTPUT-FILE should end with the desired video type's extension, e.g. ".mp4" or ".gif". Click the stop-icon tray notification to stop recording. Options --debug Print debug info --help I need somebody! --force Overwrite output file if it exists -y, --no-confirm Don't ask for confirmation before recording -c, --cursor Record mouse cursor -F, --fullscreen Record the whole screen (the default) -R, --rectangle Select and record a rectangle -W, --window Select and record a window -f, --framerate NUMBER Video framerate (default: 30) -l, --left NUMBER Video left edge position (default: 0) -t, --top NUMBER Video top edge position (default: 0) -h, --height NUMBER Video height -w, --width NUMBER Video width --max-colors NUMBER Limit colors in palette -d, --dither Enable dithering to reduce filesize -o, --optimize Optimize GIF with gifsicle
- Inspired by Silentcast.
- FFmpeg does all the work.
- YAD shows dialogs and the stop button.
- Giphy posted a helpful guide (GitHub repo) showing how to record optimized GIFs with FFmpeg.
Bug reports, feature requests, suggestions — oh my!
GPLv3