花生AI字幕时间戳原始格式为秒级浮点数(如"65.32"),需通过解析JSON中的subtitle字段统一转换为标准SRT格式“HH:MM:SS,mmm”,再在剪辑软件中启用时间码元数据、关闭自动重定时、嵌入字幕流以确保准确显示与上传。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用花生AI生成多段视频后,字幕时间戳经常出现“00:01:05.320”“1:05.32”“65.32s”混用的情况,导致剪辑时无法批量替换、导出SRT报错、平台上传失败。
确认字幕时间格式的原始来源
花生AI本身不直接输出独立字幕文件,所有时间信息都嵌在成片视频的元数据中或导出的JSON工程包里。打开你导出的“project_20261028.json”,搜索"subtitle"字段,会看到类似{"start":"65.32","end":"72.15","text":"这是第一句"}的结构——【所有时间值默认为秒级浮点数,不带前导零,无分秒冒号分隔】。这个原始格式决定了后续统一必须从解析层入手,而不是靠肉眼改字幕框。
如果你跳过这一步直接进剪映拖拽字幕块,就会发现时间轴显示的是“01:05.32”,但复制出来粘贴到Excel里又变成“65.32”,不同工具对同一数据的渲染逻辑完全不同。
用Python脚本批量转成标准SRT时间码
方法一:用内置转换器(推荐新手)
下载花生AI官方配套工具包“Huasheng-Subtitle-Kit”,运行convert_srt.py,把project_xxx.json拖进窗口,自动输出标准SRT文件。它内部强制执行“HH:MM:SS,mmm”格式,毫秒位补零,小时位不省略(哪怕全为0),完全兼容B站/抖音/YouTube上传要求。
方法二:手动写三行代码(适合已有开发环境)
安装python3.9+后,终端执行:
pip install pysrt → python -c "import pysrt; srt = pysrt.SubRipFile(); srt.append(pysrt.SubRipItem(1, '00:01:05,320', '00:01:12,150', '这是第一句')); srt.save('out.srt', encoding='utf-8')"
【注意:pysrt库要求毫秒必须用英文逗号分隔,不是点号;且起止时间必须严格对齐,不能只改start不改end】
方法三:Excel公式暴力转换(无编程基础可用)
把JSON里的start/end列粘贴到Excel两列→在C1输入公式:TEXT(QUOTIENT(A1,3600),"00")&":"&TEXT(QUOTIENT(MOD(A1,3600),60),"00")&":"&TEXT(MOD(A1,60),"00")&","&TEXT((A1-INT(A1))*1000,"000")→下拉填充→复制C列结果,用Notepad++批量替换“,”为“.”即可得到“00:01:05.320”格式。
在剪辑软件中锁定字幕时间轴不漂移
第一步:导入花生AI导出的MP4时,勾选“保留原始时间码”(Premiere Pro路径:文件→导入→选项→启用时间码元数据)。
第二步:在节目面板右键字幕轨道→“属性”→关闭“自动重定时”开关。这一步不做的话,只要你在时间轴上拖动任意一个字幕块,其他所有字幕会跟着整体偏移,之前转好的格式全部作废。
第三步:导出前检查字幕轨道是否启用“嵌入字幕流”。B站后台识别字幕依赖的是视频内嵌的mov_text轨道,不是外挂SRT文件。如果只导出MP4不勾选此项,上传后字幕会消失。











