|
1 | | -# 您好!👋 |
| 1 | +# FFBox 👋 |
2 | 2 |
|
3 | | -## ARE YOU OK ? 🙋 |
| 3 | +一个多媒体转码百宝箱 / 一个 FFmpeg 的套壳 |
4 | 4 |
|
5 | | -### I'm very happy to ... |
| 5 | +软件介绍请转到 [FFBox 官网](http://ffbox.ttqf.tech/)。 |
6 | 6 |
|
7 | | - See you here! |
| 7 | + |
8 | 8 |
|
9 | | -**不过 4.0 版本仍在开发中,各方面都在 under construction...** |
| 9 | +## 工程简介 |
10 | 10 |
|
11 | | - 我把默认分支切到 4.0+,是为了让 FFBox 看起来没有停更 _(:з」∠)_ |
| 11 | +您现在看到的是 3.x 版本的 readme 文件。FFBox 在不同的大版本之间,使用的技术/框架存在区别。若需查阅版本对应的 readme,建议切换到对应分支。 |
12 | 12 |
|
13 | | -*您可以切到 3.0+ 分支阅览一年前就已经做完的 3.0 版的代码* |
| 13 | +- `1.x 版本`:经典的“html + css + js”前端三件套,没有工程化和模块化。 |
| 14 | +- `2.x 版本`:使用 vue 2 进行工程化、模块化开发。主要控制逻辑集中在状态管理器上。 |
| 15 | +- `3.x 版本`:更好的高聚低耦与工程结构,服务与 UI 分离,引入 TypeScript,支持远程控制。 |
| 16 | +- `4.x 版本`:全新界面,使用更新、更多样的技术架构,自行编写开发与打包脚本,彻底分离前后端。 |
14 | 17 |
|
15 | | -***也可以到 `日志.md` 去看 4.0 版本的最新开发进度啦~ 🤣*** |
| 18 | +## 准备自行编译 |
| 19 | + |
| 20 | +由于这里不是前端课堂,此处当然不会有手把手的详细指南🌚。以下会列出一些需要的东西,您可自行了解: |
| 21 | + |
| 22 | +1. `Visual Studio Code`:这是本项目推荐使用的编辑器。本项目已为该编辑器进行了启动后端等相关任务的编写。 |
| 23 | +2. `node.js`:它是一个 JavaScript 运行环境,主要用于项目的编译。建议使用 `nvm`,当项目运行不起来的时候可尝试使用它来切换一下 node.js 的版本。 |
| 24 | +3. `pnpm`:它是本项目推荐使用的依赖管理器。 |
| 25 | +4. `pnpm set registry ___` `pnpm set ELECTRON_MIRROR`:如果您无法正常下载依赖,请配置源。 |
| 26 | +5. `Visual Studio 2022`:如果您要在 Windows 平台上编译 FFBoxHelper,那么这是必须的。 |
| 27 | + |
| 28 | +## FFmpeg |
| 29 | + |
| 30 | +本项目并不自带 FFmpeg。如果您没有 FFmpeg,那么 FFBox 只能为您展示启动命令,不能进行转码工作。您需要在 [FFmpeg 下载页面](http://ffmpeg.org/download.html) 下载 FFmpeg 后,根据 FFBox 的指示,将其放入系统路径(推荐)或程序目录中。 |
| 31 | + |
| 32 | +## 开发与打包流程 |
| 33 | + |
| 34 | +```mermaid |
| 35 | +flowchart TB |
| 36 | + subgraph DFmjs[dev-frontend.mjs] |
| 37 | + IPE1[injectProcessEnv] --> CSR["createServer(renderer)"] --> watchPreload --> watchMain |
| 38 | + end |
| 39 | + subgraph BBmjs[build-backend.mjs] |
| 40 | + IPE2[injectProcessEnv] --> BB1["buildBackend"] |
| 41 | + end |
| 42 | + subgraph BBmjs2[build-backend.mjs] |
| 43 | + IPE3[injectProcessEnv] --> BB2["buildBackend"] |
| 44 | + end |
| 45 | + subgraph BFmjs[build-frontend.mjs] |
| 46 | + IPE4[injectProcessEnv] --> buildMain --> buildPreload --> buildRenderer |
| 47 | + end |
| 48 | + subgraph VCLaunchB["vscode launch 编译调试后端 (vite)"] |
| 49 | + VSTask["vscode task 启动"] --> BBmjs2 |
| 50 | + end |
| 51 | + subgraph 生产前端["生产前端【npm run build:frontend】"] |
| 52 | + BFmjs |
| 53 | + end |
| 54 | + subgraph 生产后端["生产后端【npm run build:backend】"] |
| 55 | + BBmjs --> PB[pkg:backend] |
| 56 | + end |
| 57 | + subgraph 开发前端["开发前端【npm run dev:frontend】"] |
| 58 | + DFmjs |
| 59 | + end |
| 60 | + subgraph 开发后端["开发后端【vscode F5】"] |
| 61 | + VCLaunchB |
| 62 | + end |
| 63 | +
|
| 64 | + 注1[注意 Windows Helper 需要使用 VS 手动编译并放入项目根目录] |
| 65 | + 开发("开发") --> 开发后端 --> 开发前端 |
| 66 | + 打包("打包") --> 生产后端 & 生产前端 --> pkg["npm run package"] |
| 67 | + 注1 --> 开发 & 打包[打包【npm run build:everything】] |
| 68 | +``` |
0 commit comments