Giter Site home page Giter Site logo

fluentcut's Introduction

FluentCut

Better Open Video Editor

Our goals

  1. Core: Performance-focused video editor timeline editing and rendering foundation system.
  2. Application: Multiple GUIs and binary-size-sensitive builds focused on different practical usages, with Best UI and UEX.
  3. Feature plugins: provide optional ready-to-use features provided by third-party open libs as many as possible.

How to start

# pull submodule code
git submodule init
git submodule update

Technical Choice

Build

  1. Although currently we focus on Windows 10 22h2+, we should not break the probability of cross-platform support. So if any feature uses windows api, please write a wrapper for that.
  2. Main Module shall be built with CMAKE, and targeting to MSVC 2019.
  3. GUI Module shall be built with QT. QMAKE usages is TBD.
  4. Scripts are recommended to be written in Python; Bash is OK; Powershell scripts must come with a translated copy in python or bash.

Render API

  • For codes in this repo, use vulkan.
  • For the compatibility with third party renderer, FluentCut shall include ANGLE(with Vulkan Backend) and swiftshader(with Vulkan backend)

MultiMedia Encoder/Decoder

  • ffmpeg (msvc build, nvenc, nvdec, qsv, dxva, vaapi enabled)

GUI

  • Use QT, but only LGPL part.

IPC & Message System (TBD)

  • TBD: GRPC? HTTP? Or custom one?
  • How to share texture to external usage?

Event loop & Http server

  • use ASIO in side thread.

Plugin Support

  • Different APIs for import/export/timeline edit/render respectively.
  • An easy script system based on quickJS.
  • plugin support should be implemented both in quickJS and C++ dynamic lib.

third-party Feature

Because of license and binary size issue, all modules shall be able to turn off when build.

  • 2d render and lottie animation: skia
  • Audio Effects: custom VST3 host
  • tts: system default or third party.
  • AI plugins:
    • tts
    • speech recognize
    • human beautifier
    • txt2img: stable diffusion web ui

TODO:

Main Module

  1. model, render and data sync between.
  2. HDR support.
  3. reader cache.
  4. performance monitor.
  5. API/CLI

GUI Application

  1. i18n support.
  2. License presenter.

fluentcut's People

Contributors

ufolyah avatar

Stargazers

hammerflyfly avatar

Watchers

 avatar

Forkers

hammerflyfly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.