M1/M2/M3 Compatible Subtitle Merger application
Find a file
2025-01-28 14:35:10 -06:00
.vscode Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
gemini Empty default API key 2025-01-28 12:01:49 -06:00
public Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
src Updated to use LazyStore for persistent storage of API key and Visual and Subtitle prompts 2025-01-28 12:26:11 -06:00
src-tauri Updated to use LazyStore for persistent storage of API key and Visual and Subtitle prompts 2025-01-28 12:26:11 -06:00
.gitignore Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
Description.md Add release description 2025-01-28 14:35:10 -06:00
index.html Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
package.json Updated to use LazyStore for persistent storage of API key and Visual and Subtitle prompts 2025-01-28 12:26:11 -06:00
pnpm-lock.yaml Updated to use LazyStore for persistent storage of API key and Visual and Subtitle prompts 2025-01-28 12:26:11 -06:00
postcss.config.js Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
README.md Update README.md 2024-12-26 05:45:04 +00:00
tailwind.config.js Fix temp dir for thumbnails 2025-01-27 08:44:42 -06:00
tsconfig.json Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
tsconfig.node.json Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00
vite.config.ts Initial commit: Video Subtitle Merger 2.0 2024-12-25 16:30:39 -06:00

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

  1. Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. Install Node.js and pnpm:
brew install node
npm install -g pnpm
  1. Install FFmpeg:
brew install ffmpeg
  1. Install Tauri development dependencies:
xcode-select --install

Building from Source

  1. Clone the repository:
git clone https://gitea.sigd.net/chaulmark/subtitle-merge.git
cd subtitle-merge
  1. Install dependencies:
pnpm install
  1. Run in development mode:
pnpm tauri dev
  1. Build for production:
pnpm tauri build

The built application will be available in src-tauri/target/release/bundle/.

Usage

  1. Launch the application
  2. 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"
  1. Select your video file using the "Select Video" button
  2. Select your subtitle file using the "Select Subtitle" button
  3. Choose your preferences:
    • Add black bar for subtitles (recommended for better readability)
    • Resize to 720p resolution (helps with file size)
  4. Click "Merge Video and Subtitle"
  5. Wait for the process to complete
  6. 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.