summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.md92
1 files changed, 63 insertions, 29 deletions
diff --git a/README.md b/README.md
index c78bffb..db98e41 100644
--- a/README.md
+++ b/README.md
@@ -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