Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tkwonn/video-compressor
Backend Project #1
https://github.com/tkwonn/video-compressor
ffmpeg-gui inter-process-communication ipc
Last synced: 12 days ago
JSON representation
Backend Project #1
- Host: GitHub
- URL: https://github.com/tkwonn/video-compressor
- Owner: tkwonn
- Created: 2024-05-30T05:33:02.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-12-02T05:58:01.000Z (about 1 month ago)
- Last Synced: 2024-12-02T06:22:57.300Z (about 1 month ago)
- Topics: ffmpeg-gui, inter-process-communication, ipc
- Language: TypeScript
- Homepage:
- Size: 1.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Video compressor
[![GitHub last commit](https://img.shields.io/github/last-commit/tkwonn/video-compressor?color=chocolate)](https://github.com/tkwonn/video-compressor/commits/)
[![Release](https://github.com/tkwonn/video-compressor/actions/workflows/release.yml/badge.svg)](https://github.com/tkwonn/video-compressor/actions/workflows/release.yml)
## What is this
This desktop application lets users compress or convert videos easily through a simple dashboard.
## Demo
Step1.
Upload your video file and select the desired compression settings.
Click the "Compress" button to start the compression process.https://github.com/user-attachments/assets/d209c39b-f2ba-4671-a6fe-e83afef4e49f
Step2.
Upload your video and choose the target video format.
Click the "Convert" button to begin the conversion.https://github.com/user-attachments/assets/7d7f076f-a5d8-4bac-b3cc-a1a10e25b0d9
Step3.
Get the `.dmg` from the releases page and launch the app.https://github.com/user-attachments/assets/cdb51ad8-4183-4de8-933e-b5d645f6fa71
## Built with
| **Category** | **Technology** |
|------------------------------------------|------------------------------------------|
| Frontend | HTML, TailwindCSS, TypeScript, React |
| Framework & Tools | Electron.js, ffmpeg |
| CI/CD | GitHub Actions |
## Download
[Download from here](https://github.com/tkwonn/video-compressor/releases)
> [!IMPORTANT]
> This application is currently unsigned as it was created solely for learning purposes.#### Why is the app unsigned?
Code signing requires an Apple Developer Program subscription and other paid certificates for Windows.
## Architecture
Electron's built-in IPC mechanism, implements message-passing between the main process, which accesses the OS and ffmpeg via Node.js, and the renderer process, which manages the UI through the HTML DOM.
```mermaid
flowchart LR
subgraph MP["Main Process"]
N[Node.js Runtime]
FF[ffmpeg Library]
IM[ipcMain]
endsubgraph CP["Channel Communication"]
CH["Message Channel"]
endsubgraph RP["Renderer Process"]
IR[ipcRenderer]
UI[User Interface]
endN --> FF
IM <--> CH
CH <--> IR
IR --> UIclassDef mainProcess fill:#e1f5fe,stroke:#01579b,color:#01579b
classDef rendererProcess fill:#f3e5f5,stroke:#4a148c,color:#4a148c
classDef channel fill:#fff3e0,stroke:#e65100,color:#e65100class MP mainProcess
class RP rendererProcess
class CP channel
```