Notarized app
Update README
This commit is contained in:
parent
68e73b3a00
commit
539777b3cc
2 changed files with 118 additions and 78 deletions
194
README.md
194
README.md
|
|
@ -1,113 +1,136 @@
|
|||
# Video Subtitle Merger 2.0
|
||||
# DeafBlind Video Assistant
|
||||
|
||||
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.
|
||||
The DeafBlind Video Assistant is a powerful desktop application designed to make video content more accessible to DeafBlind individuals. Built with Tauri, React, and powered by FFmpeg and Google's Gemini AI, it provides comprehensive tools for video processing and AI-powered content analysis.
|
||||
|
||||
## 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)
|
||||
### 1. Video Processing
|
||||
- Seamlessly merge subtitle files (SRT, ASS) with videos
|
||||
- Hardware-accelerated video processing using FFmpeg
|
||||
- Optimized subtitle positioning and visibility
|
||||
- Optional black bars for enhanced subtitle readability
|
||||
- Real-time progress tracking during processing
|
||||
|
||||
## Tech Stack
|
||||
### 2. AI-Powered Visual Description
|
||||
- Advanced visual analysis using Google's Gemini AI
|
||||
- Detailed scene descriptions focusing on:
|
||||
* Visual setup and environment
|
||||
* People present and their positioning
|
||||
* Relevant visual context and background details
|
||||
- Chronological narrative combining visual and subtitle content
|
||||
- Customizable description prompts
|
||||
|
||||
- **Frontend**:
|
||||
- React
|
||||
- TypeScript
|
||||
- Tailwind CSS
|
||||
- Vite
|
||||
### 3. User Experience
|
||||
- Intuitive, accessible interface
|
||||
- Clear task selection and workflow
|
||||
- Real-time progress feedback
|
||||
- Secure API key management
|
||||
- Persistent settings storage
|
||||
- Copy-to-clipboard functionality
|
||||
- High-contrast visual design
|
||||
|
||||
- **Backend**:
|
||||
- Rust
|
||||
- Tauri
|
||||
- FFmpeg (required dependency)
|
||||
## System Requirements
|
||||
|
||||
## Prerequisites
|
||||
### For Users
|
||||
- macOS 10.13 or later
|
||||
- Apple Silicon (M1/M2/M3) processor
|
||||
- Internet connection for AI features
|
||||
- Google AI Studio API key for visual description features
|
||||
- Minimum 4GB RAM recommended
|
||||
- 500MB free disk space
|
||||
|
||||
Before building the application, ensure you have the following installed:
|
||||
### For Development
|
||||
- Xcode Command Line Tools
|
||||
- Node.js 18+
|
||||
- pnpm package manager
|
||||
- Rust stable toolchain
|
||||
- Go 1.21+
|
||||
- FFmpeg (via Homebrew)
|
||||
- Apple Developer Program membership (for distribution)
|
||||
|
||||
- Node.js (v16 or later)
|
||||
- Rust (latest stable)
|
||||
- FFmpeg
|
||||
- pnpm (package manager)
|
||||
- Tauri development dependencies
|
||||
## Installation
|
||||
|
||||
### macOS Setup
|
||||
### For Users
|
||||
1. Download the DMG file
|
||||
2. Open the DMG file
|
||||
3. Drag "DeafBlind Video Assistant" to your Applications folder
|
||||
4. Launch from Applications folder
|
||||
5. On first launch:
|
||||
- Allow any required system permissions
|
||||
- Visit Settings to configure your Gemini API key
|
||||
- Test API key connection before use
|
||||
|
||||
1. Install Rust:
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
2. Install Node.js and pnpm:
|
||||
```bash
|
||||
brew install node
|
||||
npm install -g pnpm
|
||||
```
|
||||
|
||||
3. Install FFmpeg:
|
||||
```bash
|
||||
brew install ffmpeg
|
||||
```
|
||||
|
||||
4. Install Tauri development dependencies:
|
||||
```bash
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
## Building from Source
|
||||
### For Developers
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://gitea.sigd.net/chaulmark/subtitle-merge.git
|
||||
cd subtitle-merge
|
||||
git clone https://github.com/yourusername/deafblind-video-assistant.git
|
||||
cd deafblind-video-assistant
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
2. Install system dependencies:
|
||||
```bash
|
||||
# Install Homebrew if not already installed
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Install required packages
|
||||
brew install ffmpeg
|
||||
```
|
||||
|
||||
3. Install project dependencies:
|
||||
```bash
|
||||
# Install Node dependencies
|
||||
pnpm install
|
||||
|
||||
# Build Go executable
|
||||
cd gemini && go build
|
||||
```
|
||||
|
||||
3. Run in development mode:
|
||||
4. Set up development environment:
|
||||
```bash
|
||||
# Start development server
|
||||
pnpm tauri dev
|
||||
```
|
||||
|
||||
4. Build for production:
|
||||
## Building for Distribution
|
||||
|
||||
1. Configure signing:
|
||||
- Obtain Apple Developer ID Application certificate
|
||||
- Configure signing identity in Xcode
|
||||
|
||||
2. Build the application:
|
||||
```bash
|
||||
# Production build with notarization
|
||||
APPLE_ID="your.email@example.com" \
|
||||
APPLE_TEAM_ID="YOUR_TEAM_ID" \
|
||||
APPLE_PASSWORD="APP_SPECIFIC_PASSWORD" \
|
||||
pnpm tauri build
|
||||
```
|
||||
|
||||
The built application will be available in `src-tauri/target/release/bundle/`.
|
||||
## Development Architecture
|
||||
|
||||
## Usage
|
||||
- Frontend: React 18 with TypeScript and Tailwind CSS
|
||||
- Backend: Tauri (Rust) for native functionality
|
||||
- Video Processing: FFmpeg with hardware acceleration
|
||||
- AI Integration: Go implementation for Gemini API
|
||||
- Build System: Vite + Tauri CLI
|
||||
- Distribution: Code signed and notarized for macOS
|
||||
|
||||
1. Launch the application
|
||||
2. You may need to perform the following for MacOS to allow you to run this application:
|
||||
```bash
|
||||
xattr -cr "/Applications/Video Subtitle Merger 2.0.app"
|
||||
```
|
||||
3. Select your video file using the "Select Video" button
|
||||
4. Select your subtitle file using the "Select Subtitle" button
|
||||
5. Choose your preferences:
|
||||
- Add black bar for subtitles (recommended for better readability)
|
||||
- Resize to 720p resolution (helps with file size)
|
||||
6. Click "Merge Video and Subtitle"
|
||||
7. Wait for the process to complete
|
||||
8. The merged video will be saved in the same directory as the input video
|
||||
## Getting Started
|
||||
|
||||
## Development
|
||||
1. Obtain a Gemini API key from [Google AI Studio](https://aistudio.google.com/app/apikey)
|
||||
2. Enter your API key in the Settings
|
||||
3. Choose your task:
|
||||
- "Generate Transcription" for AI-powered video descriptions
|
||||
- "Merge Subtitles" for embedding subtitles into videos
|
||||
4. Follow the on-screen instructions for file selection and processing
|
||||
|
||||
The project structure follows the standard Tauri + React template:
|
||||
## Security & Privacy
|
||||
|
||||
- `/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
|
||||
- Application is signed with Apple Developer ID
|
||||
- Local processing of video files
|
||||
- Secure API key storage
|
||||
- No data collection or tracking
|
||||
|
||||
## Contributing
|
||||
|
||||
|
|
@ -117,6 +140,23 @@ The project structure follows the standard Tauri + React template:
|
|||
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
## Support & Feedback
|
||||
|
||||
For issues, feature requests, or feedback, please create an issue in the repository.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the LICENSE file for details.
|
||||
[Add your chosen license here]
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
Special thanks to:
|
||||
- The DeafBlind community for their invaluable input
|
||||
- FFmpeg for video processing capabilities
|
||||
- Google's Gemini AI for visual analysis
|
||||
- The Tauri team for the application framework
|
||||
- All contributors and supporters of the project
|
||||
|
||||
---
|
||||
SHA256: b5158bdf30a5de2cee08b2317d14af155fb39f9a5f416ee44d3736b45692cfde
|
||||
Build Date: January 28, 2025
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
"frameworks": [],
|
||||
"minimumSystemVersion": "10.13",
|
||||
"signingIdentity": "Developer ID Application: Chris Haulmark (RJHWWWSF6Q)",
|
||||
"providerShortName": null
|
||||
"providerShortName": "RJHWWWSF6Q"
|
||||
},
|
||||
"icon": [
|
||||
"icons/32x32.png",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue