M1/M2/M3 Compatible Subtitle Merger application
| .vscode | ||
| gemini | ||
| public | ||
| src | ||
| src-tauri | ||
| .gitignore | ||
| index.html | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
Video Subtitle Merger 2.0
A desktop application that allows you to merge video files with subtitle files using FFmpeg. Built with Tauri (Rust + React), this application provides a modern, efficient interface for combining videos with subtitles.
Features
- Merge video files with subtitle files (supports MP4, AVI, MOV, MKV videos and SRT, ASS subtitles)
- Option to add black bars for subtitles
- Option to resize videos to 720p resolution
- Real-time progress tracking
- Modern, user-friendly interface
- Native performance with small application size
- Cross-platform support (currently tested on macOS)
Tech Stack
-
Frontend:
- React
- TypeScript
- Tailwind CSS
- Vite
-
Backend:
- Rust
- Tauri
- FFmpeg (required dependency)
Prerequisites
Before building the application, ensure you have the following installed:
- Node.js (v16 or later)
- Rust (latest stable)
- FFmpeg
- pnpm (package manager)
- Tauri development dependencies
macOS Setup
- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install Node.js and pnpm:
brew install node
npm install -g pnpm
- Install FFmpeg:
brew install ffmpeg
- Install Tauri development dependencies:
xcode-select --install
Building from Source
- Clone the repository:
git clone https://gitea.sigd.net/chaulmark/subtitle-merge.git
cd subtitle-merge
- Install dependencies:
pnpm install
- Run in development mode:
pnpm tauri dev
- Build for production:
pnpm tauri build
The built application will be available in src-tauri/target/release/bundle/.
Usage
- Launch the application
- You may need to perform the following for MacOS to allow you to run this application:
xattr -cr "/Applications/Video Subtitle Merger 2.0.app"
- Select your video file using the "Select Video" button
- Select your subtitle file using the "Select Subtitle" button
- Choose your preferences:
- Add black bar for subtitles (recommended for better readability)
- Resize to 720p resolution (helps with file size)
- Click "Merge Video and Subtitle"
- Wait for the process to complete
- The merged video will be saved in the same directory as the input video
Development
The project structure follows the standard Tauri + React template:
/src- React frontend code/src-tauri- Rust backend code/src/components- React components/src/styles- CSS and styling files/src-tauri/src- Rust source files
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.