Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/clowd/obs-express
A tiny OBS build with a simple command line interface.
https://github.com/clowd/obs-express
desktop-duplication ffmpeg obs obs-studio screen-recorder windows
Last synced: about 1 month ago
JSON representation
A tiny OBS build with a simple command line interface.
- Host: GitHub
- URL: https://github.com/clowd/obs-express
- Owner: clowd
- License: gpl-2.0
- Created: 2022-08-07T22:21:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T16:42:05.000Z (over 1 year ago)
- Last Synced: 2024-04-18T02:19:56.956Z (10 months ago)
- Topics: desktop-duplication, ffmpeg, obs, obs-studio, screen-recorder, windows
- Language: C++
- Homepage:
- Size: 1.34 MB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
## obs-express
This is a custom build of OBS, ffmpeg, and a light-weight executable wrapper. It is only 50mb (22mb compressed) and is capable of recording and encoding a specific region of the screen at an extremely high speed thanks to OBS.------
### Usage
The command line help is as follows:
```txt
obs-express v1.0.0, a command line screen recording utility
bundled with obs-studio v29.1.3
created for Clowd (https://github.com/clowd/Clowd)Global:
--help Show this help textRequired:
--output {filePath} The file for the generated recordingOne of:
--region {x,y,w,h} A capture region to spanning multiple monitors
--monitor {szDevice} Only capture the specified monitorOptional:
--adapter {int} The index of the graphics device to use
--speaker {dev_id} Output device ID to record (can be multiple)
--microphone {dev_id} Input device ID to record (can be multiple)
--fps {int} The target video framerate (default: 30)
--crf {int} Quality from 0-51, lower is better. (default: 24)
--maxWidth {int} Downscale output to a maximum width
--maxHeight {int} Downscale output to a maximum height
--tracker If the mouse click tracker should be rendered
--trackerColor {r,g,b} The color of the tracker (default: 255,0,0)
--lowCpuMode Maximize performance if using CPU encoding
--hwAccel Use hardware encoding if available
--noCursor Do not render mouse cursor in recording
--pause Pause before recording until start command
--preview {hWnd} Render a recording preview to window handle
--omux {name:value} Add custom muxer/ffmpeg output options
```The parameter `--output` is required, and you must specify either `--region` or `--monitor`. You can retrieve `szDevice` for a monitor using win32 `GetMonitorInfo`.
Both the `--speaker` and `--microphone` parameters can be specified more than once, to record multiple devices.
They support `default` being passed in as the value to use the default device, or the `{ID}` of the device as returned from `MMDeviceEnumerator`.
Maximum 5 simultaneous audio devices.### Realtime Commands
While the recorder is running, you can provide the following commands via stdin:
- `q` or `Ctrl+C`: Stop recording and quit.
- `start`: Used in conjunction with the --pause parameter.
- `mute`: Mutes an audio device. Must provide the device type and index (order in which it was provided in command line arguments).
Examples:
- Mute the first speaker device: `mute s 0`
- Mute the second microphone device: `mute m 1`
- `unmute`: Unmutes an audio device. Same syntax as `mute`.
- `pause`: Pauses the capture/rendering pipeline. Can be resumed with `start`.### Compiling
Requirements:
- Visual Studio 17.2.6 or later
- Desktop development with C++ (Workload)
- Windows SDK 10.0.20348The following will perform a full build and output `obs-express.zip` to the project directory.
```cmd
git clone --recursive https://github.com/clowd/obs-express.git
configure-obs.cmd
pack-release.cmd
```Now open `ObsExpressCpp.sln` in Visual Studio and you should be able to F5 and run/debug the program.