# D144 · 商用短剧字幕生产工具链 > HLDP://video-ai-system/plans/D144-SUBTITLE-PRODUCTION-TOOLCHAIN > 类型: 字幕工具开发规格 · 对标样片标准 > 日期: 2026-06-24 > 铸渊 ICE-GL-ZY001 --- ## 纠偏 ``` 当前 subtitle-renderer.py 是工程测试工具,不是商用字幕工具。 用 Pillow 画 PNG 再 overlay,只能验证“能烧字幕”,不能保证样片级字幕观感。 继续手调字号/位置是在凑合。 ``` 正确路线: ``` 以样片字幕为标准 → 建立字幕规范 → 开发专业渲染工具链 → 每条视频自动质检。 ``` --- ## 样片字幕标准 · 目标 用户提供样片字幕特征: ``` 白色主体字 黑色描边清楚 无黑色字幕底板 无明显投影 字体厚实,不飘,不发灰 字号中等,不抢画面 位置在视频画面内部底部 不贴边 不遮挡人物脸、胸口主体表演 居中 最多两行 ``` 我们要做的是: ``` 做出同一套字幕标准。 不是“接近”,而是按样片规范复刻。 ``` --- ## 必须开发的软件/工具 ### 1. reference-subtitle-analyzer.py 路径建议: ``` video-ai-system/tools/reference-subtitle-analyzer.py ``` 用途: ``` 从样片截图/抽帧中测量字幕标准。 ``` 输入: ``` sample_frame.jpg 可选: 手动标注字幕框 bbox ``` 输出: ``` video_frame_width video_frame_height subtitle_bbox subtitle_center_x subtitle_baseline_y bottom_margin_px font_height_px font_height_ratio stroke_width_px stroke_ratio subtitle_width_ratio line_count style_report.hdlp ``` 验收: ``` 能把样片字幕量化成参数,而不是靠肉眼猜。 ``` --- ### 2. subtitle-style.json 路径建议: ``` video-ai-system/config/subtitle-style.reference-drama.json ``` 内容: ``` style_id font_family font_size_ratio font_weight font_color stroke_color stroke_width_ratio shadow background alignment bottom_margin_ratio max_width_ratio max_lines line_spacing safe_area ``` 验收: ``` 任何视频分辨率都能按比例得到同一字幕观感。 横屏/竖屏不能共用死字号。 ``` --- ### 3. ass-subtitle-renderer.py 路径建议: ``` video-ai-system/engines/ass-subtitle-renderer.py ``` 为什么要开发: ``` 商用字幕不应该靠Pillow临时画PNG。 应该生成ASS字幕,让libass/FFmpeg按字幕标准渲染。 ASS天然支持字体、粗体、描边、边距、对齐、换行、位置。 ``` 输入: ``` srt_path style_json video_path output_path ``` 输出: ``` styled.ass burned_video.mp4 render_report.hdlp ``` 推荐实现: ``` SRT → ASS ASS Style: Fontname Fontsize PrimaryColour OutlineColour Bold Outline Shadow=0 Alignment=2 MarginL/MarginR/MarginV FFmpeg subtitles/ass filter 或 libass 渲染 ``` 注意: ``` 如果当前FFmpeg没有 subtitles/ass filter,则工具必须检测并报错。 不要静默降级到Pillow。 ``` 验收: ``` 同一句字幕在样片截图上视觉接近样片标准。 字体不虚、不灰、不飘。 ``` --- ### 4. subtitle-font-manager.py 路径建议: ``` video-ai-system/tools/subtitle-font-manager.py video-ai-system/assets/fonts/subtitle/ ``` 用途: ``` 管理字幕字体。 ``` 原因: ``` 系统字体不稳定。 不同机器字体不同,字幕观感会变。 必须固定项目字幕字体。 ``` 任务: ``` 列出本机中文字体 测试字体是否支持中文 生成字体预览图 选择/复制批准字体到 assets/fonts/subtitle/ 记录字体许可证/来源 ``` 候选方向: ``` 思源黑体 Heavy/Bold 阿里巴巴普惠体 Bold 可商用中文黑体 ``` 验收: ``` 字幕使用项目字体,不再依赖系统默认字体。 ``` --- ### 5. subtitle-safe-area-qc.py 路径建议: ``` video-ai-system/tools/subtitle-safe-area-qc.py ``` 用途: ``` 检查字幕位置是否遮挡人物或关键画面。 ``` 输入: ``` video_path subtitle_ass_or_srt sample_frames 可选: 人物bbox/手动主体区域 ``` 输出: ``` subtitle_bbox_per_frame bottom_margin overlap_with_character_bbox overlap_with_key_prop_bbox readability_score qc_report.hdlp contact_sheet.jpg ``` 最小实现: ``` 先用抽帧 + 人工标注主体bbox。 后续再接自动人物检测。 ``` 硬失败: ``` 遮脸 遮主要台词人物胸口表演 遮关键道具文字 贴到底边 超出安全区 背景太亮导致看不清 ``` --- ### 6. subtitle-preview-contact-sheet.py 路径建议: ``` video-ai-system/tools/subtitle-preview-contact-sheet.py ``` 用途: ``` 每次烧字幕后自动抽关键帧,让人一眼判断字幕是不是跳戏。 ``` 输出: ``` contact_sheet.jpg frame_0001.jpg frame_0002.jpg frame_0003.jpg ``` 验收: ``` 不再只打开视频靠用户暂停截图。 系统自己产出检查图。 ``` --- ### 7. subtitle-style-ab-test.py 路径建议: ``` video-ai-system/tools/subtitle-style-ab-test.py ``` 用途: ``` 同一底片一次生成多种字幕版本,横向对比。 ``` 输入: ``` video_path srt_path style_json_list ``` 输出: ``` 版本A/B/C视频 对比contact sheet 评分表 ``` 验收: ``` 字幕风格不要再一版一版盲调。 一次对比,选最像样片的。 ``` --- ### 8. script-to-srt-with-timing.py 路径建议: ``` video-ai-system/tools/script-to-srt-with-timing.py ``` 用途: ``` 从剧本原文和角色对白音频生成正式SRT。 ``` 输入: ``` script line voice audio shot duration ``` 输出: ``` line.srt timing_report.hdlp ``` 验收: ``` 字幕时间跟角色说话同步,不靠手写测试时间。 ``` --- ## 当前工具的处理 ### subtitle-renderer.py 定位调整为: ``` 工程测试工具。 可用于快速验证。 不能作为最终商用字幕渲染器。 ``` 必须追加警告: ``` 如用于最终样片,需经过 subtitle-safe-area-qc。 推荐最终走 ass-subtitle-renderer.py。 ``` --- ## 腾讯AI人格体开发顺序 ``` 1. subtitle-font-manager.py 2. reference-subtitle-analyzer.py 3. subtitle-style.reference-drama.json 4. ass-subtitle-renderer.py 5. subtitle-preview-contact-sheet.py 6. subtitle-style-ab-test.py 7. subtitle-safe-area-qc.py 8. script-to-srt-with-timing.py ``` 每完成一个工具必须提交: ``` README 命令示例 测试输入 测试输出 失败边界 是否已推送仓库 ``` --- ## 验收口径 一个字幕工具链算完成,必须满足: ``` 拿用户提供的样片截图,能量化字幕参数。 拿我们的测试视频,能生成同标准字幕。 输出前自动抽帧。 不遮挡主体。 不发灰、不发虚、不跳戏。 能固定字体。 能在不同分辨率按比例保持观感。 ```