@gitruck/cli 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +10 -4
- package/LICENSE +21 -21
- package/README.md +177 -154
- package/dist/index.js +2755 -40
- package/package.json +10 -4
- package/skills/gtrk-oralcut/SKILL.md +112 -109
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitruck/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "同合云成片流水线 CLI —— agent 驱动云端任务、产物拉回本地、三方工程文件(客户端/剪映/PR)互通。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Gitruck (同合云)",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"node": ">=20.6"
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
|
-
"access": "public"
|
|
31
|
+
"access": "public",
|
|
32
|
+
"registry": "https://registry.npmjs.org/"
|
|
32
33
|
},
|
|
33
34
|
"keywords": [
|
|
34
35
|
"gitruck",
|
|
@@ -45,11 +46,16 @@
|
|
|
45
46
|
"gtrk": "bun run src/index.ts",
|
|
46
47
|
"build": "bun build ./src/index.ts --target=node --outfile dist/index.js",
|
|
47
48
|
"typecheck": "tsc --noEmit",
|
|
48
|
-
"prepublishOnly": "bun run build"
|
|
49
|
+
"prepublishOnly": "bun run build",
|
|
50
|
+
"test": "esbuild src/lib/chunk-upload.ts --bundle --platform=node --format=esm --outfile=.test-build/chunk-upload.mjs && node --test \"test/*.test.mjs\""
|
|
49
51
|
},
|
|
50
52
|
"devDependencies": {
|
|
51
|
-
"commander": "^12.1.0",
|
|
52
53
|
"bun-types": "^1.1.0",
|
|
54
|
+
"commander": "^12.1.0",
|
|
55
|
+
"esbuild": "^0.28.1",
|
|
53
56
|
"typescript": "^5.6.0"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"hash-wasm": "^4.12.0"
|
|
54
60
|
}
|
|
55
61
|
}
|
|
@@ -1,109 +1,112 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gtrk-oralcut
|
|
3
|
-
description: 智能口播剪辑闭环——把一条口播原视频(毛片)通过同合云云端剪掉废话/重复/长停顿,产出客户端(gtrk)+剪映+PR 三方工程文件并自动打开产物目录。当用户想「剪口播/剪个视频/智能剪辑/去掉废话和停顿/把这条口播剪一版/出剪映草稿/生成剪辑工程/oral cut」时使用本 skill。凡涉及把口播毛片做成可二次精修的剪辑工程,优先用本 skill 驱动 gtrk CLI,不要手搓 ffmpeg。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 口播剪辑(gtrk-oralcut)
|
|
7
|
-
|
|
8
|
-
把用户的口播毛片,用 `gtrk` CLI 跑通「上传 → 云端智能口播剪辑 → 拉回三方工程文件 → 打开」,再把产物目录 + 三端打开方式回给用户。**CLI 是手、你是脑。**
|
|
9
|
-
|
|
10
|
-
> **本 skill 已含你需要的全部信息**(参数、取值、执行、读报告、排错),照它做即可,不用也无法去查外部文档。(源仓库另有一份更全的工具无关版 `AGENT.md`,那是给在仓库里开发的人看的,与你无关。)
|
|
11
|
-
|
|
12
|
-
## 前置:CLI 装没装 + 体检
|
|
13
|
-
|
|
14
|
-
先跑 `gtrk doctor`(它顺带验证 `gtrk` 命令本身在不在):
|
|
15
|
-
- **`gtrk` 找不到 / command not found** → CLI 没装 → 让用户装 `npm i -g @gitruck/cli@latest`(需先有 Node.js),再重试。
|
|
16
|
-
- 报「缺 API Key」→ 让用户先跑一次 `gtrk init`(一次性配 Key + 剪映目录,**交互式、需真终端**,你别替他跑)。
|
|
17
|
-
- 报云端连不上 / 剪映目录没配 → 照提示让用户处理。
|
|
18
|
-
- 全绿就往下走。
|
|
19
|
-
|
|
20
|
-
## 把用户的话变成一次调用
|
|
21
|
-
|
|
22
|
-
> **每次调用都必须带 `--json`**(成功时 stdout 只出一行结果 JSON、人读日志转 stderr),你才能解析结果 + 读报告。不是可选项。
|
|
23
|
-
|
|
24
|
-
从用户消息里取这几样,缺关键的就问:
|
|
25
|
-
|
|
26
|
-
1. **毛片路径**(必需):口播原视频的本地路径。没有就问。
|
|
27
|
-
2. **文稿**:用户给了逐字稿/文字稿**文件** → `--script <txt文件路径>`(接的是 .txt 文件路径,不是稿子正文);没给则不传(CLI 会探毛片同名 `.txt`,有就自动按有稿剪、更准;无则云端无稿智能重建)。
|
|
28
|
-
3. **节奏**:用户说「快/紧凑/卡点狠」→ `--preset compact`;「稳/别删太多停顿」→ `--preset steady`;没特别说就不传(CLI 默认 `concise` 精练)。
|
|
29
|
-
4. **只要某端**:只要客户端 → `--formats gtrk`;只要剪映 → `--formats jianying`;只要 PR → `--formats xml`(全部格式见下表、逗号可多选);默认三端全给(`gtrk,jianying,xml`)。
|
|
30
|
-
|
|
31
|
-
## 完整参数规格 —— 按用户需求因势象形、自由组合
|
|
32
|
-
|
|
33
|
-
**你手上有云端全部参数(下表)。按用户的具体诉求自由决定用哪些、怎么配——需要就调、没提就跑默认(默认已是给多数人调好的)。** 只有一条要求:**名字 / 取值 / 范围照下表用**(别记错拼错);万一传越界,云端会报 `6016` 并附具体原因,照着改即可——乱传不会产出错误成片,只会明确报错。
|
|
34
|
-
|
|
35
|
-
| 用户想要 | CLI 怎么传 | 取值 · 默认 | 说明 |
|
|
36
|
-
|---|---|---|---|
|
|
37
|
-
| 有稿对齐(更准) | `--script <txt>`(或毛片同名 `.txt` 自动) | 10–50000 字 · 缺省无稿重建 | 有稿逐字对齐质量最佳;无稿智能重建终稿 |
|
|
38
|
-
| 换语种 | `--lang <码>` | `zh-CN`/`en-US`/`ja-JP`… · 默认 `zh-CN` | 不传即 CLI 默认发 `zh-CN`;主推中文,余语种尽力而为 |
|
|
39
|
-
| 产哪些工程格式 | `--formats <逗号列表>` | `xml`/`fcpxml`/`otio`/`jianying`/`capcut`/`gtrk` · CLI 缺省 `gtrk,jianying,xml` | 可多选 |
|
|
40
|
-
| 顺带渲个成片视频 | `--render` | 开关 · 缺省不渲 | 加它则额外出 mp4 成片 |
|
|
41
|
-
| 成片画质 | `--crf <n>`(配 `--render`) | 整数 14–28 · `18` | 越小越清晰 / 越大体积越小 |
|
|
42
|
-
| 成片编码 | `--codec <c>`(配 `--render`) | `h264` · `h264` | 当前仅 h264 |
|
|
43
|
-
| 节奏松紧 | `--preset <名>` | `steady`/`concise`/`compact` · 默认 `concise` | 不传即 CLI 默认发 `concise`(精练);见下方预设表,铺底后可逐项覆盖 |
|
|
44
|
-
| **剪不准 / 剪掉真内容 / 有话没剪进去** | `--visual-assist` | 开关 · 关 |
|
|
45
|
-
| 别随说话人节奏自适应 | `--no-adaptive-rhythm` |
|
|
46
|
-
| 剪映草稿目录(非标准位置) | `--jianying-draft-dir <目录>`(或 `auto`) | 路径 · 读 init 配置 / 自动探测 | 出剪映可直开草稿需要它 |
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
| `
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
>
|
|
72
|
-
>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
93
|
-
- `
|
|
94
|
-
- `
|
|
95
|
-
- `
|
|
96
|
-
-
|
|
97
|
-
- `
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
1
|
+
---
|
|
2
|
+
name: gtrk-oralcut
|
|
3
|
+
description: 智能口播剪辑闭环——把一条口播原视频(毛片)通过同合云云端剪掉废话/重复/长停顿,产出客户端(gtrk)+剪映+PR 三方工程文件并自动打开产物目录。当用户想「剪口播/剪个视频/智能剪辑/去掉废话和停顿/把这条口播剪一版/出剪映草稿/生成剪辑工程/oral cut」时使用本 skill。凡涉及把口播毛片做成可二次精修的剪辑工程,优先用本 skill 驱动 gtrk CLI,不要手搓 ffmpeg。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 口播剪辑(gtrk-oralcut)
|
|
7
|
+
|
|
8
|
+
把用户的口播毛片,用 `gtrk` CLI 跑通「上传 → 云端智能口播剪辑 → 拉回三方工程文件 → 打开」,再把产物目录 + 三端打开方式回给用户。**CLI 是手、你是脑。**
|
|
9
|
+
|
|
10
|
+
> **本 skill 已含你需要的全部信息**(参数、取值、执行、读报告、排错),照它做即可,不用也无法去查外部文档。(源仓库另有一份更全的工具无关版 `AGENT.md`,那是给在仓库里开发的人看的,与你无关。)
|
|
11
|
+
|
|
12
|
+
## 前置:CLI 装没装 + 体检
|
|
13
|
+
|
|
14
|
+
先跑 `gtrk doctor`(它顺带验证 `gtrk` 命令本身在不在):
|
|
15
|
+
- **`gtrk` 找不到 / command not found** → CLI 没装 → 让用户装 `npm i -g @gitruck/cli@latest`(需先有 Node.js),再重试。
|
|
16
|
+
- 报「缺 API Key」→ 让用户先跑一次 `gtrk init`(一次性配 Key + 剪映目录,**交互式、需真终端**,你别替他跑)。
|
|
17
|
+
- 报云端连不上 / 剪映目录没配 → 照提示让用户处理。
|
|
18
|
+
- 全绿就往下走。
|
|
19
|
+
|
|
20
|
+
## 把用户的话变成一次调用
|
|
21
|
+
|
|
22
|
+
> **每次调用都必须带 `--json`**(成功时 stdout 只出一行结果 JSON、人读日志转 stderr),你才能解析结果 + 读报告。不是可选项。
|
|
23
|
+
|
|
24
|
+
从用户消息里取这几样,缺关键的就问:
|
|
25
|
+
|
|
26
|
+
1. **毛片路径**(必需):口播原视频的本地路径。没有就问。
|
|
27
|
+
2. **文稿**:用户给了逐字稿/文字稿**文件** → `--script <txt文件路径>`(接的是 .txt 文件路径,不是稿子正文);没给则不传(CLI 会探毛片同名 `.txt`,有就自动按有稿剪、更准;无则云端无稿智能重建)。
|
|
28
|
+
3. **节奏**:用户说「快/紧凑/卡点狠」→ `--preset compact`;「稳/别删太多停顿」→ `--preset steady`;没特别说就不传(CLI 默认 `concise` 精练)。
|
|
29
|
+
4. **只要某端**:只要客户端 → `--formats gtrk`;只要剪映 → `--formats jianying`;只要 PR → `--formats xml`(全部格式见下表、逗号可多选);默认三端全给(`gtrk,jianying,xml`)。
|
|
30
|
+
|
|
31
|
+
## 完整参数规格 —— 按用户需求因势象形、自由组合
|
|
32
|
+
|
|
33
|
+
**你手上有云端全部参数(下表)。按用户的具体诉求自由决定用哪些、怎么配——需要就调、没提就跑默认(默认已是给多数人调好的)。** 只有一条要求:**名字 / 取值 / 范围照下表用**(别记错拼错);万一传越界,云端会报 `6016` 并附具体原因,照着改即可——乱传不会产出错误成片,只会明确报错。
|
|
34
|
+
|
|
35
|
+
| 用户想要 | CLI 怎么传 | 取值 · 默认 | 说明 |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| 有稿对齐(更准) | `--script <txt>`(或毛片同名 `.txt` 自动) | 10–50000 字 · 缺省无稿重建 | 有稿逐字对齐质量最佳;无稿智能重建终稿 |
|
|
38
|
+
| 换语种 | `--lang <码>` | `zh-CN`/`en-US`/`ja-JP`… · 默认 `zh-CN` | 不传即 CLI 默认发 `zh-CN`;主推中文,余语种尽力而为 |
|
|
39
|
+
| 产哪些工程格式 | `--formats <逗号列表>` | `xml`/`fcpxml`/`otio`/`jianying`/`capcut`/`gtrk` · CLI 缺省 `gtrk,jianying,xml` | 可多选 |
|
|
40
|
+
| 顺带渲个成片视频 | `--render` | 开关 · 缺省不渲 | 加它则额外出 mp4 成片 |
|
|
41
|
+
| 成片画质 | `--crf <n>`(配 `--render`) | 整数 14–28 · `18` | 越小越清晰 / 越大体积越小 |
|
|
42
|
+
| 成片编码 | `--codec <c>`(配 `--render`) | `h264` · `h264` | 当前仅 h264 |
|
|
43
|
+
| 节奏松紧 | `--preset <名>` | `steady`/`concise`/`compact` · 默认 `concise` | 不传即 CLI 默认发 `concise`(精练);见下方预设表,铺底后可逐项覆盖 |
|
|
44
|
+
| **剪不准 / 剪掉真内容 / 有话没剪进去** | `--visual-assist` | 开关 · 关 | **视觉找补兜底**:画面说话检测保护疑似漏识别段不被误剪并重识别捞回(需说话人面部基本可见);会增加处理耗时(与主识别并行、约两者较大值),但不额外计费、绝不凭空生成 |
|
|
45
|
+
| 别随说话人节奏自适应 | `--no-adaptive-rhythm` | 一元 flag:传即关闭 · 自适应默认开 | 是否定 flag(不接受 `=值` 赋值);关了改用固定标点停顿表 |
|
|
46
|
+
| 剪映草稿目录(非标准位置) | `--jianying-draft-dir <目录>`(或 `auto`) | 路径 · 读 init 配置 / 自动探测 | 出剪映可直开草稿需要它 |
|
|
47
|
+
| 工程落盘到别处 | `--out <目录>`(或 `-o`) | 路径 · 缺省 `<毛片同目录>/<毛片名>-video-project-<时间戳>` | 想把产物放指定位置时用 |
|
|
48
|
+
|
|
49
|
+
**更细的节奏散参数**(无一等 flag,用 `--param 键=值` 或嵌套 `--params-json`):
|
|
50
|
+
|
|
51
|
+
| 参数 | 传法 | 取值 · 默认 | 说明 |
|
|
52
|
+
|---|---|---|---|
|
|
53
|
+
| `punctuation_breaks` | `--params-json '{"punctuation_breaks":{"。":0.6,",":0.3}}'` | 每标点 0–5 秒 · 见预设表 | 逐标点停顿;键只能是 `,、;:。!?—……` 和 `paragraph`(段落) |
|
|
54
|
+
| `intra_gap_max` | `--param intra_gap_max=0.4` | 0–5 · `0.35` | 句内停顿超此值算气口、触发收紧 |
|
|
55
|
+
| `intra_gap_target` | `--param intra_gap_target=0.05` | 0–5 且 <max · `0.10` | 气口收到的目标秒数 |
|
|
56
|
+
| `pad_in` / `pad_out` | `--param pad_out=0.15` | 0–5 · `0.05` / `0.08` | 保留片段头 / 尾呼吸留白 |
|
|
57
|
+
| `render.audio_crossfade_ms` | `--params-json '{"render":{"audio_crossfade_ms":12}}'` | 0–50 · `8` | 切点淡化毫秒,`0`=硬切;**需配 `--render`**(属成片音频淡化,不开 --render 云端忽略此字段) |
|
|
58
|
+
|
|
59
|
+
**节奏预设表 · 完整值**(选最贴内容类型的,再逐项覆盖散参数;「默认」列 = 不选预设时的基线,也即各标点的默认停顿):
|
|
60
|
+
|
|
61
|
+
| 参数(秒) | `steady` 稳健 | `concise` 精练 | `compact` 紧凑 | 默认 |
|
|
62
|
+
|---|---|---|---|---|
|
|
63
|
+
| 适用 | 讲述 / 教学 | 自媒体中长视频 | 短视频 / 广告 | 通用 |
|
|
64
|
+
| `、` / `,` / `;` | 0.18 / 0.25 / 0.36 | 0.12 / 0.18 / 0.26 | 0.06 / 0.08 / 0.12 | 0.15 / 0.20 / 0.30 |
|
|
65
|
+
| `:` / `—` | 0.45 / 0.55 | 0.32 / 0.40 | 0.15 / 0.18 | 0.35 / 0.45 |
|
|
66
|
+
| `。` `!` / `?` | 0.55 / 0.60 | 0.40 / 0.45 | 0.18 / 0.20 | 0.45 / 0.50 |
|
|
67
|
+
| `……` / `paragraph`(段落) | 0.75 / 1.20 | 0.55 / 0.90 | 0.25 / 0.40 | 0.60 / 1.00 |
|
|
68
|
+
| `intra_gap_max` / `intra_gap_target` | 0.45 / 0.15 | 0.35 / 0.10 | 0.25 / 0.05 | 0.35 / 0.10 |
|
|
69
|
+
| `pad_in` / `pad_out` | 0.05 / 0.10 | 0.05 / 0.08 | 0.03 / 0.05 | 0.05 / 0.08 |
|
|
70
|
+
|
|
71
|
+
> **因势象形举例**:「教学口播、别删太狠、句号后多顿一下」→ `--preset steady --params-json '{"punctuation_breaks":{"。":0.7}}'`;「英文短视频卡点狠、顺便出成片」→ `--lang en-US --preset compact --render`;「上次有句话没剪进去」→ `--visual-assist`。用户**自己点名**某参数+值 → 照他原样 `--param`/`--params-json` 透传(CLI 底层支持任意云端参数)。
|
|
72
|
+
>
|
|
73
|
+
> **以上就是你需要的全部参数——本 skill 自足,别去别处查**(`gtrk oralcut --help` 也随时列全部 flag)。官网另有一份面向开发者的原始 HTTP API 文档,那是给人看的,你不必也无法访问。
|
|
74
|
+
|
|
75
|
+
## 执行(每次都带 `--json`)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
gtrk oralcut "<毛片绝对路径>" [--script "<txt路径>"] [--preset steady|concise|compact] [其它参数…] --json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- `--json`:人读日志走 stderr,**成功时 stdout 只有一行结果 JSON**:
|
|
82
|
+
`{ ok, outDir, files:{gtrk:[],jianying:[],xml:[]}, jianyingDraftPath, report, errors, taskId, fileId }`
|
|
83
|
+
- **命令失败**(毛片路径错 / 鉴权失败 / 参数越界 6016 等)→ **进程非 0 退出、报错打到 stderr、stdout 无 JSON**。先看退出码,非 0 就把 stderr 的报错如实回给用户、别当成功。
|
|
84
|
+
- 默认会自动打开产物目录(用户能直接看到文件);纯脚本/无头环境才加 `--no-open`。
|
|
85
|
+
- 云端处理是分钟级,耐心等命令返回。
|
|
86
|
+
|
|
87
|
+
## 跑完读报告、给用户交代、按需调整(因势象形的另一半)
|
|
88
|
+
|
|
89
|
+
`--json` 的 stdout 那行带 **`report`**(云端返回的原始剪辑报告对象,字段按需读、个别可能缺,读前判空)——读它,别只回一句"剪好了":
|
|
90
|
+
|
|
91
|
+
- `duration_before` → `duration_after`:剪了多少(如 114.7s → 68.6s)。
|
|
92
|
+
- `script_source` + `final_script`:终稿来源与内容(`script_source`=`user` 用户给稿 / `rebuilt` 智能重建)。**无稿重建(`rebuilt`)时务必把 `final_script` 回给用户核对**——那是机器猜出来的终稿,可能跟本意有出入。
|
|
93
|
+
- `dropped[]`:剔掉了哪些段(元素 `{start,end,asr_text,reason}`,`reason`:`retake` 重读 / `misread` 口误·弃读·终稿外内容)——可挑几条告诉用户「去掉了这些重录 / 口误或非终稿内容」。
|
|
94
|
+
- `coverage`(0–1):终稿覆盖率。**低于 0.6(附 `low_coverage`)= 文稿与实拍严重不符** → 提醒用户核对文稿、或考虑无稿重跑。
|
|
95
|
+
- `uncovered_script[]`:**文稿里有、实拍没找到的段(漏读)** → 如实告诉用户「『xx』这段没在录像里找到」;疑似是漏识别而非真漏读时,建议加 `--visual-assist` 重跑。
|
|
96
|
+
- `review_points[]`:建议人工复核处(`{time,note}`,识别置信度偏低)。
|
|
97
|
+
- `insufficient_breaks[]`:源素材留白不足、停顿没达到设定值的位置(`{time,want,got}`)——想让停顿更足可调 `--preset`/散参数,但受原素材限制。
|
|
98
|
+
- `rhythm_preset`(实际采用的预设名、无预设为 `null`)/ `adaptive_rhythm`(自适应是否生效;生效时另有 `pause_profile` 说话人停顿画像,调参参照)/ `analysis_degraded`(是否降级到纯机械规则)。
|
|
99
|
+
- 开了 `--visual-assist`:`suspect_omissions` / `stt_recovered`(找回了哪些字)/ `visual_assist_degraded`。
|
|
100
|
+
- `ok`:`true` = 全部格式成功、`errors` 为空;只要有一个格式失败 `ok` 即 `false` 且 `errors` 非空(其余格式仍可用)→ 如实说哪个格式没出来、为什么,别谎报三端都好。
|
|
101
|
+
|
|
102
|
+
**据此因势象形调整**(同一毛片可反复剪对比):覆盖率低 / 漏读多 → 开 `--visual-assist` 或核对文稿重跑;节奏不满意 → 调 `--preset` / 散参数重跑;某格式失败 → 补 `--jianying-draft-dir` / `--reupload` 重跑。
|
|
103
|
+
|
|
104
|
+
跑完确认 `files.gtrk[0]` 在;要剪映确认 `jianyingDraftPath` 非空。
|
|
105
|
+
|
|
106
|
+
## 回给用户(三端打开方式)
|
|
107
|
+
|
|
108
|
+
- **客户端**:在同合云桌面客户端(OpenCut Gitruck Edition)里「打开工程」选 `files.gtrk[0]`(…/gtrk/project.gtrk)。
|
|
109
|
+
- **剪映**:已自动落到剪映草稿目录(`jianyingDraftPath`),开剪映在项目列表里找**同名工程**即可。
|
|
110
|
+
- **PR/FCP**:Premiere 里「文件 > 导入」`files.xml[0]`(…/xml/premiere.xml)。
|
|
111
|
+
|
|
112
|
+
产物目录名形如 `<毛片名>-video-project-<时间戳>`,靠文件名 + 时间认出是哪一次剪辑、互不覆盖。
|