/crispy

Crispy is a machine-learning algorithm to make video-games montages efficiently. It uses a neural network to detect highlights in the video-game frames

Primary LanguagePythonMIT LicenseMIT

Crispy

Crispy is a machine-learning algorithm to make video-games montages efficiently. It uses a neural network to detect highlights in the video-game frames.
Tech

Supported games

Currently it supports Valorant, Overwatch and Valorant-review (a custom mode to see only the moments you're alive in a game).

Usage

Releases

Releases are available for windows and linux.

Setup

Firstly, you will have to install ffmpeg (ffprobe is also required).
Once unzip, you can run the setup.[sh|bat] file.
Then you can add your videos in the mp4/mp3 format in the resources folder.

Configuration

You can configure the algorithm in the settings.json file.
It's where you'll change the game.
config example:

{
    "neural-network": {
        "confidence": 0.8
    },
    "clip": {
        "framerate": 8,
        "second-before": 3,
        "second-after": 3,
        "second-between-kills": 5
    },
    "game": "valorant"
}

Run

You can now run the application with the run.[sh|bat] file.

Frontend explanation

The frontend is a web-application that allows you to add options to the Crispy algorithm.
It has 5 pages:

  • clips
  • cuts
  • music
  • effects
  • result

Clips

In the clips page, you can see the list of your videos.
You can rearrange them by dragging and dropping them.
Select the video you don't want in the montage and add customs effects for a single clip.
Once you've made your selection, you can click on generate cuts to create the cuts.

Cuts

In the cuts page, you can see the list of your cuts.
You can hide the one you don't want

Music

In the music page, you can see the list of your music.
You can hide the one you don't want and you can you can rearrange them by dragging and dropping them.\

Effects

In the effects page, you can see the list of your effects.
Those effects are applied to the whole video.
Yet the clips' effects override the global effects.

Result

In the result page, you can see the result of your montage.

Demo

live demo
youtube demo

Contributing

Every contribution is welcome.

Setup pre-commit

First install pre-commit by running:

pip install pre-commit

Then to install the git hook run:

pre-commit install -t pre-commit -t commit-msg

Now pre-commit will run on every git commit.

Start

  • cd frontend && npm install && npm run dev
  • pip install -r backend/requirements.txt && python backend/src/app.py