Professional batch video converter with hardware acceleration, audio fix, and 29+ powerful tools
Features • Installation • Usage • Changelog • Issues
- Overview
- Features
- Requirements
- Installation
- Usage
- Conversion Modes
- Advanced Tools
- Utilities
- Hardware Acceleration
- Audio Fix
- Changelog
- Known Issues & Solutions
- Contributing
- License
- Author
Universal Video Converter Pro is a powerful Windows batch script that leverages FFmpeg to provide professional-grade video conversion capabilities. It features automatic hardware detection, audio error fixes, multi-threading optimization, and an intuitive menu-driven interface.
- ✅ One-Click Conversion - No complex FFmpeg commands needed
- ✅ Hardware Acceleration - Auto-detects NVIDIA, AMD, Intel GPUs
- ✅ Audio Fix Built-in - Solves AAC encoding errors automatically
- ✅ Batch Processing - Convert hundreds of files with one command
- ✅ 29+ Tools - Everything from extraction to DVD ripping
- ✅ Progress Tracking - Real-time statistics and success rates
- ✅ Multi-format Support - MP4, MKV, AVI, MOV, WebM, TS, FLV, M4V
| Mode | CRF | Preset | Best For | Audio | Speed |
|---|---|---|---|---|---|
| Ultra Fast | 20 | fast | Quick conversions with HW acceleration | 192k AAC | ⚡⚡⚡⚡⚡ |
| Ultra Quality | 16 | veryslow | Archival, professional work | 320k AAC | ⚡ |
| Lightning Remux | - | - | Format change without re-encoding | Copy | ⚡⚡⚡⚡⚡ |
| High Quality | 18 | slow | General purpose, excellent quality | 256k AAC | ⚡⚡⚡ |
| Smart Compress | 26 | slow | Space-saving, streaming | 128k AAC | ⚡⚡⚡ |
| Balanced Pro | 21 | medium | Daily use, good balance | 192k AAC | ⚡⚡⚡⚡ |
| Custom Advanced | Custom | Custom | Full control over parameters | Custom | Custom |
- 🎵 Audio Extract - Extract audio in MP3, AAC, FLAC, WAV, OPUS, M4A formats
- 📐 Batch Resize - Resize to 4K, 1440p, 1080p, 720p, 480p, or custom resolution
- 📝 Subtitle Tools - Extract, burn, or add SRT subtitles
- 🔗 Smart Merge - Concatenate multiple videos into one
- ✂️ Precision Trim - Cut videos by time with frame accuracy
- 🎞️ Framerate Converter - Change FPS (24, 30, 60, custom)
- 🔊 Audio Fix + Normalize - Fix AAC errors and normalize volume
- 🌑 Deinterlace Pro - Remove interlacing artifacts
- 🎥 Rotate/Flip - 90°, 180°, 270° rotation, horizontal/vertical flip
- ⚡ Speed Control - Speed up or slow down videos
- 🖼️ Frame Extractor - Extract frames as PNG images
- 📺 TV Ultimate - Maximum TV/console compatibility with size optimization
- 🎬 DVD/Blu-ray Ripper - Rip optical media to MP4
- 🎯 Batch Queue System - Queue multiple conversion tasks
- 📊 Media Analyzer Pro - Detailed codec, resolution, bitrate information
- 📈 Size Comparison Chart - Compare file sizes before/after conversion
- 🧹 Smart Cleanup - Manage output folders efficiently
- 🔍 Find Corrupted Files - Scan and identify damaged video files
- ⚙️ System Settings - View hardware capabilities
- 🐛 Debug Mode - Verbose error logging for troubleshooting
- Windows 7/8/10/11 (64-bit recommended)
- FFmpeg (must be in PATH or same directory)
- Command Prompt with Administrator privileges (recommended)
- NVIDIA GPU + Latest drivers (for NVENC)
- AMD GPU + Latest drivers (for AMF)
- Intel CPU with integrated graphics (for QuickSync)
- Visit FFmpeg Official Website
- Download the latest Windows build (Static)
- Extract to
C:\ffmpeg
Option A: Automatic (Recommended)
setx PATH "%PATH%;C:\ffmpeg\bin"Option B: Manual
- Right-click "This PC" → Properties
- Advanced System Settings → Environment Variables
- Edit "Path" → Add
C:\ffmpeg\bin - Click OK and restart Command Prompt
git clone https://github.com/Abdelrahman968/mkv-to-mp4-batch.git
cd mkv-to-mp4-batchOr download ZIP from Releases
ffmpeg -versionIf FFmpeg version appears, you're ready! ✅
- Place video files in the same folder as
converter.bat - Run
converter.bat(double-click or via command prompt) - Select a conversion mode (1-29)
- Wait for processing to complete
- Find converted files in output folders
📁 My Videos/
├── converter.bat ← Run this
├── movie1.mkv ← Input files
├── movie2.avi
├── series_s01e01.mp4
└── Ultra_Quality/ ← Output folder (auto-created)
├── movie1.mp4
├── movie2.mp4
└── series_s01e01.mp4
REM Navigate to video folder
cd C:\My Videos
REM Run converter
converter.bat
REM Select option (e.g., 4 for High Quality)
4
REM Wait for completion- Best for: Large batches, quick results
- Quality: Good
- Speed: Maximum (5-10x realtime with GPU)
- Uses: GPU encoder (NVENC/AMF/QSV)
- Best for: Archival, master copies
- Quality: Excellent (CRF 16)
- Speed: Slow (0.5-1x realtime)
- File Size: Largest
- Best for: Container change without quality loss
- Quality: Identical to source
- Speed: Instant (10-100x realtime)
- Note: Only changes container (MKV→MP4)
- Best for: General purpose, daily use
- Quality: Excellent (CRF 18)
- Speed: Medium (1-2x realtime)
- Sweet Spot: Quality vs size vs speed
- Best for: Sharing, uploading, storage
- Quality: Good (CRF 26)
- Speed: Medium
- File Size: 30-50% of original
- Best for: TVs, game consoles, set-top boxes
- Features: H.264 Main Profile, Level 4.0, YUV420P
- Compatibility: Maximum device compatibility
- Audio: Fixed AAC 128k stereo
Extract audio tracks in various formats:
- MP3 320k - Universal compatibility
- AAC 256k - Modern devices
- FLAC - Lossless archival
- WAV - Uncompressed
- OPUS 192k - Best quality/size ratio
- M4A 256k - Apple devices
Upscale or downscale videos:
- 4K (3840×2160) - Ultra HD
- 1440p (2560×1440) - QHD
- 1080p (1920×1080) - Full HD
- 720p (1280×720) - HD
- 480p (854×480) - SD
- Custom - Any resolution
- Extract: Pull SRT subtitles from MKV/MP4
- Burn: Hardcode subtitles into video
- Add: Embed external SRT files
Process multiple tasks with different settings:
Task format: filename.mkv|output_folder|crf|preset
Example: movie.mkv|Custom|20|medium
The script automatically detects your GPU:
| GPU Type | Encoder | Decoder | Speed Boost |
|---|---|---|---|
| NVIDIA | h264_nvenc |
CUDA | 5-10x |
| AMD | h264_amf |
D3D11VA | 4-8x |
| Intel | h264_qsv |
QuickSync | 3-6x |
| CPU Only | libx264 |
Software | 1x (baseline) |
Edit script to force specific encoder:
set hw_encoder=h264_nvenc REM Force NVIDIA
set hw_encoder=h264_amf REM Force AMD
set hw_encoder=h264_qsv REM Force Intel
set hw_encoder=libx264 REM Force CPUAAC encoding errors in FFmpeg:
[aac @ ...] Number of bands (54) exceeds limit (44)
[dec:aac @ ...] Error submitting packet to decoder: Invalid data found
Version 6.0 includes automatic audio fixes:
-strict -2 # Allow experimental AAC encoder
-max_muxing_queue_size 9999 # Prevent buffer overflow
-ar 48000 # Force correct sample rate
-ac 2 # Ensure stereo compatibilityAudio fix is automatically applied to:
- ✅ All conversion modes (1-7)
- ✅ Audio extract (9)
- ✅ Batch resize (10)
- ✅ Subtitle tools (11)
- ✅ TV mode (20)
- ✅ All re-encoding operations
Result: Zero AAC errors in v6.0! 🎉
🔥 Major Release - Audio Fix + Performance
- ✅ Fixed AAC encoding errors completely (
Number of bands exceeds limit) - ✅ Fixed audio desync issues during conversion
- ✅ Fixed buffer overflow errors with long videos
- ✅ Fixed TV mode compatibility issues
- ✅ Resolved subtitle burning crashes
- ✅ Multi-threading support (auto-detects CPU cores)
- ✅ Hardware decoding for GPU input processing
- ✅ Optimized preset configurations (30-50% faster)
- ✅ Parallel audio processing
- ✅ Reduced memory usage for 4K videos
- ✅ Modern box-drawing characters
- ✅ Color-coded status messages (✅/❌)
- ✅ Real-time progress tracking
- ✅ Success/failure counters
- ✅ Enhanced visual hierarchy
- ✅ Better menu organization (29 options)
- ✅ Batch Queue System - Queue multiple conversion tasks
- ✅ DVD/Blu-ray Ripper - Rip optical media to MP4
- ✅ Corrupted File Finder - Detect damaged files
- ✅ Debug Mode - Verbose error logging
- ✅ Smart Cleanup - Targeted folder management
- ✅ M4A Audio Extract - Additional audio format
- ✅ 4K Resize Support - Upscale to Ultra HD
- ✅ Author Info Page - Dedicated credits section
- ✅ Error logging to
converter_log.txt - ✅ Improved error recovery
- ✅ Better file format detection
- ✅ Enhanced hardware detection logic
- ✅ Code optimization and cleanup
- ✅ Added Changelog tab
- ✅ Final UI polish and fixes
- ✅ Fixed display alignment issues
- ✅ Author information tab
- ✅ Enhanced settings menu
- ✅ System info display
- ✅ Full feature implementation
- ✅ Emoji-enhanced UI
- ✅ 26 tool modes
- ✅ Major feature expansion
- ✅ TV Ultimate mode
- ✅ Advanced tools suite
- ✅ New advanced tools
- ✅ Frame extraction
- ✅ Speed control
- ✅ Professional release
- ✅ Multiple quality presets
- ✅ Audio extraction
- ✅ Hardware acceleration support
- ✅ GPU detection
- ✅ NVENC/AMF/QSV encoders
- ✅ Initial release
- ✅ Basic MKV to MP4 conversion
- ✅ CRF-based quality control
Problem: Command Prompt can't find FFmpeg
Solution:
# Verify FFmpeg location
where ffmpeg
# If not found, add to PATH or copy ffmpeg.exe to script folder
copy C:\ffmpeg\bin\ffmpeg.exe .Problem: [aac @ ...] Number of bands exceeds limit
Solution: ✅ Already fixed in v6.0! Audio fix is automatic.
Manual override (if needed):
ffmpeg -i input.mkv -c:v libx264 -c:a aac -strict -2 -max_muxing_queue_size 9999 output.mp4Problem: Videos convert slower than realtime
Solutions:
- Use Mode 1 (Ultra Fast with hardware acceleration)
- Update GPU drivers (NVIDIA/AMD/Intel)
- Choose faster preset:
ultrafast>fast>medium>slow>veryslow - Reduce CRF quality: Higher CRF = faster (try 23-26)
- Close background applications
Problem: GPU not detected or not being used
Solutions:
# Check GPU detection
nvidia-smi # For NVIDIA
dxdiag # For AMD/Intel
# Update drivers
# NVIDIA: https://www.nvidia.com/drivers
# AMD: https://www.amd.com/support
# Intel: https://www.intel.com/content/www/us/en/download-center/home.html
# Force CPU encoding if GPU issues persist
# Edit script: set hw_encoder=libx264Problem: Conversion fails with memory errors on large 4K files
Solutions:
- Close other applications
- Use Mode 3 (Lightning Remux) for format change only
- Reduce resolution first with Mode 10
- Split large files with Mode 13 (Trim)
- Increase virtual memory in Windows settings
Problem: Subtitle burn fails or shows wrong characters
Solutions:
# For UTF-8 subtitles
ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontName=Arial'" output.mp4
# For embedded subtitles
ffmpeg -i input.mkv -vf subtitles=input.mkv:si=0 output.mp4
# Extract and fix encoding first
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srtProblem: Output looks washed out or blocky
Solutions:
- Use Mode 2 or 4 (Ultra/High Quality)
- Lower CRF value: Try 16-18 for best quality
- Add color correction:
-vf eq=brightness=0.02:saturation=1.1- Preserve color space:
-color_primaries bt709 -color_trc bt709 -colorspace bt709Problem: Converted files don't work on smart TV or game console
Solution: ✅ Use Mode 19 (TV Ultimate) - specifically designed for maximum compatibility
- Forces H.264 Main Profile Level 4.0
- YUV420P pixel format
- AAC stereo audio 48kHz
- FastStart flag for streaming
Problem: Script stops processing after few files
Solutions:
- Check corrupted files with Mode 25
- Use Debug Mode (28) to identify problem files
- Process problematic files separately
- Check disk space (requires 2x input size free)
Problem: "Access denied" or "Cannot write to folder"
Solutions:
# Run as Administrator
Right-click converter.bat → Run as Administrator
# Or disable folder protection
Windows Security → Virus & threat protection → Manage ransomware protection → OFFContributions are welcome! Please follow these guidelines:
- Fork the repository
git clone https://github.com/Abdelrahman968/mkv-to-mp4-batch.git- Create a feature branch
git checkout -b feature/amazing-feature- Make your changes
- Add new conversion modes
- Fix bugs
- Improve documentation
- Add new tools
- Test thoroughly
- Test with multiple file formats
- Verify hardware acceleration
- Check for audio sync issues
- Commit your changes
git commit -m "Add amazing feature"- Push to branch
git push origin feature/amazing-feature- Open Pull Request
- Use clear variable names
- Add comments for complex logic
- Follow existing code style
- Test on Windows 10/11
- Update README if adding features
Please include:
- Windows version
- FFmpeg version (
ffmpeg -version) - GPU type (if using hardware acceleration)
- Error message (full text)
- Sample file info (codec, resolution)
- Steps to reproduce
This project is licensed under the MIT License - see below for details:
MIT License
Copyright (c) 2024 Abdelrahman Ayman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- 🐙 GitHub: @Abdelrahman968
- 📘 Facebook: Abdelrahman.968
- 💼 LinkedIn: abdelrahman968
If you find this tool useful:
- ⭐ Star this repository on GitHub
- 🐛 Report bugs via Issues tab
- 💡 Suggest features via Issues or Pull Requests
- 📢 Share with others who might need it
- ☕ Buy me a coffee (if you want to support development)
- FFmpeg Team - For the amazing multimedia framework
- NVIDIA/AMD/Intel - For hardware acceleration APIs
- Open Source Community - For continuous support and feedback
- All Contributors - Thank you for making this tool better!
Need help? Have questions?
- Check the Known Issues section
- Search existing issues
- Open a new issue if needed
- Contact me via social media links above
Made with ❤️ by Abdelrahman Ayman
If this tool helped you, please ⭐ star the repo!