https://github.com/morgant/mavid
Lossless X11 screencast recording on OpenBSD using ffmepg & sndio
https://github.com/morgant/mavid
ffmpeg lossless openbsd screencast screencast-recording sndio x11
Last synced: 3 months ago
JSON representation
Lossless X11 screencast recording on OpenBSD using ffmepg & sndio
- Host: GitHub
- URL: https://github.com/morgant/mavid
- Owner: morgant
- License: mit
- Created: 2023-10-18T15:24:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-18T18:01:55.000Z (over 1 year ago)
- Last Synced: 2025-02-05T08:41:12.781Z (3 months ago)
- Topics: ffmpeg, lossless, openbsd, screencast, screencast-recording, sndio, x11
- Language: Shell
- Homepage:
- Size: 2.93 KB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mavid
## OVERVIEW
`mavid` (Make Video) is utility to record screencasts of your X11 desktop using ffmpeg, inspired by [`maim`](https://github.com/naelstrof/maim).
By default, it records lossless video & audio using the [libx264rgb](https://ffmpeg.org/ffmpeg-codecs.html#libx264_002c-libx264rgb) & [flac](https://ffmpeg.org/ffmpeg-codecs.html#flac-2) encoders, respectively, into a single [Matroska](https://www.matroska.org/) (`.mkv`) container file. The lossless MKV recording can then be transcoded into smaller, lossy formats in different container formats. This generally reduces CPU load while recording, which is helpful on slower processors, but produces significantly larger recording files.
**NOTE:** It currently only supports [OpenBSD](https://www.openbsd.org/) due to its reliance on [sndio](https://sndio.org/) and especially OpenBSD's [`sndioctl`](http://man.openbsd.org/sndioctl).
## PREREQUISITES
* [OpenBSD](https://www.openbsd.org/)
* [`sndio`](https://sndio.org/)
* [`ffmpeg`](https://ffmpeg.org/)
* [`slop`](https://github.com/naelstrof/slop)## USAGE
1. Install the OpenBSSD `ffmpeg` and `slop` packages:
```
pkg_add ffmpeg slop
```2. Enable OpenBSD audio recording, if you haven't already:
```
sysctl kern.audio.record=1
```2. Record your entire display:
```
mavid
```Alternatively, you can select a portion of your display to record prior to starting recording by executing `mavid -s`:
```
mavid -s
```3. Press `Ctrl-C` to cancel recording. (Pressing `q`, which normally also stops `ffmpeg` recording because of the way video & audio are being piped.)
## Reference
* [FFMPEG Capture/Desktop (Lossless Recording)](https://trac.ffmpeg.org/wiki/Capture/Desktop#LosslessRecording)
* [`fauxstream`](https://github.com/rfht/fauxstream) (example of piping `x11grab` video & `sndio` audio into a single file with `ffmpeg`)
* My old [x11record](https://github.com/morgant/x11record) utility## LICENSE
Released under the [MIT License](LICENSE).