A simple web application to extract frames from videos and enhance them to create professional thumbnails with sports broadcast styling.
- Extract multiple frames evenly distributed throughout your video
- Select your preferred frame to use as a thumbnail
- Apply various enhancement effects and broadcasting overlay templates
- Download in high resolution (1280x720)
- Works 100% offline - no internet connection needed
The app offers several enhancement styles:
- 10 in 7 Record: Blue sidebar with "GET 'EM INSIDE" logo and "10 IN 7" headline
- Race 8: Racing broadcast style with price box
- Debut Winner: Elegant overlay with transparent blue effect
- Simon Marshall: Breaking news style with red header and ticker bar
- Odds: Large odds display with GETON branding
- Sword: Transparent overlay with "PUT 'EM TO THE SWORD" text
- Same Game: NRL style with "SAME GAME MULTI" footer
Each template includes:
- Broadcasting-quality overlays
- Professional typography
- Timer display (0:44)
- Proper branding elements
-
Clone the repository
-
Install dependencies:
npm installThis will install all required packages including:
- express: Web server framework
- multer: File upload handling
- sharp: Image processing library
- axios: HTTP client
- dotenv: Environment variable management
-
Make sure FFmpeg is installed on your system (see Requirements section)
-
Start the server:
node server.js -
You should see this output:
🚀 Server running at http://localhost:3001 -
Open your browser and navigate to:
http://localhost:3001 -
If you want to run the server on a different port, you can change the
portvariable inserver.js -
To stop the server, press
Ctrl+Cin the terminal where it's running
- Node.js (v12 or later)
- FFmpeg must be installed on your system
- On macOS:
brew install ffmpeg - On Ubuntu/Debian:
apt install ffmpeg - On Windows: Download from FFmpeg website
- On macOS:
- Upload a Video: Click on the file input and select a video file (mp4, mov, avi, mkv, webm)
- Extract Frames: Click "Upload Video" to process the video
- Select a Frame: Browse through the extracted frames and click on one to select it
- Choose a Style: Select one of the broadcasting style templates
- Enhance the Frame: The selected template will be applied to your frame
- Download: Click "Download Thumbnail" to save your enhanced image
- HTML/CSS/JavaScript: Dark-themed responsive interface
- Modern CSS: Flexbox-based layout for the enhancement options
- Client-side JavaScript: Handles file upload, frame selection, and enhancement requests
- Express.js: Fast, unopinionated web framework for Node.js
- Multer: Middleware for handling multipart/form-data, primarily used for uploading files
- FFmpeg: Cross-platform solution to record, convert, and stream audio and video
- Extracts frames at a rate of 4 frames per second
- Validates video files to ensure they contain video streams
- Sharp: High-performance Node.js image processing library
- Creates professional overlays using SVG templates
- Composites images with text and graphical elements
- Automatically handles image format conversion and optimization
- Frame extraction time depends on video length and quality
- The app can handle videos up to 100MB in size
- Enhancement operations typically take less than 1 second
- Image processing is done entirely on the server, no client-side processing required
MIT License