I've used Asciinema (https://asciinema.org) in the past to record and playback terminal sessions even without the online integration. The output is a highly compressed format consisting of timing info and the actual text, so it's much smaller than a video file. For when a video is necessary, I've used Asciicast2gif (https://github.com/asciinema/asciicast2gif), which converts the output to a GIF and then I can easily convert the GIF to a MP4, etc.
I can see the utility of going directly to a screen recording though.
I don't know about the story on BSDs but on linux you can use https://www.maartenbaert.be/simplescreenrecorder/ which also supports selecting windows, screens, manual source rectangles, as well as using nvenc for encoding, recording audio, a preview window and so on.
I've used Asciinema (https://asciinema.org) in the past to record and playback terminal sessions even without the online integration. The output is a highly compressed format consisting of timing info and the actual text, so it's much smaller than a video file. For when a video is necessary, I've used Asciicast2gif (https://github.com/asciinema/asciicast2gif), which converts the output to a GIF and then I can easily convert the GIF to a MP4, etc.
I can see the utility of going directly to a screen recording though.