一個基於 Electron 的影片監控與處理工具,提供影片播放、時間控制和多影片合併功能。
- 支援 MP4 影片檔案播放
- 即時時間顯示和時間軸控制
- 開始/結束時間設定與管理
- 時間快速調整按鈕(±30分鐘、±1小時、±24小時)
- 多檔案 MP4 影片合併功能
- 自動檔名格式驗證
- 使用 FFmpeg 進行無損合併
- 支援大量檔案批次處理
- 基於 Chakra UI 的現代化介面
- 響應式設計,支援不同螢幕尺寸
- 直觀的操作控制面板
- 前端框架: React 19 + TypeScript
- 桌面應用: Electron 30
- UI 組件: Chakra UI v3
- 影片處理: FFmpeg + fluent-ffmpeg
- 狀態管理: Zustand
- 建置工具: Vite + electron-builder
- Node.js 18+
- pnpm (推薦)
pnpm installpnpm devpnpm buildsrc/
├── components/
│ ├── ui/
│ │ ├── video-controller.tsx # 影片控制器
│ │ ├── video-manager.tsx # 影片合併管理
│ │ ├── video-main.tsx # 主要影片顯示
│ │ └── open-file-button.tsx # 檔案開啟按鈕
│ └── chakra-ui/ # Chakra UI 組件
├── hook/
│ ├── use-video-merger.ts # 影片合併邏輯
│ └── use-file-handler.ts # 檔案處理邏輯
├── utils/
│ ├── check-filename.ts # 檔名驗證工具
│ ├── time-manager.ts # 時間管理工具
│ ├── store.ts # Zustand 狀態管理
│ └── event-bus.ts # 事件總線
└── electron/
├── main.ts # Electron 主程序
└── preload.ts # 預載腳本
- 開啟影片: 點擊「開啟檔案」按鈕選擇 MP4 檔案
- 時間控制: 使用控制面板調整開始/結束時間
- 影片合併: 選擇多個影片檔案進行合併處理
- 時間調整: 使用快速調整按鈕進行時間偏移
影片合併功能要求檔案名稱遵循特定格式以確保正確排序:
- 支援數字序列檔名(如:001.mp4, 002.mp4)
- 自動驗證檔案連續性
Created by hungsean