Home

Awesome

FinalRip

a distributed video processing tool, based on FFmpeg and VapourSynth

CI-test golangci-lint Docker Build CI Release CircleCI

Architecture

FinalRip

We cut the original video into multiple clips, and then process each clip in parallel in queue order. After all clips are processed, we merge them into the final video.

Preparations

Quick Deployment

edit Line 19 to your LAN IP address

docker-compose -f deploy/docker-compose/lite/docker-compose.yml up -d

It will run all containers in a single host, then open http://localhost:8989 in your browser to access the dashboard, open http://localhost:8080 to access the Asynq monitor.

Start

Dashboard

We use this container as the base image, which contains FFmpeg, VapourSynth, PyTorch...

So in the dashboard, we can select a compatible script to process the video!

Distributed Deployment

Deploy the system in a distributed way, you can refer to the docker-compose directory for more details.

first, run docker-compose-base.yml to start the basic services, and open Consul dashboard, add a K/V pair with key finalrip.yml and value is the content of finalrip.yml -- or your own configuration file

then, run docker-compose-server.yml to start the dashboard, server, cut worker, and merge worker services

finally, run docker-compose-encode.yml to start the encode worker services, we can deploy multiple encode workers in different hosts to speed up the encoding process

Note: we suggest that deploy oss service, cut & merge worker in the same host

Configuration

Override the default configuration by setting:

Environment variables >> Config File / Remote Config File (Consul)

Special Env Variables:

A new script?

In vs-playground, we provide the same environment as the encode worker, so you can develop and test your script in the playground.

For Advanced User

Build

make all
make pt

make pt-rocm for AMD GPU

Reference

License

This project is licensed under the GPL-3.0 license - see the LICENSE file for details.