feat(video-pipeline): 添加关键字氛围词花字叠加和Oss URL回写功能

- 新增 Q17 关键字氛围词问答项,支持关闭/默认/自定义花字效果
- 在 manifest 和 account.json 中添加 keyword 和 keywordStyle 字段
- 实现关键字氛围词在画面中央的叠加逻辑,支持动画、阴影、文字效果等配置
- 在 assemble 流程中增加 `keywords` 步骤,自动读取账号配置生成花字
- 修复音频上传后未回写 OSS URL 到 manifest 的问题,避免重复上传
This commit is contained in:
2026-05-01 15:21:59 +08:00
parent 3a641244a5
commit e4723d9ce3
8 changed files with 157 additions and 1 deletions

View File

@@ -21,6 +21,17 @@
"highlightColor": "#FF6B35",
"bold": true
},
"keywordStyle": {
"textEffect": "简约白色黑边花字",
"fontSize": 60,
"color": "#FFFFFF",
"bold": true,
"transformY": 0,
"inAnimation": "打字机效果",
"outAnimation": "模糊淡出",
"inAnimDuration": 300000,
"outAnimDuration": 300000
},
"defaultBGM": "",
"transitions": {
"strategy": "rhythm",

View File

@@ -317,12 +317,17 @@ undone
"id": 1,
"shotDesc": "英文画面描述图文50-80词 / 视频30-60词",
"script": "该段完整原文逐字摘取,一字不改,禁止改写/提炼/摘要",
"keyword": "2-6字氛围关键词可选",
"duration": 5,
"directorRef": "tarantino / kitano / fincher"
}
]
```
**字段说明**
- `script`:该段的**完整原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词
- `keyword`:该段的**氛围关键词**可选2-6 个字,以花字效果叠加在画面中央增强冲击力。提炼该段最核心的意象/概念,偏向名词或动名词,有画面感。无合适关键词时省略该字段
## 九、启动指令与自检
收到文案后:

View File

@@ -36,6 +36,17 @@
"inAnimation": "淡入",
"outAnimation": "淡出"
},
"keywordStyle": {
"textEffect": "简约白色黑边花字",
"fontSize": 60,
"color": "#FFFFFF",
"bold": true,
"transformY": 0,
"inAnimation": "打字机效果",
"outAnimation": "模糊淡出",
"inAnimDuration": 300000,
"outAnimDuration": 300000
},
"defaultBGM": "",
"transitions": {
"strategy": "rhythm",

View File

@@ -344,6 +344,7 @@ something that cannot be undone
"id": 1,
"shotDesc": "英文画面描述图文50-80词 / 视频30-60词",
"script": "该段的完整原文案,不提炼,保留论证、例子、细节",
"keyword": "2-6字氛围关键词",
"duration": 5,
"directorRef": "tarantino / kitano / fincher"
}
@@ -352,6 +353,10 @@ something that cannot be undone
**字段说明**
- `script`:该段的**完整原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词。包含论证、例子、细节,不是金句
- `keyword`:该段的**氛围关键词**2-6 个字,以花字效果叠加在画面中央增强冲击力。规则:
- 提炼该段最核心的意象/概念,不是复述文案
- 偏向名词或动名词,有画面感:"权力""沉默""位置""逐帧拆""审视"
- 不是每段都必须有,无合适关键词时省略该字段
- 按语义单元切割,确保每段表达一个完整观点或例子
## 十一、完整示例
@@ -381,6 +386,7 @@ something that cannot be undone
"id": 1,
"shotDesc": "a solitary figure in a dark traditional robe seated at the far end of a dim wooden hall, three-quarters of the frame filled with empty floor and gathering shadow — the man occupies only the leftmost edge of the composition, back straight, shoulders set with the stillness of someone who has already decided. The space around him continues to darken.",
"script": "权力从来不大声说话。它藏在一个人坐在哪里,看向哪里,在哪句话之后沉默了三秒。",
"keyword": "权力",
"duration": 6,
"directorRef": "kitano"
},
@@ -388,6 +394,7 @@ something that cannot be undone
"id": 2,
"shotDesc": "extreme close-up of a man's eyes, half-lowered, tracking slowly across the room with the precision of someone reading a document no one else can see — his gaze moves but his head does not. In the blurred background, the edge of another figure waits, unknowingly being measured and filed away.",
"script": "权力藏在一个人坐在哪里,看向哪里。你看到的是他的位置,他看到的是整个房间的结构。",
"keyword": "位置",
"duration": 6,
"directorRef": "tarantino"
},
@@ -395,6 +402,7 @@ something that cannot be undone
"id": 3,
"shotDesc": "a near-symmetrical frame — two hands visible on a low table, one pair relaxed and open, one pair with fingers slowly pressing flat, knuckles beginning to whiten. The geometric precision of the table edge divides the frame exactly in half. The whitening knuckles are the only thing breaking the symmetry — and the silence.",
"script": "在哪句话之后沉默了三秒。这种沉默不是等待,是审视。今天,我们逐帧拆解权力运行的底层逻辑。",
"keyword": "审视",
"duration": 6,
"directorRef": "fincher"
}
@@ -426,6 +434,7 @@ something that cannot be undone
"id": 1,
"shotDesc": "a figure seated at the far end of a dim wooden hall, three-quarters of the frame filled with empty floor — the man's body is perfectly still but his head is beginning a slow almost imperceptible turn toward the door at the right edge of frame, as if he has heard something the camera has not yet revealed. The shadow on the floor continues to lengthen.",
"script": "权力从来不大声说话。它藏在一个人坐在哪里,看向哪里,在哪句话之后沉默了三秒。",
"keyword": "权力",
"duration": 5,
"directorRef": "kitano"
},
@@ -433,6 +442,7 @@ something that cannot be undone
"id": 2,
"shotDesc": "extreme close-up of a man's eyes, half-lowered, beginning to track slowly to the left with the precision of someone reading a document no one else can see — his gaze shifts but his head does not move yet, and in the blurred background a second figure's shoulder is beginning to come into focus.",
"script": "权力藏在一个人坐在哪里,看向哪里。你看到的是他的位置,他看到的是整个房间的结构。",
"keyword": "位置",
"duration": 5,
"directorRef": "tarantino"
},
@@ -440,6 +450,7 @@ something that cannot be undone
"id": 3,
"shotDesc": "a near-symmetrical frame — two pairs of hands on a low table, one pair relaxed, the other with fingers slowly pressing flat and knuckles beginning to whiten. The table edge divides the frame exactly in half. The whitening knuckles are the only motion in the frame, pressing harder, as the geometric order begins its quiet collapse.",
"script": "在哪句话之后沉默了三秒。这种沉默不是等待,是审视。今天,我们逐帧拆解权力运行的底层逻辑。",
"keyword": "审视",
"duration": 5,
"directorRef": "fincher"
}