EchoMux is a powerful, user-friendly desktop application built with PyQt6 that provides comprehensive media file management capabilities. Whether you're dealing with multi-language audio tracks, subtitle embedding, or bulk file organization, EchoMux streamlines your media workflow with an intuitive interface.
- Extract audio tracks from video files in multiple formats
- Support for AAC, MP3, FLAC, and OGG output formats
- Batch processing with progress tracking
- Preserve original audio quality
- Merge multiple audio tracks into video files
- Intelligent filename matching for automated workflow
- Language metadata tagging support
- Preserve original video and audio streams
- Embed subtitle files into video containers
- Auto-detect language from filename patterns
- Support for SRT, ASS, VTT, and SUB formats
- Soft subtitles (toggleable) and hard subtitles (burned-in) options
- File matching preview system
- Intelligent season/episode detection from filenames
- Customizable filename templates
- Preview mode to test changes before applying
- Support for multiple naming patterns (S01E01, 1x01, etc.)
- Optional integration with online databases for episode titles
- Python 3.8 or higher
- FFmpeg (must be accessible from command line)
- Windows: Download from ffmpeg.org
- macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Ubuntu/Debian) or equivalent
- Go to Releases
- Download the latest
EchoMux.exe - Run the executable directly (FFmpeg still required separately)
# Clone the repository
git clone https://github.com/Mohammed-ALhassanSE/EchoMux.git
cd EchoMux
# Install dependencies
pip install -r requirements.txt
# Run the application
python EchoMux.py- Launch EchoMux and select the appropriate tab for your task
- Add media files using drag-and-drop or the "Add Files" button
- Configure settings such as output directory and format options
- Preview changes when available (subtitle embedding, bulk renaming)
- Start processing and monitor progress in real-time
- Drag video files into the input area
- Choose output directory and audio format
- Click "Extract Audio" to begin processing
- Add video files and corresponding audio files
- Configure language tags for proper metadata
- The system will automatically match files based on similar names
- Review the matching and start the merge process
- Add video files and subtitle files
- Use the preview feature to verify file matching
- Choose between soft (toggleable) or hard (burned-in) subtitles
- Language detection works automatically based on filename patterns
- Add media files with episode information in filenames
- Enter the show name and customize the filename template
- Use preview mode to test the renaming pattern
- Apply changes when satisfied with the preview
EchoMux supports flexible filename templates for bulk renaming:
{show}- Show/series name{season:02d}- Season number (zero-padded){episode:02d}- Episode number (zero-padded){title}- Episode title (if available){ext}- File extension
Example template: {show} - S{season:02d}E{episode:02d} - {title}{ext}
Result: Breaking Bad - S01E01 - Pilot.mkv
- MP4, MKV, AVI, MOV, M4V
- AAC, MP3, FLAC, OGG, WAV, M4A
- SRT, ASS, VTT, SUB
# Install auto-py-to-exe
pip install auto-py-to-exe
# Launch GUI
auto-py-to-exeRecommended settings:
- Script Location:
EchoMux.py - One File: Yes
- Console Window: Window Based (hide console)
- Icon:
icon/icon.ico - Additional Files: Include
iconfolder
pyinstaller --noconfirm --onefile --windowed --icon="icon/icon.ico" --add-data="icon;icon" --name="EchoMux" EchoMux.pyContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
git clone https://github.com/Mohammed-ALhassanSE/EchoMux.git
cd EchoMux
pip install -r requirements.txt
pip install -r requirements-dev.txt # If development dependencies exist- FFmpeg Dependency: FFmpeg must be installed separately and accessible from command line
- File Size: Executable is large (~100-200MB) due to Python and PyQt6 bundling
- Performance: Processing large files may take significant time depending on system specs
- Language Detection: Automatic language detection relies on filename patterns
This project is licensed under the MIT License - see the LICENSE file for details.
Mohammed AL Hassan
- GitHub: @Mohammed-ALhassanSE
- Built with PyQt6 for the GUI framework
- Powered by FFmpeg for media processing
- Inspired by the need for efficient media workflow management
β If you found this project helpful, please consider giving it a star!

