cang-ying/assets/subtitle-styles/subtitle-style.reference-drama.json

120 lines
2.9 KiB
JSON
Raw Normal View History

{
"_comment": "参考短剧字幕样式配置 · subtitle-style.reference-drama.json",
"_description": "从样片截图量化得到的字幕标准用于ASS字幕渲染",
"_version": "1.0",
"_date": "2026-06-24",
"_source": "渔乡守真心 样片分析",
"video": {
"width": 1080,
"height": 1920,
"aspect_ratio": "9:16",
"scan_type": "progressive"
},
"subtitle_box": {
"x": 100,
"y": 1750,
"width": 880,
"height": 120,
"_unit": "px",
"_note": "字幕框位置左下角x,y + 宽度,高度)"
},
"font": {
"family": "PingFang SC",
"size": 38,
"size_ratio": 0.0198,
"_note_size_ratio": "字号/视频高度 = 38/1920 = 0.0198",
"color": "&HFFFFFF&",
"color_hex": "#FFFFFF",
"bold": true,
"italic": false,
"underline": false,
"strikeout": false,
"_note_font": "使用PingFang SC粗体白色"
},
"stroke": {
"enabled": true,
"width": 2,
"width_px": 2,
"color": "&H000000&",
"color_hex": "#000000",
"opacity": 0.92,
"_note": "黑色描边宽度2px用于白色字体轮廓"
},
"shadow": {
"enabled": false,
"depth": 0,
"color": "&H000000&",
"opacity": 0
},
"position": {
"alignment": 2,
"_alignment_values": {
"1": "左下",
"2": "中下",
"3": "右下",
"4": "左中",
"5": "中中",
"6": "右中",
"7": "左上",
"8": "中上",
"9": "右上"
},
"margin_left": 100,
"margin_right": 100,
"margin_vertical": 50,
"_note": "对齐方式=2中下水平边距100px底部边距50px"
},
"spacing": {
"line_spacing": 1.45,
"letter_spacing": 0,
"_note": "行间距1.45倍,字间距默认"
},
"background": {
"enabled": false,
"color": "&H000000&",
"opacity": 0.6,
"padding": 20,
"_note": "参考短剧不使用背景框,纯字幕+描边"
},
"timing": {
"fade_in_ms": 150,
"fade_out_ms": 150,
"_note": "字幕淡入淡出150ms"
},
"qc_thresholds": {
"min_bottom_distance_ratio": 0.02,
"max_bottom_distance_ratio": 0.05,
"min_font_size_ratio": 0.015,
"max_font_size_ratio": 0.025,
"max_stroke_width_px": 3,
"min_contrast_ratio": 4.5,
"_note": "QC自动检查阈值"
},
"ass_template": {
"_comment": "ASS字幕格式模板用于FFmpeg libass渲染",
"_example": "Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,{\\pos(540,1850)\\fs38\\b1\\3c&H000000&\\4a&H40&\\fsp0}苏白:付费才能修仙?",
"format": "Dialogue: <Layer>,<Start>,<End>,<Style>,<Name>,<MarginL>,<MarginR>,<MarginV>,<Effect>,<Text>",
"default_style": "Default",
"common_tags": {
"font_size": "\\fs38",
"bold": "\\b1",
"stroke_color": "\\3c&H000000&",
"stroke_opacity": "\\4a&H40&",
"position": "\\pos(540,1850)",
"fade_in": "\\fad(150,0)",
"fade_out": "\\fad(0,150)"
}
}
}