diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 92 |
1 files changed, 63 insertions, 29 deletions
@@ -13,7 +13,7 @@ Counter-Strike 2 POV recording automation. Largely AI-assisted and personalized - **GPU** with Vulkan support (NVIDIA or AMD) ```bash -##Install Python dependencies: +## Install Python dependencies: pip install -e . ## Gentoo (based) @@ -26,41 +26,74 @@ apt install ffmpeg xdotool pulseaudio-utils ## Quick Start ```bash -# List players in a demo -cs2pov list /path/to/demo.dem +# Show demo information (players, deaths, spawns) +cs2pov info /path/to/demo.dem -# Record a player's POV -cs2pov -d /path/to/demo.dem -p "PlayerName" -o recording.mp4 +# Record a player's POV (full pipeline: record + trim) +cs2pov pov -d /path/to/demo.dem -p "PlayerName" -o recording.mp4 + +# Raw recording only (no trimming) +cs2pov record -d /path/to/demo.dem -p "PlayerName" -o raw.mp4 + +# Trim an existing recording +cs2pov trim raw.mp4 -d /path/to/demo.dem -p "PlayerName" ``` -## Usage +## Commands + +### `cs2pov info` - Show Demo Information + +Display demo metadata, player list, and death/spawn statistics for each player. + +```bash +cs2pov info demo.dem # Human-readable output +cs2pov info demo.dem --json # JSON output +cs2pov info demo.dem -v # Verbose (includes death period details) +``` + +### `cs2pov pov` - Full Recording Pipeline + +Record a player's POV and automatically trim death periods. +```bash +cs2pov pov -d demo.dem -p "PlayerName" -o recording.mp4 +cs2pov pov -d demo.dem -p "PlayerName" -o recording.mp4 --no-trim # Skip trimming ``` -cs2pov [-h] --demo DEMO --player PLAYER --output OUTPUT [options] + +### `cs2pov record` - Raw Recording Only + +Record without post-processing. Useful for batch recording then trimming later. + +```bash +cs2pov record -d demo.dem -p "PlayerName" -o raw.mp4 ``` -### Required Arguments +### `cs2pov trim` - Trim Existing Recording + +Remove death periods from a previously recorded video. + +```bash +cs2pov trim raw.mp4 -d demo.dem -p "PlayerName" +cs2pov trim raw.mp4 -d demo.dem -p "PlayerName" -o trimmed.mp4 +``` -| Argument | Short | Description | -|----------|-------|-------------| -| `--demo` | `-d` | Path to demo file (.dem) | -| `--player` | `-p` | Player to record (name or SteamID) | -| `--output` | `-o` | Output video file path | +## Common Options -### Optional Arguments +### Recording Options (pov, record) | Argument | Short | Default | Description | |----------|-------|---------|-------------| +| `--demo` | `-d` | required | Path to demo file (.dem) | +| `--player` | `-p` | required | Player to record (name or SteamID) | +| `--output` | `-o` | required | Output video file path | | `--resolution` | `-r` | 1920x1080 | Recording resolution | | `--framerate` | `-f` | 60 | Recording framerate | -| `--no-hud` | | off | Hide HUD elements (except killfeed) | +| `--no-hud` | | off | Hide HUD elements | | `--no-audio` | | off | Disable audio recording | | `--audio-device` | | auto | PulseAudio device for audio capture | -| `--no-trim` | | off | Skip post-processing, keep full recording | -| `--display` | | 0 | X display number (0 = real display) | -| `--cs2-path` | | auto | Path to CS2 installation (can also be CS2_PATH envvar) | +| `--display` | | 0 | X display number | +| `--cs2-path` | | auto | Path to CS2 installation | | `--verbose` | `-v` | off | Verbose output | -| `--version` | | | Show version | ### Player Identification @@ -74,16 +107,17 @@ The `--player` argument accepts multiple formats: ## How It Works 1. **Parse demo** - Extract player list and metadata using demoparser2 -2. **Generate config** - Create CS2 CFG file with spectator settings -3. **Copy demo** - Place demo in CS2's replays directory -4. **Launch CS2** - Start CS2 via Steam with the generated config -5. **Wait for map load** - Monitor console.log for map load completion -6. **Hide demo UI** - Send Shift+F2 to hide playback controls -7. **Start capture** - Launch FFmpeg to record display + audio (PulseAudio) -8. **Recording loop** - Send F5 periodically to keep spectator locked on target player -9. **Wait for demo end** - Monitor console.log for demo completion -10. **Finalize** - Stop capture and terminate CS2 -11. **Post-process** - Trim start (until POV selected) and death periods from video +2. **Preprocess timeline** - Extract death/spawn events for accurate trimming +3. **Generate config** - Create CS2 CFG file with spectator settings +4. **Copy demo** - Place demo in CS2's replays directory +5. **Launch CS2** - Start CS2 via Steam with the generated config +6. **Wait for first spawn** - Monitor console.log for player spawn +7. **Hide demo UI** - Send Shift+F2 to hide playback controls +8. **Start capture** - Launch FFmpeg to record display + audio (PulseAudio) +9. **Recording loop** - Send F5 periodically to keep spectator locked on target player +10. **Wait for demo end** - Monitor console.log for demo completion +11. **Finalize** - Stop capture and terminate CS2 +12. **Post-process** - Trim start and death periods from video using timeline data ## Noteworthy Issues/Workarounds |
