Skip to main content

video editing software

Project description

https://img.shields.io/badge/License-MIT-green.svg https://img.shields.io/badge/code_quality-pylint_10/10-green https://img.shields.io/badge/tests-pass-green

Description

This video editing software has a graphical interface powered by qtpy (run cutcutcodec-qt). It has been designed for speed and to implement some effects that are hard to find elsewhere. The kernel is written in python and C, so it’s easy to integrate it in your own project (module cutcutcodec.core). Although it allows you to fine-tune many parameters, it’s smart enough to find the settings that are best suited to your project.

This software is light, fast and highly configurable for the following reasons:

  1. Based on ffmpeg, this software supports an incredible number of formats and codecs.

  2. This software allows editing the assembly graph. Compared to a timeline, this representation permits to do everything.

  3. This software doesn’t export the final video directly from the graphic interface. Instead, it generates a python script. You can edit this script yourself, giving you infinite possibilities!

  4. A complete test benchmark guarantees an excelent kernel reliability.

  5. Powered by torch, this software efficiently exploits the CPU and GPU in order to make it very fast.

  6. Video export is performed without a graphical interface, releasing a large part of computer resources to speed up export.

  7. This software is able to optimize the assembly graph in order to limit calculation waste.

An example of the cutcutcodec GUI.

Features

Audio

  • General properties
    1. Supports a large number of channels (mono, stereo, 5.1, 7.1, …) with all sampeling rate.

    2. Automatic detection of the optimal sample frequency.

  • Generation
    1. White-noise generation.

    2. Generate any audio signal from any equation.

  • Filters
    1. Cutting, translate and concatenate.

    2. Add multiple tracks.

    3. Arbitrary equation on several channels of several tracks. (dynamic volume, mixing, wouawoua, …)

    4. Finite Impulse Response (FIR) invariant filter. (reverb, equalizer, echo, delay, volume, …)

Video

  • General properties
    1. Unlimited support of all image resolutions. (FULL HD, 4K, 8K, …)

    2. No limit on fps. (60fps, 120fps, …)

    3. Automatic detection of the optimal resolution and fps.

    4. Support for the alpha transparency layer.

    5. Floating-point image calculation for greater accuracy.

  • Generation
    1. White-noise generation.

    2. Generate any video signal from any equation.

    3. Mandelbrot fractal generation.

  • Filters
    1. Cutting, translate and concatenate.

    2. Overlaying video tracks (with transparency control).

    3. Apply an arbitrary equation one several video streams.

Installation

Dependencies

cutcutcodec has hard dependency on the ffmpeg package (version >= 4.0). You should install it first, please refer to the FFmpeg download page.

In many cases, these commands should work:

$ sudo apt install ffmpeg

Although it is installed automatically, it is better to install av manually to avoid redundancy with ffmpeg. Please refer to the PyAv installation guide.

If you have a GPU, please install CUDA or ROC then follow the PyTorch installation guide. Without CUDA or ROC, the software is not able to use the GPU (CPU only).

Installation of the lastest development version

To install cutcutcodec from Framagit source, clone cutcutcodec using git and install it using pip:

git clone https://framagit.org/robinechuca/cutcutcodec.git
cd cutcutcodec/
pip install -e ./[optional]
$SHELL
cutcutcodec-test

Installation of the stable version

To install cutcutcodec using PyPI, just type this in a terminal:

$ pip install cutcutcodec[gui]

Running

In a terminal, just type cutcutcodec-qt to start the GUI and cutcutcodec-test for the test banchmark.

Example

In this example we open a video file, add video noise, add audio A and C note, select the subclip between t=0s and t=10s, and write the result to a new file:

from cutcutcodec.core.filters.audio.subclip import FilterAudioSubclip
from cutcutcodec.core.filters.video.add import FilterVideoAdd
from cutcutcodec.core.filters.video.equation import FilterVideoEquation
from cutcutcodec.core.filters.video.subclip import FilterVideoSubclip
from cutcutcodec.core.generation.audio.equation import GeneratorAudioEquation
from cutcutcodec.core.generation.video.noise import GeneratorVideoNoise
from cutcutcodec.core.io.read_ffmpeg import ContainerInputFFMPEG
from cutcutcodec.core.io.write import ContainerOutputFFMPEG

with ContainerInputFFMPEG("cutcutcodec/examples/video.mp4") as container:
    (transparent,) = FilterVideoEquation(container.out_streams, "b0", "g0", "r0", "0.5").out_streams
    (noise,) = GeneratorVideoNoise().out_streams
    (video,) = FilterVideoAdd([transparent, noise]).out_streams
    (video_trunc,) = FilterVideoSubclip([video], 0, 10).out_streams
    (note_a,) = GeneratorAudioEquation("sin(2*pi*440*t)", "sin(2*pi*523.25*t)").out_streams
    (note_a_trunc,) = FilterAudioSubclip([note_a], 0, 10).out_streams
    ContainerOutputFFMPEG(
        [video_trunc, note_a_trunc],
        "final.mkv",
        [
            {"encodec": "libx264", "rate": 30, "shape": [720, 1080], "options": {"crf": "23"}},
            {"encodec": "libvorbis", "rate": 44100},
        ],
    ).write()

What’s new ?

For the complete list of changes, refer to the git commits.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cutcutcodec-1.0.tar.gz (178.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page