Screen recorder in Python https://spacecruft.org/deepcrayon/ffrec
Find a file
2026-10-16 08:48:22 -06:00
src/ffrec rm dead code 2026-10-15 21:12:01 -06:00
.gitignore git ignores 2025-04-06 08:36:04 -06:00
BUILD.md Use ruff formatting, not black 2026-10-15 20:12:38 -06:00
CHANGELOG.txt v0.5.0 2026-10-15 21:14:32 -06:00
LICENSE-apache.txt Apache 2.0 License 2025-04-06 08:31:28 -06:00
pyproject.toml OS requires Linux 2026-10-15 20:33:51 -06:00
README.md It's 2026 2026-10-16 08:48:22 -06:00
TODO.md Implement loop option 2026-10-15 21:09:39 -06:00

ffrec

ffrec records the screen, using Python.

Installation

Thusly, suit to taste:

python -m venv venv
source venv/bin/activate
pip install -U setuptools pip wheel
pip install ffrec

Help

Command line options:

$ ffrec --help
usage: ffrec [-h] [-a AUDIO_CODEC] [-A AUDIO_INPUT] [-c VIDEO_CODEC] [-D]
             [-C AUDIO_CHANNELS] [-d DIR] [-l] [-m] [-o | -O] [-p PREFIX]
             [-r FRAMERATE] [-s SIZE] [-t TIME] [-T | -N] [-v] [-V]

Record screen and save to mp4

options:
  -h, --help            show this help message and exit
  -a, --audio-codec AUDIO_CODEC
                        Audio codec to use (default: aac)
  -A, --audio-input AUDIO_INPUT
                        Audio input source (default: pulse)
  -c, --video-codec VIDEO_CODEC
                        Video codec to use (default: hevc_nvenc)
  -D, --debug           Debugging
  -C, --audio-channels AUDIO_CHANNELS
                        Number of audio channels (default: 2)
  -d, --dir DIR         Directory to save the output video file
  -l, --loop            Loop into new segment files until terminated manually
  -m, --mouse           Record the mouse cursor (default false)
  -o, --overwrite       Overwrite existing files (default)
  -O, --no-overwrite    Do not overwrite existing files
  -p, --prefix PREFIX   Prefix for the output video file name
  -r, --framerate FRAMERATE
                        Framerate for recording (default: 30)
  -s, --size SIZE       Video size (default: 1920x1080)
  -t, --time TIME       Length of recording in HH:MM:SS format (default:
                        00:01:00)
  -T, --timestamp       Add timestamp to filename (default)
  -N, --no-timestamp    Do not add timestamp to filename
  -v, --verbose         Increase output verbosity (-vv for debug)
  -V, --version         Show version

License

Apache 2.0.

Unofficial project, not related to upstream projects.

Upstream sources under their respective copyrights.

Copyright © 2025, 2026 Jeff Moe.