修复渲染的bug
This commit is contained in:
@@ -20,8 +20,8 @@ def detect_scenes(video_path: str, threshold: float) -> list[dict]:
|
||||
scenes = []
|
||||
for start, end in scene_list:
|
||||
scenes.append({
|
||||
"start_time": start.seconds,
|
||||
"end_time": end.seconds,
|
||||
"start_time": start.get_seconds(),
|
||||
"end_time": end.get_seconds(),
|
||||
})
|
||||
return scenes
|
||||
|
||||
|
||||
@@ -309,7 +309,7 @@ func (s *captionService) buildHTML(taskID, videoPath, audioPath string, elements
|
||||
sb.WriteString("* { margin: 0; padding: 0; box-sizing: border-box; }\n")
|
||||
sb.WriteString(fmt.Sprintf("body { width: %dpx; height: %dpx; overflow: hidden; background: #000; }\n", width, height))
|
||||
sb.WriteString(".clip { position: absolute; }\n")
|
||||
sb.WriteString(".text-element { font-family: \"Noto Sans SC\", \"Noto Sans CJK SC\", \"PingFang SC\", \"Microsoft YaHei\", Arial, sans-serif; text-align: center; display: flex; align-items: center; justify-content: center; white-space: pre-wrap; word-break: break-word; }\n")
|
||||
sb.WriteString(".text-element { font-family: Arial, Helvetica, sans-serif; text-align: center; display: flex; align-items: center; justify-content: center; white-space: pre-wrap; word-break: break-word; }\n")
|
||||
sb.WriteString("@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n")
|
||||
sb.WriteString("@keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }\n")
|
||||
sb.WriteString("@keyframes slideLeft { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: translateX(0); } }\n")
|
||||
@@ -321,7 +321,6 @@ func (s *captionService) buildHTML(taskID, videoPath, audioPath string, elements
|
||||
sb.WriteString(".anim-scaleIn { animation: scaleIn 0.5s ease-out; }\n")
|
||||
sb.WriteString(".anim-pulse { animation: pulse 1.5s ease-in-out infinite; }\n")
|
||||
sb.WriteString("</style>\n")
|
||||
sb.WriteString("<link href=\"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;700&display=swap\" rel=\"stylesheet\">\n")
|
||||
sb.WriteString("<script src=\"https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js\"></script>\n")
|
||||
sb.WriteString("</head>\n<body>\n")
|
||||
|
||||
|
||||
@@ -765,16 +765,23 @@ func downloadFile(ctx context.Context, rawURL, tempDir string) (string, error) {
|
||||
return "", fmt.Errorf("HTTP %d body=%s", resp.StatusCode, string(bodyBytes))
|
||||
}
|
||||
|
||||
expectedSize := resp.ContentLength
|
||||
out, err := os.Create(savePath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
written, err := io.Copy(out, resp.Body)
|
||||
if err != nil {
|
||||
os.Remove(savePath)
|
||||
return "", err
|
||||
}
|
||||
|
||||
// 验证下载完整性:检查文件大小是否匹配 Content-Length
|
||||
if expectedSize > 0 && written != expectedSize {
|
||||
os.Remove(savePath)
|
||||
return "", fmt.Errorf("下载不完整: 期望 %d 字节, 实际 %d 字节", expectedSize, written)
|
||||
}
|
||||
return savePath, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user