Package: cutcutcodec
DescriptionThisvideo editing softwarehas a graphical interface powered by qtpy (runcutcutcodec-gui).
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 (modulecutcutcodec.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 islight,fastandhighly configurablefor the following reasons:Based on ffmpeg, this software supports an incredible number of formats and codecs.This software allows editing the assembly graph. Compared to a timeline, this representation permits to do everything.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!A complete test benchmark guarantees an excelent kernel reliability.Powered bytorchand written in C, this software efficiently exploits the CPU and GPU in order to make it very fast.Video export is performed without a graphical interface, releasing a large part of computer resources to speed up export.This software is able to optimize the assembly graph in order to limit calculation waste.The code is parallelised to take advantage of all the CPU threads, making it extremely fast.Quick StartInstallationCutCutCodec is based onffmpegandpytorch, so please follow thecutcutcodec installation guide.You can use the following command to install everything automatically (not recommended, it’s better to follow the guide).pip install cutcutcodec[gui]RunningFor a very complete description, please refer tothe documentation.In a terminal, just typecutcutcodec-guito start the GUI, it is possible to access thecliwith:python -m cutcutcodec --helpFeaturesAudioGeneral propertiesSupports a large number of channels (mono, stereo, 5.1, 7.1, …) with all sampeling rate.Automatic detection of the optimal sample frequency.GenerationWhite-noise generation.Generate any audio signal from any equation.FiltersCutting, translate and concatenate.Add multiple tracks.Arbitrary equation on several channels of several tracks. (dynamic volume, mixing, wouawoua, …)Finite Impulse Response (FIR) invariant filter. (reverb, equalizer, echo, delay, volume, …)Hight quality anti aliasing low pass filter (based on FIR).VideoGeneral propertiesUnlimited support of all image resolutions. (FULL HD, 4K, 8K, …)No limit on fps. (60fps, 120fps, …)Automatic detection of the optimal resolution and fps.Support for the alpha transparency layer.Floating-point image calculation for greater accuracy.GenerationWhite-noise generation.Generate any video signal from any equation.Mandelbrot fractal generation.FiltersCutting, translate and concatenate.Overlaying video tracks (with transparency control).Apply an arbitrary equation one several video streams.ExampleIn 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:fromcutcutcodec.core.filters.audio.subclipimportFilterAudioSubclipfromcutcutcodec.core.filters.video.addimportFilterVideoAddfromcutcutcodec.core.filters.video.equationimportFilterVideoEquationfromcutcutcodec.core.filters.video.subclipimportFilterVideoSubclipfromcutcutcodec.core.generation.audio.equationimportGeneratorAudioEquationfromcutcutcodec.core.generation.video.noiseimportGeneratorVideoNoisefromcutcutcodec.core.io.read_ffmpegimportContainerInputFFMPEGfromcutcutcodec.core.io.writeimportContainerOutputFFMPEGwithContainerInputFFMPEG("cutcutcodec/examples/video.mp4")ascontainer:(trans,)=FilterVideoEquation(container.out_streams,"b0","g0","r0","a0/2").out_streams(noise,)=GeneratorVideoNoise().out_streams(video,)=FilterVideoAdd([trans,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_streamsContainerOutputFFMPEG([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 thegit commits.1.0.1Add a command line interface.Compiling dynamic expressions in C.1.0.2Add support forffmpeg 6.Able to compileatanfunction.Handling of non-square pixel readings.1.0.3Improved ergonomics of the “Entry Tabs” and “Export” window.Speed-up codec/encoder/muxer tests of compatibility by a factor 10.