|
8 | 8 | </p>
|
9 | 9 |
|
10 | 10 | > [!WARNING]
|
11 |
| -> We don't have an Apple Developer account yet, and the application is not code-signed for both Mac and Windows. Therefore, the applications will show a warning popup on the first start. On Mac, click **Okay**, then go to **Settings / Privacy & Security** and scroll down until you see a button **Open anyway**. You'll have to do this once. On Windows, you may see a warning message indicating that the app is from an unknown publisher. Click **More info** and then **Run anyway** to proceed. |
| 11 | +> **We don't have an Apple Developer account yet, and the application is not code-signed for both Mac and Windows. Therefore, the applications will show a warning popup on the first start.** |
| 12 | +> On **Mac**, click **Okay**, then go to **Settings / Privacy & Security** and scroll down until you see a button **Open anyway**. |
| 13 | +> On **Windows**, you may see a warning message indicating that the app is from an unknown publisher. Click **More info** and then **Run anyway** to proceed. |
| 14 | +
|
| 15 | +--- |
12 | 16 |
|
13 | 17 | ## About Comet
|
14 | 18 |
|
15 |
| -**Comet** is a cross-platform media converter application designed to make the conversion of video, audio, and image files as easy and accessible as possible. Leveraging the power of [FFmpeg](https://ffmpeg.org/), Comet allows users to convert various media formats all within a simple, intuitive interface. |
| 19 | +**Comet** is a cross-platform media converter application designed to make the conversion of video, audio, and image files as easy and accessible as possible. Built on top of [FFmpeg](https://ffmpeg.org/), **Jimp**, and **Electron**, Comet offers a seamless and efficient user experience for media conversions, all within a simple, intuitive interface. |
16 | 20 |
|
17 | 21 | 
|
18 | 22 | 
|
19 | 23 | 
|
20 | 24 | 
|
21 | 25 |
|
| 26 | +--- |
| 27 | + |
22 | 28 | ## Project Overview
|
23 | 29 |
|
24 |
| -Comet's goal is to provide a free, user-friendly, and visually appealing application for converting media files. Whether you need to convert a single file or multiple files at once, Comet is here to help. |
| 30 | +Comet's goal is to provide a **free, user-friendly, and visually appealing** application for converting media files. Whether you need to convert a single file or multiple files at once, Comet is designed to make the process straightforward. |
25 | 31 |
|
26 | 32 | ### Key Features
|
27 | 33 |
|
28 |
| -- **Cross-Platform Compatibility:** Runs on macOS, Windows, and Linux. |
29 |
| -- **Video, Audio, and Image Conversion:** Supports conversion to a wide range of video formats (MP4, MKV, AVI, MOV, etc.), audio formats (MP3, WAV, AAC, FLAC, etc.), and image formats (JPEG, PNG, BMP, etc.). |
| 34 | +- **Cross-Platform Compatibility:** Works seamlessly on macOS, Windows, and Linux. |
| 35 | +- **Video, Audio, and Image Conversion:** |
| 36 | + - Video formats: MP4, MKV, AVI, MOV, etc. |
| 37 | + - Audio formats: MP3, WAV, AAC, FLAC, etc. |
| 38 | + - Image formats: JPEG, PNG, BMP, ICO, ICNS, etc. |
30 | 39 | - **Bulk File Conversion:** Easily upload and convert multiple files in one go.
|
31 |
| -- **User-Friendly Interface:** A clean and intuitive UI that simplifies the conversion process. |
32 |
| -- **Real-Time Conversion Feedback:** Conversion progress is tracked and displayed to the user, with real-time updates and error handling. |
33 |
| -- **Fast Conversion:** Powered by FFmpeg, known for its speed and efficiency in media processing. |
34 |
| -- **Dark Mode:** Provides a dark theme for users who prefer a more comfortable visual experience. |
| 40 | +- **Real-Time Progress Tracking:** Track the progress of each conversion with real-time feedback. |
| 41 | +- **Dark Mode:** A sleek dark theme for more comfortable use. |
35 | 42 | - **Multi-Language Support:** Available in multiple languages for a global audience.
|
| 43 | +- **Cancel/Resume Conversions:** Cancel ongoing conversions, with options to manage individual items in the queue. |
| 44 | +- **Jimp and FFmpeg Integration:** Use Jimp for images and FFmpeg for audio/video conversion. |
| 45 | + |
| 46 | +--- |
36 | 47 |
|
37 |
| -### Current Status |
| 48 | +## Recent Updates |
38 | 49 |
|
39 |
| -The project has made significant progress: |
| 50 | +- **Unified Conversion Handler:** We’ve refactored the media conversion process to use an **Adapter Pattern**, allowing for a unified conversion handler for video, audio, and image files using either **FFmpeg** or **Jimp** depending on the file type. |
| 51 | +- **Advanced Testing:** Expanded unit tests using **Jest** to cover media conversion handlers and IPC processes. |
| 52 | +- **Improved Performance:** Faster conversions through optimizations to how we handle bulk file uploads and media processing queues. |
| 53 | +- **Enhanced UI and UX:** More responsive interface and clearer progress tracking for large file batches. |
40 | 54 |
|
41 |
| -- **Basic UI and Core Functionality:** The user interface is fully implemented, supporting bulk file uploads, conversion status tracking, and real-time feedback. |
42 |
| -- **FFmpeg Integration:** The core video, audio, and image conversion functionality is complete, making the app fully functional. |
43 |
| -- **Cross-Platform Distributables:** Distributables for macOS, Windows, and Linux have been successfully created. However, due to the high cost of an Apple Developer membership, the app is currently not code-signed or notarized for macOS, which may present challenges when running it on Mac devices. |
| 55 | +--- |
44 | 56 |
|
45 | 57 | ## Technologies Used
|
46 | 58 |
|
47 | 59 | - **Electron:** For building the cross-platform desktop application.
|
48 | 60 | - **Vue.js (with Composition API and TypeScript):** For the frontend UI.
|
49 |
| -- **FFmpeg:** The core engine for media format conversion. |
50 |
| -- **Node.js:** Backend services and script automation. |
51 |
| -- **Vite:** For fast and modern build tooling. |
| 61 | +- **FFmpeg & Jimp:** Core engines for media conversion (video/audio via FFmpeg, images via Jimp). |
| 62 | +- **Node.js:** Backend services and media processing. |
| 63 | +- **Vite:** Modern build tool for fast development. |
52 | 64 | - **Tailwind CSS:** For styling and responsive design.
|
53 |
| -- **i18n:** For handling internationalization and multiple language support. |
| 65 | +- **i18n:** Internationalization for multi-language support. |
54 | 66 | - **Jest:** For unit testing.
|
55 |
| -- **GitHub Actions:** For CI/CD and release automation. |
| 67 | +- **GitHub Actions:** Continuous Integration/Continuous Deployment (CI/CD) and release automation. |
56 | 68 |
|
57 |
| -### Getting Started |
| 69 | +--- |
58 | 70 |
|
59 |
| -To get started with development: |
| 71 | +## Getting Started |
| 72 | + |
| 73 | +To get started with Comet: |
60 | 74 |
|
61 | 75 | 1. **Clone the repository:**
|
62 | 76 |
|
@@ -84,55 +98,53 @@ To get started with development:
|
84 | 98 | ```
|
85 | 99 |
|
86 | 100 | 5. **Test your changes:**
|
87 |
| - - Ensure your changes do not break existing functionality. |
88 |
| - - Write unit tests if possible and applicable. |
89 | 101 |
|
90 |
| -## Roadmap |
| 102 | + ```bash |
| 103 | + npm run test |
| 104 | + ``` |
91 | 105 |
|
92 |
| -- **Phase 1:** Basic UI Implementation (Completed) |
93 |
| - - File upload functionality. |
94 |
| - - Simple file selection and list management. |
| 106 | +--- |
95 | 107 |
|
96 |
| -- **Phase 2:** FFmpeg Integration (Completed) |
97 |
| - - Implement core conversion functionality. |
98 |
| - - Support for multiple video formats. |
99 |
| - - Real-time conversion feedback. |
| 108 | +## Roadmap |
100 | 109 |
|
101 |
| -- **Phase 3:** UI Enhancements and Customization Options (Completed) |
102 |
| - - Output format selection and settings. |
103 |
| - - Batch processing capabilities. |
| 110 | +- **Phase 1:** Basic UI Implementation (Completed) |
| 111 | + - File upload functionality, file list management. |
104 | 112 |
|
105 |
| -- **Phase 4:** Cross-Platform Testing and Release (In Progress) |
106 |
| - - Test and refine the app on macOS, Windows, and Linux. |
107 |
| - - **Package the app for distribution** on various platforms. |
108 |
| - - **Overcome code signing challenges**, particularly on macOS due to the cost of an Apple Developer membership. |
109 |
| - - Prepare for the first public release. |
| 113 | +- **Phase 2:** FFmpeg & Jimp Integration (Completed) |
| 114 | + - Core conversion functionality for video, audio, and images. |
110 | 115 |
|
111 |
| -## Support |
| 116 | +- **Phase 3:** UI Enhancements (Completed) |
| 117 | + - Improved conversion progress tracking and batch conversion options. |
112 | 118 |
|
113 |
| -If you find this project helpful or interesting, please consider giving it a ⭐. Your support and feedback are greatly appreciated! |
| 119 | +- **Phase 4:** Cross-Platform Testing and Releases (In Progress) |
| 120 | + - Testing on macOS, Windows, and Linux. |
| 121 | + - Package the app for distribution across platforms. |
| 122 | + - Address macOS code-signing challenges (currently blocked by lack of Apple Developer account). |
114 | 123 |
|
115 |
| -## Contributors |
| 124 | +--- |
116 | 125 |
|
117 |
| -- **Jerome Thayananthajothy** - Project Lead & Developer |
118 |
| -- [**Contributors List**](https://github.com/stellar-comet/comet/graphs/contributors) - A big thank you to all the amazing contributors! |
| 126 | +## Contributing |
119 | 127 |
|
120 |
| -## How to Contribute |
| 128 | +Contributions are welcome! Here’s how you can contribute: |
121 | 129 |
|
122 |
| -We welcome contributions and collaboration! Whether you're a seasoned developer or just starting out, there's a place for you in our project. Here's how you can help: |
| 130 | +1. **Fork the Repository:** Create a fork of this repository. |
| 131 | +2. **Clone the Repo:** Clone the forked repository to your local machine. |
| 132 | +3. **Create a Branch:** Create a new branch for your feature or fix. |
| 133 | +4. **Make Your Changes:** Ensure your changes work as expected and pass tests. |
| 134 | +5. **Submit a Pull Request:** Once done, submit a PR to the `main` branch. |
| 135 | +6. **Star the Repo:** If you like Comet, please give it a ⭐! |
123 | 136 |
|
124 |
| -1. **Fork the Repository:** Start by forking this repository to your GitHub account. |
125 |
| -2. **Clone the Repo:** Clone the forked repo to your local machine using `git clone`. |
126 |
| -3. **Set Up the Environment:** Follow the steps below to get the project running on your local machine. |
127 |
| -4. **Create a Branch:** Create a new branch for the feature or fix you plan to work on. |
128 |
| -5. **Submit a Pull Request:** Once your changes are ready, submit a pull request to the `main` branch of this repository. |
129 |
| -6. **Star the Repository:** If you like this project, please give it a star on GitHub. It helps us gain visibility and grow our community! |
| 137 | +--- |
130 | 138 |
|
131 | 139 | ## License
|
132 | 140 |
|
133 | 141 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
134 | 142 |
|
| 143 | +--- |
| 144 | + |
135 | 145 | ## Acknowledgements
|
136 | 146 |
|
137 |
| -- [FFmpeg](https://ffmpeg.org/) - The powerful multimedia framework that makes this project possible. |
138 |
| -- The Electron and Vue.js communities for their fantastic tools and support. |
| 147 | +- [FFmpeg](https://ffmpeg.org/) - The powerful multimedia framework that powers video/audio conversion in Comet. |
| 148 | +- [Jimp](https://github.com/oliver-moran/jimp) - Image processing in Comet. |
| 149 | +- [Electron](https://www.electronjs.org/) - For building cross-platform desktop apps. |
| 150 | +- The [Vue.js](https://vuejs.org/) and [Tailwind CSS](https://tailwindcss.com/) communities for their fantastic tools and support. |
0 commit comments