3.2 KiB
3.2 KiB
Quick Video Optimization Guide
Current Status
- Video File:
public/assets/video/video-intro.mp4 - Current Size: ~18MB
- Target: Optimize to ~1MB for fast web loading
Step 1: Install FFmpeg (if not already installed)
brew install ffmpeg
Step 2: Run Optimization Script (1MB Target)
Once FFmpeg is installed, run:
cd neode-ui
./optimize-video-1mb.sh
This will:
- ✅ Create a backup of your original video
- ✅ Optimize using H.264 with CRF 30 (good quality, smaller file)
- ✅ Scale to 1280x720 (HD resolution)
- ✅ Reduce frame rate to 30fps
- ✅ Compress audio to 64kbps
- ✅ Add faststart flag for web streaming
- ✅ Target ~1MB file size
- ✅ Replace original with optimized version
Expected Results
- Original: ~18MB
- Optimized: ~1-2MB (90-95% reduction)
- Quality: Good quality (suitable for background video)
- Loading: 10-20x faster
Manual Command (Alternative - 1MB Target)
If you prefer to run manually:
cd neode-ui/public/assets/video
# Backup original
cp video-intro.mp4 video-intro-backup.mp4
# Optimize for ~1MB (CRF 30, 1280x720, 30fps)
ffmpeg -i video-intro.mp4 \
-c:v libx264 \
-preset slow \
-crf 30 \
-profile:v high \
-level 4.0 \
-pix_fmt yuv420p \
-vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" \
-r 30 \
-c:a aac \
-b:a 64k \
-ar 44100 \
-movflags +faststart \
-threads 0 \
video-intro-optimized.mp4
# Replace original
mv video-intro-optimized.mp4 video-intro.mp4
If Still Too Large, Use More Aggressive Settings:
# Even smaller (~500KB-1MB) - CRF 32, 854x480
ffmpeg -i video-intro.mp4 \
-c:v libx264 \
-preset slow \
-crf 32 \
-profile:v high \
-level 4.0 \
-pix_fmt yuv420p \
-vf "scale=854:480:force_original_aspect_ratio=decrease,pad=854:480:(ow-iw)/2:(oh-ih)/2" \
-r 24 \
-c:a aac \
-b:a 48k \
-ar 44100 \
-movflags +faststart \
video-intro-small.mp4
After Optimization
-
Update cache version in code:
SplashScreen.vue: Change?v=3to?v=4OnboardingWrapper.vue: Change?v=3to?v=4
-
Test the video:
- Verify smooth playback
- Check looping works correctly
- Test on mobile devices
Quality Settings Explained (1MB Target)
-
CRF 30: Good quality (recommended for 1MB target)
- Good visual quality suitable for background video
- ~1-2MB file size
- Best balance for web
-
CRF 28: Better quality
- Higher quality, ~2-3MB file size
- Use if 1MB is too aggressive
-
CRF 32: Smaller file
- Lower quality but still acceptable
- ~500KB-1MB file size
- Use if you need to hit 1MB exactly
Recommendation: Start with CRF 30, adjust based on results.
Troubleshooting
Script fails
- Ensure FFmpeg is installed:
brew install ffmpeg - Check file permissions:
chmod +x optimize-video.sh - Verify video file exists:
ls -lh public/assets/video/video-intro.mp4
Quality not good enough
- Use CRF 15 instead of 18 (larger file, better quality)
- Use
preset veryslowinstead ofslow(slower encoding, better compression)
File still too large
- Use CRF 20-23 (smaller file, slight quality trade-off)
- Reduce resolution if video is 4K: add
-vf "scale=1920:1080"