Skip to content

Exsellent/VideoText-Maker-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 VideoText Maker — Ultra‑Lightweight Text‑to‑Video Engine

CI Python License

Tech stack badges

Flask edge-tts Pillow imageio-ffmpeg gunicorn


✨ Overview

VideoText Maker is a blazing‑fast, low‑RAM text‑to‑video generator designed for cloud environments, CI pipelines, and lightweight VPS setups.
It produces narrated videos using edge‑tts, Pillow, and FFmpeg — without heavy frameworks like MoviePy.

This build is engineered for extreme efficiency:

  • ⚡ ~30MB RAM usage (instead of ~500MB)
  • 🚀 Zero in‑memory video buffers
  • 🔥 Stream‑based pipeline
  • 🧩 Perfect for Railway, Render, Fly.io, VPS, CI/CD

🚀 Key Features

  • 🎙️ High‑quality TTS via edge‑tts (Microsoft neural voices)
  • 🖼️ Text‑to‑frame rendering using Pillow
  • 🎞️ Video assembly via FFmpeg (chunked, stream‑safe)
  • 🧠 Low‑RAM architecture — no MoviePy, no numpy
  • 🌐 Web UI included (Flask)
  • 📦 Cloud‑ready (Procfile included)

🏗️ Architecture

A fully streaming pipeline:

Text → TTS → PNG frames → MP4 chunks → Final video

Components

  • edge‑tts (CLI)
    Stable subprocess‑based TTS generation.

  • Pillow
    Lightweight frame rendering without numpy overhead.

  • FFmpeg
    Chunked MP4 assembly + final concat (no re‑encoding).


📂 Project Structure

.
├── app.py
├── requirements.txt
├── templates/
│   └── index.html
├── static/
├── output/
└── temp/

⚙️ Installation

🐧 Linux / WSL

sudo apt update
sudo apt install ffmpeg

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

🪟 Windows

  1. Install:

    • Python 3.10+
    • FFmpeg (add to PATH)
  2. Verify:

ffmpeg -version
  1. Install dependencies:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

🍎 macOS

brew install ffmpeg

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

▶️ Run Locally

python app.py

Open in browser:

http://localhost:5000

🌐 Deployment (Railway / Heroku)

Procfile

web: python app.py

For production Flask:

web: gunicorn app:app

📉 Why Not MoviePy?

MoviePy:

  • ❌ ~500MB RAM
  • ❌ Slow rendering
  • ❌ Unstable in containers

This project:

  • ✅ ~30MB RAM
  • ✅ FFmpeg streaming
  • ✅ CI/CD‑friendly
  • ✅ Zero heavy dependencies

🧠 Implementation Highlights

  • Audio and video generation are fully separated
  • No large in‑memory buffers
  • Subprocess‑based FFmpeg pipeline
  • Stream‑copy concatenation (no re‑encoding)
  • Designed for low‑RAM cloud environments

🔧 Roadmap

  • Parallel TTS generation
  • Subtitle (SRT) support
  • Improved Web UI
  • Docker image

📜 License

MIT


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages