feat(video-pipeline): 用 ffprobe 实际测量音视频时长并统一字段名为 script
将项目中的 `narration` 字段统一重命名为 `script`,并新增 `getAudioDurationSec` 函数通过 `ffprobe` 实际测量音频和视频文件的时长,替代 Manifest 中的估计值,提高时间线组装的准确性。同时优化字幕逻辑,仅在有 TTS 音频时调整视频速度。
This commit is contained in:
@@ -62,9 +62,27 @@ source outside the frame begins its slow rotation
|
||||
|
||||
→ 有明确运动趋势:头正在转向、影子正在拉长——视频模型能推断运动方向。
|
||||
|
||||
## 三、切割规则
|
||||
## 三、3秒钩子规则(Shot 1 强制)
|
||||
|
||||
### 3.1 切割优先级
|
||||
短视频前 3 秒决定用户是否留下。**Shot 1 必须是钩子,不是铺垫。**
|
||||
|
||||
| 策略 | 说明 |
|
||||
|------|------|
|
||||
| **结论前置** | 从文案核心金句提取最冲击的结论,直接放在开头 |
|
||||
| **认知冲突** | 一句话打破常识,制造"凭什么"的好奇心 |
|
||||
| **身份挑衅** | 直接点中受众身份焦虑 |
|
||||
|
||||
钩子规范:
|
||||
- 画面有视觉冲击力,不用背影/空走廊等铺垫
|
||||
- 文案 ≤ 20 字,一句话讲完
|
||||
- 时长 4-5 秒,短狠快
|
||||
- 禁止设问式开头("大多数人...")、禁止超 20 字、禁止纯铺垫画面
|
||||
|
||||
钩子后 Shot 2 负责引入正文,Shot 3 起按原文顺序展开。
|
||||
|
||||
## 四、切割规则
|
||||
|
||||
### 4.1 切割优先级
|
||||
|
||||
以「语义场景单元」为第一切割依据,不按句号机械切割。
|
||||
|
||||
@@ -77,20 +95,20 @@ source outside the frame begins its slow rotation
|
||||
| 语义完整 | 该段表达一个完整观点或例子 |
|
||||
| 字数上限 | 视频成片每段 22 字左右;图文成片每段 50 字左右 |
|
||||
|
||||
### 3.2 时长控制
|
||||
### 4.2 时长控制
|
||||
|
||||
- **图文成片:** 每条 Shot 4-10 秒,跟随旁白节奏,完整表达一个观点
|
||||
- **视频成片:** 每条 Shot 3-7 秒,目标 5 秒,匹配视频片段长度
|
||||
- **总时长校验:** 所有 duration 之和 = 文案朗读总时长
|
||||
|
||||
## 四、导演构图语言词库(分镜层专用)
|
||||
## 五、导演构图语言词库(分镜层专用)
|
||||
|
||||
> 本层只负责:构图逻辑 + 画面内容设计 + 视角选择
|
||||
> 光影渲染由图片提示词处理,运动节奏由视频提示词处理
|
||||
|
||||
每个 Shot 选定一位导演作为构图参考,写入 `directorRef` 字段向下游透传。下游图片和视频提示词根据此字段执行各自层的风格,不重新选导演。
|
||||
|
||||
### 4.1 昆汀·塔伦蒂诺(Tarantino)
|
||||
### 5.1 昆汀·塔伦蒂诺(Tarantino)
|
||||
|
||||
**构图核心:** 身体局部主导叙事;对话即权力博弈;平静表面下的极度张力
|
||||
|
||||
@@ -114,7 +132,7 @@ room has not yet realized is coming
|
||||
|
||||
**适合选用场景:** 微行为解码 / 潜台词型文案 / 局部细节承载叙事
|
||||
|
||||
### 4.2 北野武(Kitano)
|
||||
### 5.2 北野武(Kitano)
|
||||
|
||||
**构图核心:** 静止即叙事;留白承载重量;人物与空间的关系即情绪
|
||||
|
||||
@@ -139,7 +157,7 @@ His body has not moved. Neither has his decision.
|
||||
|
||||
**适合选用场景:** 孤独/等待/沉默型文案 / 收尾 Shot / 留白叙事
|
||||
|
||||
### 4.3 大卫·芬奇(Fincher)
|
||||
### 5.3 大卫·芬奇(Fincher)
|
||||
|
||||
**构图核心:** 精确的控制感;对称中的破坏;冷静凝视是最深的压迫
|
||||
|
||||
@@ -164,13 +182,13 @@ The balance of power broke the same moment the geometry did.
|
||||
|
||||
**适合选用场景:** 规律揭示型文案 / 解剖者视角 / 关系结构拆解
|
||||
|
||||
## 五、shotDesc 写法规范
|
||||
## 六、shotDesc 写法规范
|
||||
|
||||
### 5.1 语言
|
||||
### 6.1 语言
|
||||
|
||||
统一英文输出。shotDesc 是下游图片模型的内容底稿,英文输入更稳定。视频提示词的语言由下游模块根据目标模型自动适配。
|
||||
|
||||
### 5.2 必须包含的内容维度
|
||||
### 6.2 必须包含的内容维度
|
||||
|
||||
**图文成片模式:**
|
||||
|
||||
@@ -192,7 +210,7 @@ The balance of power broke the same moment the geometry did.
|
||||
| 隐性动势 | 画面中隐含的运动趋势(**必填**) |
|
||||
| 情绪张力 | 用视觉词而非情绪词传递张力 |
|
||||
|
||||
### 5.3 隐性动势(Implied Motion)
|
||||
### 6.3 隐性动势(Implied Motion)
|
||||
|
||||
**视频成片模式:每条 shotDesc 必须包含至少一个隐性动势词组。**
|
||||
**图文成片模式:不强制,可选用以增加画面叙事感。**
|
||||
@@ -220,7 +238,7 @@ the symmetry of the empty table stretching to both edges
|
||||
a man holding a cup and looking down
|
||||
```
|
||||
|
||||
### 5.4 隐性动势词库
|
||||
### 6.4 隐性动势词库
|
||||
|
||||
**人物动势:**
|
||||
|
||||
@@ -248,12 +266,12 @@ breaks / silence stretching thin / the moment before something that cannot be
|
||||
undone
|
||||
```
|
||||
|
||||
### 5.5 字数控制
|
||||
### 6.5 字数控制
|
||||
|
||||
- **图文成片:** 每条 shotDesc **50–80 词**——图片即成品,需要充分描述构图、氛围和视觉隐喻
|
||||
- **视频成片:** 每条 shotDesc **30–60 词**——视频模型需要精炼聚焦的运动指令,过长会稀释动势信号
|
||||
|
||||
### 5.6 禁止事项
|
||||
### 6.6 禁止事项
|
||||
|
||||
- 禁止写镜头运动参数(`zoom-in` / `pan`)——留给视频提示词
|
||||
- 禁止写色调参数(`cold blue` / `warm orange`)——留给图片提示词
|
||||
@@ -261,7 +279,7 @@ undone
|
||||
- **视频成片:** 禁止纯静止描述,必须附加至少一个隐性动势词
|
||||
- **图文成片:** 禁止连续两张同景别/同构图的 shot
|
||||
|
||||
## 六、directorRef 选择规则
|
||||
## 七、directorRef 选择规则
|
||||
|
||||
| 选 Tarantino | 选 Kitano | 选 Fincher |
|
||||
|-------------|-----------|-----------|
|
||||
@@ -273,7 +291,7 @@ undone
|
||||
- **视频成片**优先 Tarantino(微行为动势强)、Fincher(细节暗示运动)
|
||||
- **图文成片**优先 Kitano(留白冲击力强)、Fincher(构图控制精确)
|
||||
|
||||
## 七、输入规范
|
||||
## 八、输入规范
|
||||
|
||||
```
|
||||
【完整口播文案】
|
||||
@@ -283,7 +301,7 @@ undone
|
||||
图文成片 / 视频成片
|
||||
```
|
||||
|
||||
## 八、输出格式
|
||||
## 九、输出格式
|
||||
|
||||
输出前附加总览行:
|
||||
|
||||
@@ -298,7 +316,7 @@ undone
|
||||
{
|
||||
"id": 1,
|
||||
"shotDesc": "英文画面描述(图文50-80词 / 视频30-60词)",
|
||||
"narration": "该段的完整原文案,不提炼,保留论证、例子、细节",
|
||||
"script": "该段完整原文逐字摘取,一字不改,禁止改写/提炼/摘要",
|
||||
"duration": 5,
|
||||
"directorRef": "tarantino / kitano / fincher"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user