Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoopingVid

Desktop application for seamless video looping, audio mastering, and visual editing. Built with Electron, React, and FFmpeg.

Features

🔁 Seamless Video Loop

  • Loop short videos to any target duration (1 min to 24 hours)
  • Loop styles: Normal, Crossfade, Ping-pong
  • Auto-detect optimal loop points with quality scoring
  • Trim start/end, mute/fade audio
  • Output presets: YouTube 1080p, Shorts 9:16, Square, 4K Wallpaper
  • Batch export multiple videos

🎛️ Audio Mastering

  • Loudness analysis (LUFS, True Peak, LRA)
  • Waveform visualization + beat detection
  • 3-band EQ (Bass / Mid / Treble)
  • Compressor, De-Hum, Noise Gate, High/Low Pass Filter
  • Loudness normalize (target LUFS)
  • Hard limiter, Fade in/out
  • Presets: Streaming Safe, Loud Social, Podcast, Background
  • Export: WAV, MP3, M4A

🎬 Video Editor

  • Combine video/image + audio + effects into one video
  • Gallery slideshow with Ken Burns + transitions
  • Multi-track audio mixer (Main + BGM + Voice + SFX)
  • Audio spectrum visualizer (Bar/Wave) synced to music
  • Bass-reactive effects (shake/pulse)
  • Particle overlays (snow, flowers, fog)
  • Auto lyrics from LRC/SRT/text or AI transcription (Groq Whisper)
  • Live canvas editor: drag & resize spectrum, text, particles, lyrics
  • Plugin system for custom particle effects
  • Export queue for batch rendering
  • Preset save/load, auto-save & reset

📋 Additional

  • Render history with filter and delete
  • Drag & drop media files
  • Gallery thumbnail preview
  • Settings page (API keys)
  • Help documentation

Tech Stack

  • Desktop: Electron 42
  • Frontend: React 19, Vite 8, TypeScript
  • Backend: Node.js HTTP server (no framework)
  • Rendering: FFmpeg (bundled)
  • Database: SQLite (optional) + JSON fallback
  • AI: Groq Whisper API for audio transcription

Quick Start

Prerequisites

  • Node.js 18+
  • FFmpeg binary (bundled or in PATH)

Development

# Clone
git clone https://github.com/asrocia/loopingvid.git
cd loopingvid

# Install dependencies
npm install --no-optional
cd frontend && npm install && cd ..

# Copy FFmpeg binaries to bin/windows/ (or bin/macos/ or bin/linux/)
# See electron/resources/bin/windows/README.md

# Start development (API + Frontend + Electron)
npm run dev

Available Scripts

Script Description
npm run dev Start all (API + Vite + Electron)
npm run dev:api Start backend API only
npm run dev:web Start frontend Vite dev server
npm run electron:dev Start Electron shell only
npm run build:web Build frontend for production
npm run prepare:build Package backend + binaries for distribution
npm run electron:build Build installer (.exe)
npm run smoke:api Run API smoke tests
npm run smoke:render Run render smoke tests

Build Installer

npm run prepare:build
npm run build:web
npm run electron:build

Output: release/ folder with NSIS installer.

Project Structure

loopingvid/
├── backend/            # Node.js API server
│   ├── server.mjs
│   ├── routes.mjs
│   ├── loop-engine.mjs
│   ├── audio-engine.mjs
│   ├── editor-engine.mjs
│   ├── lyrics-engine.mjs
│   ├── transcribe-engine.mjs
│   ├── plugin-loader.mjs
│   ├── queue-runner.mjs
│   ├── db.mjs
│   └── ...
├── frontend/           # React + Vite
│   └── src/
│       ├── pages/
│       ├── components/ui/
│       ├── lib/
│       └── types/
├── electron/           # Electron shell
│   ├── main.mjs
│   ├── preload.cjs
│   └── resources/
├── plugins/            # User plugins (particle overlays)
├── tools/              # Dev scripts & smoke tests
└── bin/                # FFmpeg binaries

Plugin System

Create custom particle effects by adding a folder in plugins/:

plugins/rain/
├── manifest.json
└── rain.mp4
{
  "name": "Rain",
  "type": "particle",
  "file": "rain.mp4",
  "author": "Your Name"
}

API Endpoints

Method Path Description
GET /api/health Health check + FFmpeg status
POST /api/loop/start Start async loop render
POST /api/loop/render Sync loop render
POST /api/mastering/render Master audio file
POST /api/editor/start Start async editor render
POST /api/editor/preview Render 10s preview
POST /api/transcribe AI audio transcription
GET /api/history Render history
GET /api/plugins List installed plugins
GET /api/queue Export queue status

License

MIT

Author

EvadersFacebook

About

Electron desktop app for seamless video looping, audio mastering, AI lyrics transcription, and FFmpeg-based video editing. - Topics: electron, react, ffmpeg, video-editor, audio-mastering, video-looping, desktop-app, whisper

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages