Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Transcoder

Upload a video, get HLS streams in 360p / 720p / 1080p with hover thumbnails.

Watch the demo

Stack

  • Web — Next.js (apps/web)
  • API — Express, uploads + serving (apps/api)
  • Worker — FFmpeg transcoding + thumbnails (apps/worker)
  • DB — Neon Postgres + Drizzle (packages/db)
  • Queue — BullMQ + Upstash Redis (packages/queue)

Setup

pnpm install

Create a .env in the repo root:

DATABASE_URL=postgresql://...
REDIS_URL=rediss://...

Push the schema:

cd packages/db && npx drizzle-kit push

FFmpeg binaries are bundled in tools/ffmpeg/bin — nothing to install. (Or set FFMPEG_PATH to use your own.)

Run

pnpm run dev

How It Works

  1. Upload at /upload
  2. Worker generates thumbnail sprite + VTT
  3. Transcodes to HLS (360p / 720p / 1080p)
  4. Watch at /videos/{id}, delete via the ⋮ menu

About

youtube like video transcoder

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages