Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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