๐ฌ Vidosy - Professional Video Generation Tool
August 27, 2025 ยท View on GitHub
Create stunning videos programmatically with Remotion-powered automation
Vidosy is a powerful, configuration-driven video generation tool that leverages Remotion to create professional-quality videos with minimal effort. Define your video structure in JSON, add your media assets, and let Vidosy handle the rest.
โจ Features
๐ฅ Multi-Media Backgrounds
- Video: MP4, MOV, AVI, MKV, WebM with automatic scaling
- Image: JPG, PNG, GIF, WebP with smart positioning
- Color: Solid color backgrounds with hex codes
- Smart Scaling: Automatic
object-fit: coverfor perfect framing
๐ต Advanced Audio System
- Background Music: Continuous playback with fade in/out effects
- Scene Narration: Individual audio tracks for each scene
- Audio Layering: Simultaneous playback of multiple audio sources
- Volume Control: Independent volume control per audio source
- Timing Control: Precise start time control for scene audio
๐จ Dynamic Scene Management
- Smooth Transitions: Fade in/out animations with scale effects
- Flexible Timing: Configurable scene duration and sequencing
- Text Overlays: Customizable text with positioning and styling
- Scene Composition: Mix and match different background types
โ๏ธ Configuration-Driven
- JSON Configuration: Simple, human-readable video definitions
- Schema Validation: Type-safe configuration with Zod
- Quality Presets: Low, medium, and high quality options
- Multiple Formats: MP4, MOV, AVI output support
๐ Quick Start
1. Installation
# Clone the repository
git clone <repository-url>
cd vidosy
# Install dependencies
npm install
# Build the project
npm run build
2. Create Your First Video
Create a vidosy.json configuration file:
{
"video": {
"width": 1920,
"height": 1080,
"fps": 30,
"duration": 15
},
"audio": {
"background": "background-music.mp3",
"volume": 0.3,
"fadeIn": 2,
"fadeOut": 3
},
"scenes": [
{
"id": "intro",
"duration": 5,
"background": {
"type": "image",
"value": "intro-background.png"
},
"text": {
"content": "Welcome to Vidosy",
"fontSize": 72,
"color": "#ffffff",
"position": "center"
},
"audio": {
"file": "intro-narration.mp3",
"volume": 0.9
}
}
]
}
3. Add Your Assets
Place your media files in the public/ directory:
public/
โโโ background-music.mp3
โโโ intro-background.png
โโโ intro-narration.mp3
4. Generate Your Video
# Using npm script
npm run render
# Using CLI directly
npx vidosy render
# With custom config file
npx vidosy render my-video.json
# With custom output and quality
npx vidosy render -o my-video.mp4 -q high
๐ Configuration Reference
Video Settings
| Property | Type | Description | Default |
|---|---|---|---|
width | number | Video width in pixels | Required |
height | number | Video height in pixels | Required |
fps | number | Frames per second | Required |
duration | number | Total duration in seconds | Required |
Scene Configuration
Background Types
Color Background
{
"background": {
"type": "color",
"value": "#000000"
}
}
Image Background
{
"background": {
"type": "image",
"value": "path/to/image.png"
}
}
Video Background
{
"background": {
"type": "video",
"value": "path/to/video.mp4"
}
}
Text Overlays
{
"text": {
"content": "Your text here",
"fontSize": 64,
"color": "#ffffff",
"position": "center"
}
}
Position Options: top, center, bottom, left, right
Scene Audio
{
"audio": {
"file": "narration.mp3",
"volume": 0.8,
"startTime": 0
}
}
Audio Configuration
Background Music
{
"audio": {
"background": "music.mp3",
"volume": 0.4,
"fadeIn": 2,
"fadeOut": 3
}
}
Properties:
background: Path to background music filevolume: Volume level (0.0 to 1.0)fadeIn: Fade in duration in secondsfadeOut: Fade out duration in seconds
Output Settings
{
"output": {
"format": "mp4",
"quality": "high",
"filename": "my-video.mp4"
}
}
Quality Presets:
low: 1280x720, 24fpsmedium: 1920x1080, 30fpshigh: 1920x1080, 60fps
๐ ๏ธ CLI Commands
Render Command
vidosy render [config] [options]
Arguments:
config: Path to configuration file (default:vidosy.json)
Options:
-o, --output <path>: Output file path-q, --quality <quality>: Video quality (low, medium, high)
Examples:
# Basic render
vidosy render
# Custom config file
vidosy render my-video.json
# Custom output and quality
vidosy render -o output.mp4 -q high
# Full path specification
vidosy render /path/to/config.json -o /path/to/output.mp4
Preview Command
vidosy preview [config]
Note: Preview functionality is coming soon! This will allow you to preview your video composition in the browser before rendering.
๐ Project Structure
vidosy/
โโโ src/
โ โโโ cli/ # Command-line interface
โ โ โโโ commands/ # CLI commands (render, preview)
โ โ โโโ utils/ # CLI utilities
โ โโโ remotion/ # Video composition engine
โ โ โโโ components/ # React components
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ utils/ # Remotion utilities
โ โโโ shared/ # Shared types and schemas
โโโ public/ # Media assets directory
โโโ dist/ # Compiled JavaScript output
โโโ bin/ # CLI executable
โโโ examples/ # Example configurations
๐ฏ Use Cases
Marketing Videos
- Product demonstrations
- Company introductions
- Service showcases
- Promotional content
Educational Content
- Tutorial videos
- Course materials
- Training videos
- Knowledge sharing
Social Media
- Instagram stories
- YouTube intros
- TikTok content
- LinkedIn videos
Business Presentations
- Sales pitches
- Investor presentations
- Team updates
- Client demos
๐ง Development
Prerequisites
- Node.js 18.0.0 or higher
- npm or yarn package manager
Development Setup
# Install dependencies
npm install
# Start development mode
npm run dev
# Build the project
npm run build
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
Available Scripts
| Script | Description |
|---|---|
build | Compile TypeScript to JavaScript |
dev | Start Remotion preview mode |
render | Render video from configuration |
preview | Preview video in browser |
test | Run test suite |
lint | Check code quality |
format | Format code with Prettier |
๐ Supported Formats
Input Media
| Type | Formats | Max Size |
|---|---|---|
| Video | MP4, MOV, AVI, MKV, WebM | 500MB |
| Audio | MP3, WAV, AAC, OGG, M4A | 100MB |
| Images | JPG, JPEG, PNG, GIF, WebP | 50MB |
Output
| Format | Codec | Quality |
|---|---|---|
| MP4 | H.264 | Configurable |
| MOV | H.264 | Configurable |
| AVI | H.264 | Configurable |
๐จ Troubleshooting
Common Issues
"Configuration file not found"
- Ensure your config file exists and has the correct path
- Check file permissions and readability
"Asset file not found"
- Verify all media files are in the
public/directory - Check file paths in your configuration
- Ensure file extensions match exactly
"Render failed"
- Check console output for specific error messages
- Verify all required fields in your configuration
- Ensure sufficient disk space for output
"Audio not playing"
- Check audio file format compatibility
- Verify volume settings (0.0 to 1.0)
- Ensure audio files are not corrupted
Performance Tips
- Large Videos: Use lower quality settings for faster rendering
- Audio Files: Compress audio files to reduce processing time
- Image Assets: Optimize images for web use
- Output Quality: Choose appropriate quality for your use case
๐ค Contributing
We welcome contributions! Please see our contributing guidelines for details on:
- Code style and standards
- Testing requirements
- Pull request process
- Issue reporting
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Remotion Team - For the amazing video framework
- React Team - For the foundation
- Open Source Community - For the tools and libraries
Made with โค๏ธ by the Vidosy Team
For support, questions, or feature requests, please open an issue on GitHub.