Video Compilations
- Overview
- Features
- Installation
- Usage
- Configuration
- Documentation
- Contributing
- Roadmap
- Support
- License
- Acknowledgements
VIDCOM is a high-performance video compilation pipeline designed for gaming content creators. It automatically detects highlights (kills, headshots, clutches) from gaming streams and compiles them into YouTube Shorts-ready vertical videos.
- Pure C Implementation - Minimal dependencies, maximum performance with ONNX Runtime
- GPU Accelerated - NVENC/NVDEC encoding with CUDA inference for real-time processing
- Game-Specific Detection - Optimized ROI regions for Fortnite, Valorant, CS2, Overwatch, Apex
- End-to-End Pipeline - From raw stream to uploaded YouTube Short in one command
- ๐ฎ YOLO Highlight Detection - ML-based detection of kills, headshots, assists, and action moments
- ๐ GPU Acceleration - CUDA inference + NVENC encoding for real-time processing
- ๐ฆ Multi-Game Support - Fortnite, Valorant, CS2, Overwatch, Apex Legends
- ๐ง Automated Pipeline - Fetch โ Detect โ Encode โ Upload workflow
- โก Batch Processing - Process entire streams or multiple videos at once
- ๐ฌ YouTube Integration - Direct upload to YouTube with metadata
- NVIDIA GPU with CUDA 11.8+ support
- FFmpeg 6.0+ with NVENC support
- ONNX Runtime 1.20+ (bundled)
- Linux (Ubuntu 22.04+ recommended)
# Clone the repository
git clone https://github.com/xaoscience/vidcom.git
cd vidcom
# Install dependencies
./scripts/build-deps.sh
# Build
make
# Verify installation
./build/vidcom help# Install build dependencies (Ubuntu/Debian)
sudo apt install build-essential libavcodec-dev libavformat-dev \
libavutil-dev libswscale-dev libsqlite3-dev
# Build with CUDA support
make CUDA=1
# Or CPU-only build
make CUDA=0Detect highlights (kills, headshots, etc.) in gaming footage:
# Basic usage
./build/vidcom highlights video.mp4
# With game-specific optimization
./build/vidcom highlights stream.mp4 --game fortnite --confidence 0.6
# Verbose output
./build/vidcom highlights gameplay.mp4 --game valorant -v# Auto-detect and process highlights
./scripts/process-batch.sh stream.mp4 --auto --game fortnite --max-clips 5
# Upload to YouTube
./scripts/process-batch.sh stream.mp4 --auto --game valorant --upload --privacy unlistedCreate a manifest file (highlights.jsonl):
{"input": "stream.mp4", "start": "01:23:45", "duration": 55, "title": "Epic Kill", "tags": "fortnite,gaming"}
{"input": "stream.mp4", "start": "02:10:30", "duration": 45, "title": "Clutch Win", "tags": "fortnite,clutch"}Process the manifest:
./scripts/process-batch.sh highlights.jsonl --upload- Collect training data:
./scripts/collect-training-data.sh videos/ --game fortnite --fps 2-
Label frames with LabelImg or CVAT
-
Train the model:
./scripts/train-highlight-model.sh --data datasets/highlight_detection/data.yaml --epochs 100Edit config/vidcom.conf:
[general]
verbose = 1
use_gpu = true
device_id = 0
[highlight_detection]
# Path to YOLO ONNX model
highlight_model = models/highlight_yolov8n.onnx
# Detection confidence (0.0-1.0)
confidence_threshold = 0.5
# Game type for optimized detection
game = fortnite
# Segment timing
padding_before = 4.0
padding_after = 2.0
merge_threshold = 3.0
[encoding]
shorts_width = 1080
shorts_height = 1920
quality = 20
max_duration = 60| Game | Flag | Detection Region |
|---|---|---|
| Fortnite | --game fortnite |
Top-right kill feed |
| Valorant | --game valorant |
Center kill confirmation |
| CS2 | --game csgo2 |
Top-right killfeed |
| Overwatch | --game overwatch |
Center elimination popup |
| Apex Legends | --game apex |
Top-right kill feed |
| Class | Description |
|---|---|
KILL |
Standard elimination |
HEADSHOT |
Headshot indicator |
ASSIST |
Assist notification |
DOWN |
Enemy knocked (BR games) |
MULTI_KILL |
Double/triple/quad kills |
CLUTCH |
1vX clutch situations |
ACTION |
High-action moments |
| Document | Description |
|---|---|
| ๐ Getting Started | Quick start guide |
| ๐ API Reference | Complete API documentation |
| ๐ง Configuration | Configuration options |
| โ FAQ | Frequently asked questions |
Contributions are welcome! Please read our Contributing Guidelines before submitting PRs.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See also: Code of Conduct | Security Policy
- {{COMPLETED_FEATURE_1}}
- {{COMPLETED_FEATURE_2}}
- {{PLANNED_FEATURE_1}}
- {{PLANNED_FEATURE_2}}
- {{PLANNED_FEATURE_3}}
See the open issues for a full list of proposed features and known issues.
- ๐ง Email: {{SUPPORT_EMAIL}}
- ๐ป Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ Wiki: GitHub Wiki
Distributed under the GPL-3.0 License. See LICENSE for more information.
- {{ACKNOWLEDGMENT_1}}
- {{ACKNOWLEDGMENT_2}}
- {{ACKNOWLEDGMENT_3}}