|
1 | | -<h1 align="center"> |
2 | | - <br> |
3 | | - <a href="https://github.com/openconvert"><img src="./resources/logo.png" width="200"></a> |
4 | | - <br> |
5 | | -</h1> |
| 1 | +# OpenConvert |
6 | 2 |
|
7 | | -<h4 align="center">OpenConvert is your swiss army knife for file convertion</h4> |
| 3 | +A fast, private, and user-friendly desktop file conversion application. Convert images, documents, videos, and audio files - all processed locally on your machine. |
8 | 4 |
|
| 5 | + |
| 6 | + |
| 7 | + |
9 | 8 |
|
10 | 9 | ## Features |
11 | | -- Convert multiple files at once |
12 | | -- One click install in windows |
13 | | -- Responsive Ui |
14 | | -## Install |
15 | | -- For executables checkout our [website](https://openconvert.github.io/website) or release [page](https://github.com/openconvert/openconvert-desktop/releases) |
16 | | -<!-- ## Demo --> |
17 | | - |
18 | | - |
19 | | - |
20 | | -## Supported files |
21 | | -- Image: png, jpg, gif, webp, jxl, bmp, avif, tiff |
22 | | -- Document: pdf, epub, xps, cbz, mobi, fb2 and many more ... |
23 | | -- ~~Video: mp4, mkv, avi, mov, gif, 3gp~~ |
24 | | -- ~~Audio: aac, mp3, mp4a, wav~~ |
25 | | -## 🛠 Tech stack |
26 | | - - Electronjs |
27 | | - - Vuejs |
28 | | - - Tailwindcss |
29 | | - - Vite |
30 | | - - daisyUI (component library) |
31 | | - - Database Sqlite3 |
32 | | -## How to Contribute |
33 | | -We need designer, tester and contributers. **OpenConvert** is prototype. If you want to contribute read [this](./CONTRIBUTING.md) |
34 | | -### Install dependencies |
35 | 10 |
|
36 | | -``` |
37 | | -$ pnpm install |
38 | | -``` |
| 11 | +### Supported Formats |
39 | 12 |
|
40 | | -### Run app |
| 13 | +**Images** (Built-in via Sharp) |
| 14 | +- PNG, JPEG, WebP, GIF, BMP, AVIF, TIFF, SVG, ICO, JPEG XL |
| 15 | +- High-performance native processing |
| 16 | +- Quality control and lossless/lossy compression |
41 | 17 |
|
42 | | -``` |
43 | | -$ pnpm start |
44 | | -``` |
45 | | -### Run dev server |
46 | | -``` |
47 | | -$ pnpm dev |
48 | | -``` |
49 | | -### Package app |
| 18 | +**Documents** (Requires Pandoc) |
| 19 | +- PDF, EPUB, DOCX, TXT, RTF, ODT, XPS, CBZ, MOBI, FB2 |
| 20 | +- Powered by Pandoc for document transformations |
| 21 | + |
| 22 | +**Video** (Requires FFmpeg) |
| 23 | +- MP4, MKV, AVI, MOV, WebM, 3GP, FLV, WMV |
| 24 | +- Real-time progress tracking |
| 25 | +- Video to GIF conversion |
| 26 | + |
| 27 | +**Audio** (Requires FFmpeg) |
| 28 | +- MP3, WAV, AAC, OGG, FLAC, WMA, M4A |
| 29 | +- Real-time progress tracking |
| 30 | + |
| 31 | +### Key Capabilities |
| 32 | + |
| 33 | +- **Drag & Drop Interface** - Simply drag files into the app |
| 34 | +- **Batch Processing** - Convert multiple files simultaneously |
| 35 | +- **Quality Control** - Choose from Low, Medium, High, or Maximum quality presets |
| 36 | +- **Conversion History** - Track all your conversions with search and filter |
| 37 | +- **Analytics Dashboard** - View conversion statistics and performance metrics |
| 38 | +- **Overwrite Options** - Auto-rename, skip, or overwrite existing files |
| 39 | +- **Configurable Concurrency** - Control how many files convert at once (1-10) |
| 40 | +- **Privacy Focused** - 100% local processing, no internet required, no data collection |
| 41 | +- **Modern UI** - Dark theme with custom titlebar and responsive design |
| 42 | + |
| 43 | +## Installation |
| 44 | + |
| 45 | +### Prerequisites |
| 46 | + |
| 47 | +**Required:** |
| 48 | +- Linux operating system (AppImage or Snap) |
50 | 49 |
|
51 | | -To build for windows: |
| 50 | +**Optional (for additional format support):** |
| 51 | +- [Pandoc](https://pandoc.org/installing.html) - For document conversions |
| 52 | +- [FFmpeg](https://ffmpeg.org/download.html) - For video and audio conversions |
52 | 53 |
|
| 54 | +### Download |
| 55 | + |
| 56 | +Download the latest release from the [Releases](../../releases) page: |
| 57 | +- **AppImage** - Portable, works on most Linux distributions |
| 58 | +- **Snap** - Install via Snap Store |
| 59 | + |
| 60 | +### Running the AppImage |
| 61 | + |
| 62 | +```bash |
| 63 | +chmod +x OpenConvert-*.AppImage |
| 64 | +./OpenConvert-*.AppImage |
53 | 65 | ``` |
54 | | -$ pnpm build:win |
| 66 | + |
| 67 | +### Installing via Snap |
| 68 | + |
| 69 | +```bash |
| 70 | +snap install openconvert |
55 | 71 | ``` |
56 | | -To build for linux: |
| 72 | + |
| 73 | +## Usage |
| 74 | + |
| 75 | +1. **Add Files** - Drag and drop files into the application, or click to browse |
| 76 | +2. **Select Format** - Choose the target format for each file from the dropdown |
| 77 | +3. **Configure Settings** - Adjust quality, output directory, and other options |
| 78 | +4. **Convert** - Click the convert button to start processing |
| 79 | +5. **View Results** - Check the History tab for completed conversions |
| 80 | + |
| 81 | +### Keyboard Shortcuts |
| 82 | + |
| 83 | +- `F12` or `Ctrl+Shift+I` - Toggle DevTools |
| 84 | +- `Ctrl+,` (Linux/Win) or `Cmd+,` (Mac) - Open Settings |
| 85 | +- `Ctrl+Shift+H` - Open History |
| 86 | + |
| 87 | +## Development |
| 88 | + |
| 89 | +### Tech Stack |
| 90 | + |
| 91 | +- **Electron** - Desktop application framework |
| 92 | +- **React** - UI framework |
| 93 | +- **Vite** - Build tool and dev server |
| 94 | +- **TypeScript** - Type-safe JavaScript |
| 95 | +- **Tailwind CSS** - Utility-first styling |
| 96 | +- **Sharp** - Native image processing |
| 97 | +- **Better-SQLite3** - Database for history and settings |
| 98 | +- **shadcn/ui** - UI component library |
| 99 | + |
| 100 | +### Prerequisites |
| 101 | + |
| 102 | +- Node.js (v18 or higher recommended) |
| 103 | +- Bun (or npm/yarn) |
| 104 | + |
| 105 | +### Setup |
| 106 | + |
| 107 | +```bash |
| 108 | +# Clone the repository |
| 109 | +git clone https://github.com/yourusername/OpenConvert-desktop.git |
| 110 | +cd OpenConvert-desktop |
| 111 | + |
| 112 | +# Install dependencies |
| 113 | +bun install |
| 114 | + |
| 115 | +# Run in development mode |
| 116 | +bun run dev |
57 | 117 | ``` |
58 | | -$ pnpm build:linux |
| 118 | + |
| 119 | +### Building |
| 120 | + |
| 121 | +```bash |
| 122 | +# Build for Linux |
| 123 | +bun run build:linux |
| 124 | + |
| 125 | +# Build for Windows |
| 126 | +bun run build:windows |
| 127 | + |
| 128 | +# Build for macOS |
| 129 | +bun run build:mac |
| 130 | + |
| 131 | +# Type-check and build without packaging |
| 132 | +bun run build:ts |
59 | 133 | ``` |
60 | | -To build for mac: |
| 134 | + |
| 135 | +### Project Structure |
| 136 | + |
61 | 137 | ``` |
62 | | -$ pnpm build:mac |
| 138 | +OpenConvert-desktop/ |
| 139 | +├── electron/ # Electron main process |
| 140 | +│ ├── main.ts # Main process entry point |
| 141 | +│ └── preload.ts # Preload script for IPC |
| 142 | +├── src/ # React renderer process |
| 143 | +│ ├── components/ # UI components |
| 144 | +│ ├── config/ # Format configurations |
| 145 | +│ ├── lib/ # Utility functions |
| 146 | +│ └── App.tsx # Main application component |
| 147 | +├── public/ # Static assets |
| 148 | +└── resources/ # Build resources (icons, etc.) |
63 | 149 | ``` |
64 | 150 |
|
| 151 | +## Configuration |
| 152 | + |
| 153 | +Settings are persisted in a SQLite database located at: |
| 154 | +- Linux: `~/.config/openconvert.db` |
| 155 | + |
| 156 | +### Configurable Options |
| 157 | + |
| 158 | +- Default output directory |
| 159 | +- Quality presets (Low/Medium/High/Maximum) |
| 160 | +- Overwrite behavior (Auto-rename/Skip/Overwrite) |
| 161 | +- Concurrency level (1-10 simultaneous conversions) |
| 162 | +- Maximum file size limit |
| 163 | +- Maximum file count per batch |
| 164 | + |
| 165 | +## Contributing |
| 166 | + |
| 167 | +Contributions are welcome! Please feel free to submit a Pull Request. |
| 168 | + |
| 169 | +1. Fork the repository |
| 170 | +2. Create your feature branch (`git checkout -b feature/amazing-feature`) |
| 171 | +3. Commit your changes (`git commit -m 'Add some amazing feature'`) |
| 172 | +4. Push to the branch (`git push origin feature/amazing-feature`) |
| 173 | +5. Open a Pull Request |
65 | 174 |
|
66 | 175 | ## License |
67 | 176 |
|
68 | | -GNU GPLv3 |
| 177 | +This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details. |
| 178 | + |
| 179 | +## Acknowledgments |
| 180 | + |
| 181 | +- [Sharp](https://sharp.pixelplumbing.com/) - High-performance image processing |
| 182 | +- [Pandoc](https://pandoc.org/) - Universal document converter |
| 183 | +- [FFmpeg](https://ffmpeg.org/) - Multimedia processing framework |
| 184 | +- [Electron](https://www.electronjs.org/) - Cross-platform desktop framework |
| 185 | +- [shadcn/ui](https://ui.shadcn.com/) - Beautiful UI components |
| 186 | + |
| 187 | +## Support |
| 188 | + |
| 189 | +If you encounter any issues or have questions: |
| 190 | +- Open an [issue](../../issues) on GitHub |
| 191 | +- Check the [documentation](../../wiki) (if available) |
| 192 | + |
| 193 | +--- |
| 194 | + |
| 195 | +Made with care for privacy-conscious users who need reliable file conversions. |
0 commit comments