Skip to content

XAOSTECH/vidcom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

vidcom

GitHub repo GitHub release License

CI Status Issues Pull Requests Stars Forks

Last Commit Repo Size Code Size Contributors

Stability Maintenance


Video Compilations


๐Ÿ“‹ Table of Contents


๐Ÿ” Overview

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.

Why vidcom?

  • 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

โœจ Features

  • ๐ŸŽฎ 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

๐Ÿ“ฅ Installation

Prerequisites

  • NVIDIA GPU with CUDA 11.8+ support
  • FFmpeg 6.0+ with NVENC support
  • ONNX Runtime 1.20+ (bundled)
  • Linux (Ubuntu 22.04+ recommended)

Quick Start

# 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

Building from Source

# 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=0

๐Ÿš€ Usage

Highlight Detection

Detect 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

Batch Processing with Auto-Detection

# 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 unlisted

Manual Manifest Processing

Create 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

Training a Custom Model

  1. Collect training data:
./scripts/collect-training-data.sh videos/ --game fortnite --fps 2
  1. Label frames with LabelImg or CVAT

  2. Train the model:

./scripts/train-highlight-model.sh --data datasets/highlight_detection/data.yaml --epochs 100

โš™๏ธ Configuration

Configuration File

Edit 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

Supported Games

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

Highlight Classes

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

๐Ÿ“š Documentation

Document Description
๐Ÿ“– Getting Started Quick start guide
๐Ÿ“‹ API Reference Complete API documentation
๐Ÿ”ง Configuration Configuration options
โ“ FAQ Frequently asked questions

๐Ÿค Contributing

Contributions are welcome! Please read our Contributing Guidelines before submitting PRs.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

See also: Code of Conduct | Security Policy


๐Ÿ—บ๏ธ Roadmap

  • {{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.


๐Ÿ’ฌ Support


๐Ÿ“„ License

Distributed under the GPL-3.0 License. See LICENSE for more information.


๐Ÿ™ Acknowledgements

  • {{ACKNOWLEDGMENT_1}}
  • {{ACKNOWLEDGMENT_2}}
  • {{ACKNOWLEDGMENT_3}}

โฌ†๏ธ Back to Top

Releases

No releases published

Packages

 
 
 

Contributors