Skip to content

foxboolean/Easycut

Repository files navigation

视频处理工具

一个基于 Vite + React + Electron 的桌面视频工具,核心处理能力通过操作系统中安装的 ffmpeg 完成。当前支持四类能力:

  • 视频格式转换
  • 单视频多片段剪辑
  • 批量视频剪辑
  • 视频压缩

当前实现

前端使用 React 提供界面与参数配置,Electron 主进程负责调用系统 ffmpeg 执行真实的视频处理任务。处理结果默认输出到系统下载目录下的 VideoEditorExports 文件夹。

项目同时保留了纯 Web 启动方式,方便开发界面;但真正依赖 ffmpeg 的转换、剪辑、压缩功能需要在桌面版中使用。

环境要求

  • Node.js 20+,当前已在 Node.js 24 环境验证
  • npm 10+
  • 已安装并可在终端中直接调用的 ffmpeg

检查 ffmpeg 是否可用:

ffmpeg -version

本地启动

安装依赖:

npm i

只运行 Web 界面:

npm run dev

运行桌面开发版:

npm run dev:desktop

先构建前端,再直接启动 Electron:

npm run build:web
npm run start:desktop

打包桌面应用

构建桌面包:

npm run build:desktop

当前仓库已经验证过 macOS ARM64 的 zip 打包流程。打包产物默认输出到:

release/

主要脚本

  • npm run dev:启动 Vite 开发服务器
  • npm run dev:desktop:同时启动 Vite 和 Electron 桌面开发环境
  • npm run build:web:构建前端静态资源
  • npm run start:desktop:使用已构建的前端资源启动 Electron
  • npm run build:desktop:执行桌面应用打包

项目结构

src/
  app/
    App.tsx                         页面主入口
    components/
      VideoConverter.tsx            格式转换
      SingleVideoEditor.tsx         单视频多片段剪辑
      BatchVideoEditor.tsx          批量剪辑
      VideoCompressor.tsx           视频压缩
    lib/
      desktop.ts                    渲染层与 Electron API 封装
electron/
  main.mjs                          Electron 主进程与 ffmpeg IPC
  preload.mjs                       安全桥接

工作方式

  • electron/main.mjs 中注册了 video:trimvideo:convertvideo:compress 等 IPC
  • 前端通过 window.desktopAPI 调用这些能力
  • 输入文件路径通过 Electron 的 webUtils.getPathForFile() 获取
  • 输出文件会自动写入下载目录下的 VideoEditorExports

注意事项

  • 如果桌面版提示无法检测到 ffmpeg,先确认终端里 ffmpeg -version 可以正常执行
  • Web 模式主要用于界面开发和预览,不适合作为完整视频处理运行环境
  • 打包 dmg 时如果镜像源缺少 dmg-builder 资源,可能需要切换源或仅构建 zip

About

ffmpeg simple gui

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors