À propos du projet
FreeCut est un éditeur vidéo multi-piste basé sur navigateur, sous licence MIT. Il ne nécessite aucune installation et ne téléverse pas les médias : projets et médias restent locaux, tandis que le montage, la prévisualisation, l'analyse, la transcription, la génération IA et l'export s'exécutent dans le navigateur via WebGPU, WebCodecs, Web Workers, OPFS et la File System Access API. Les projets, métadonnées de médias liés, vignettes, formes d'onde, ressources IA générées, transcriptions, découpes de scènes et caches sont écrits comme fichiers simples dans un dossier d'espace de travail choisi sur le disque.
Montage et timeline
- Timeline multi-piste prenant en charge les éléments vidéo, audio, texte, image, forme, masque, Lottie et clip composé.
- Plusieurs timelines par projet sous forme de Séquences avec onglets, unifiées avec les clips composés.
- Montage audio/vidéo lié avec outils de division, jonction, ripple, rolling, slip, slide et étirement de vitesse.
- Transitions centrées sur la coupe avec redimensionnement en direct, alignement, ancrage temporel source et superpositions de prévisualisation.
- Contrôles de mute/visibilité/verrouillage des pistes, badges de synchronisation liés, push/pull de pistes et workflows de fermeture d'espace.
- Vignettes de pellicule, formes d'onde stéréo, guides d'alignement, marqueurs, timecode et annuler/rétablir.
- Moniteur source avec marques in/out, destinations de patch, insertions et écrasements.
- Modèles de projet, correspondance automatique canvas/FPS depuis le premier média, raccourcis clavier configurables.
Prévisualisation et lecture
- Prévisualisation en temps réel avec transformation, recadrage, corner-pin, masque et gizmos de groupe.
- Lecture précise à l'image via une horloge personnalisée et un runtime de composition.
- Superpositions de scrubbing rapide, préchauffage du décodeur, qualité de prévisualisation adaptative et préchauffage des sources.
- Panneaux d'édition two-up et four-up pour les opérations ripple, rolling, slip et slide.
- Scopes couleur GPU : waveform, vectorscope et histogramme.
- Bus master de projet et volume moniteur/appareil séparés.
Audio
- Volume de clip, fondus audio, faders de piste, fader de bus master et vumètres LED stéréo.
- Décalage de hauteur par clip en demi-tons/cents avec prévisualisation SoundTouch.
- Égaliseurs de clip et de piste, dont un panneau EQ flottant compact à six bandes.
- Chemins audio de hauteur, EQ, fondus, volume et transitions préservés en prévisualisation et à l'export.
Effets, masques et compositing
- Effets visuels et compositing WebGPU-first, avec replis lorsque c'est possible.
- Flou : gaussien, box, motion, radial, zoom.
- Couleur : luminosité, contraste, exposition, décalage de teinte, saturation, vibrance, température/teinte, niveaux, courbes, roues chromatiques, gradient map, LUT (.cube), niveaux de gris, sépia, inversion.
- Distorsion : pixelisation, RGB split, twirl, wave, bulge/pinch, kaléidoscope, miroir, verre cannelé, verre ondulé, mosaïque de verre, droste.
- Stylisation : vignette, grain de film, netteté, postérisation, glow, détection de contours, scanlines, demi-teinte, art ASCII, glitch couleur, glitch par blocs, VHS, CRT, encre, tri de pixels.
- Keying : chroma key avec tolérance, douceur et suppression de spill.
- 25 modes de fusion dont multiply, screen, overlay, soft light, difference, hue, saturation, color et luminosity.
- Masques de clip et tracés au stylo avec transformations géométriques animables.
- Sélecteur de couleur avec saisie hex et alpha, plus une pipette intégrée avec loupe.
Transitions
- Transitions fade, wipe, slide, flip 3D, clock wipe et iris avec variantes directionnelles.
- Dissolve, sparkles, glitch, light leak, pixelate, aberration chromatique et flou radial.
- Durée, alignement, ancrage source réglables et repli Canvas 2D pour les chemins sans WebGPU.
Animation par keyframes
- Éditeur de graphes Bezier, dopesheet, vue divisée et superpositions multi-courbes.
- Préréglages d'easing (linear, ease-in/out, cubic-bezier, spring) avec éditeur en prévisualisation live et préréglages personnalisés enregistrés.
- Modificateurs de mouvement procéduraux (drift, sway, breath, spin, shake) évalués au rendu, avec bake en keyframes en un clic.
- Texte animé : animation par caractère, par mot et par ligne.
- Mode auto-keyframe, mise en miroir des tangentes, accordéons de propriétés et sélection au marquee.
- Propriétés animées de transformation, recadrage, masque, texte, effet et couleur.
Médias et import
- Import de vidéos, audio, images, GIF, SVG, animations Lottie et ressources générées sans copier les originaux.
- Édition des animations Lottie importées (.json et .lottie) : remappage des couleurs et thèmes, édition du texte, ajustement des slots de valeur avec prévisualisation live.
- Décodage Apple ProRes pour l'import, la prévisualisation et les vignettes, y compris des variantes que les navigateurs ne décodent pas nativement.
- Génération de proxys, extraction de vignettes, mise en cache des formes d'onde et reliaison des médias.
IA locale et analyse
- Fonctionne sur l'appareil dans le navigateur ; rien n'est téléversé.
- Transcription sur l'appareil avec le moteur Parakeet (repli Whisper) et éléments de texte de sous-titres générés.
- Sous-titrage IA avec fournisseurs vision-langage locaux et cadence d'échantillonnage configurable.
- Détection de scènes avec analyse de contenu rapide par histogramme ou précise à l'image, et vérification optionnelle par modèle.
- Navigateur de scènes pour rechercher dans les médias sous-titrés et réutiliser les moments détectés.
- Voix off locales par synthèse vocale Kokoro.
- Génération musicale locale MusicGen avec préréglages, progression et annulation.
- Cache de modèles local et contrôles de déchargement dans les paramètres.
Projets et stockage
- Persistance du dossier d'espace de travail via la File System Access API.
- Sélecteur multi-espaces de travail avec gestion des espaces connus.
- Projets stockés comme fichiers simples sur disque, avec migration depuis l'ancien stockage navigateur.
- Flux de suppression douce, restauration, corbeille vide et suppression définitive des projets.
- Export/import de bundles ZIP de projet avec schémas validés par Zod.
- Sauvegarde automatique, vignettes de projet, mise en miroir du cache d'espace de travail et nettoyage des orphelins.
Export
- Rendu dans le navigateur via WebCodecs et chemins de rendu assistés par workers.
- Export de n'importe quelle séquence, pas seulement de la timeline principale.
- Conteneurs vidéo : MP4, WebM, MOV, MKV.
- Codecs vidéo : H.264, H.265, VP8, VP9, AV1 (là où le navigateur fournit un encodeur).
- Formats d'export audio : MP3, AAC, WAV/PCM.
- Sous-titres : désactivés, incrustés, fichier sidecar ou piste soft intégrée (selon le conteneur).
- Préréglages de qualité de bas à ultra, avec vérifications de capacités à l'exécution et replis.
Prise en main
Prérequis : Node.js 22+ recommandé, npm 11+ et un navigateur Chromium moderne. Clonez le dépôt, lancez npm install et npm run dev, puis ouvrez http://localhost:5173 dans Chrome, Edge, Brave ou Arc. Le workflow : choisir un dossier d'espace de travail, créer un projet, importer des médias en glissant les fichiers dans la médiathèque, glisser les clips sur la timeline et monter, puis exporter directement depuis le navigateur.
Prise en charge des navigateurs
Chrome ou Edge 113+ est recommandé. FreeCut dépend de WebGPU, WebCodecs, OPFS et de la File System Access API, donc un navigateur Chromium moderne est requis pour le workflow complet. Brave peut désactiver la File System Access API ; elle peut être activée via brave://flags/#file-system-access-api.
Stack technique
React 19 et TypeScript, Vite+ pour dev/build/lint/format/check/tests, Vite avec @vitejs/plugin-react, WebGPU pour les effets, le compositing, les transitions, les masques, les scopes et l'accélération IA, WebCodecs pour les pipelines de prévisualisation et d'export, File System Access API et OPFS pour la persistance et les caches, Zustand avec Zundo pour l'état et annuler/rétablir, TanStack Router pour un routage typé basé sur les fichiers, Tailwind CSS 4 avec Radix UI et composants de style shadcn, Mediabunny pour le décodage média, les métadonnées et l'encodage audio, Transformers.js pour les modèles IA locaux dans le navigateur, Kokoro.js pour la synthèse vocale WebGPU, et Web Workers et AudioWorklets pour le traitement média hors thread principal.
Développement
La plupart des commandes sont des scripts npm propulsés par vite-plus (vp) : npm run dev (port 5173), build, preview, perf, lint (Oxlint), format (Oxfmt), test:run, verify (porte complète incluant vérifications d'architecture et de code mort, contrats headless Node, régression Chrome sur harnais construit, opérations d'édition publiques et rendu média/audio généré), headless:test et routes. Les effets sur GPU réel restent une porte explicite opérateur/release car la CI hébergée des PR ne fournit pas d'adaptateur WebGPU portable. L'arborescence src/ est organisée en features/ (modules UI destinés à l'utilisateur), runtime/ (moteurs de lecture et de rendu), infrastructure/ (adaptateurs plateforme pour GPU, analyse, audio, navigateur, stockage, vignettes), shared/ (primitives agnostiques du framework et état transversal), plus app/, components/, config/, routes/ et types/.
Contribution et licence
Les priorités actuelles sont les corrections de bugs, puis les améliorations de performance pour l'éditeur live, la lecture et les exports, puis les nouvelles fonctionnalités discutées au préalable. Les bugs peuvent être signalés via les issues GitHub avec étapes reproductibles, version du navigateur et captures d'écran ou enregistrements ; les rapports de performance doivent inclure le workflow, les détails des médias sources, la taille du projet et le moment où les ralentissements commencent. Les idées de fonctionnalités sont discutées sur Discord ou GitHub Discussions avant implémentation. Sous licence MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.