From 71b7daddd8f0ec2a018c346bedf313be806bcd95 Mon Sep 17 00:00:00 2001 From: lmk <1095689763@qq.com> Date: Tue, 23 Jun 2026 12:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9dockerfile=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 ++- service/video/caption_service.go | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index aadc544..195c954 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,8 @@ RUN npm install -g hyperframes --registry=https://registry.npmmirror.com/ --igno # HyperFrames 渲染需要 Chromium/Chrome # 安装 Chromium(提供系统级共享库依赖)和中文字体 -RUN apk add --no-cache chromium font-noto-cjk +RUN apk add --no-cache chromium font-noto-cjk fontconfig \ + && fc-cache -f # 下载 HyperFrames 需要的 headless-shell 浏览器 RUN npx hyperframes browser ensure diff --git a/service/video/caption_service.go b/service/video/caption_service.go index c428c61..424cfc8 100644 --- a/service/video/caption_service.go +++ b/service/video/caption_service.go @@ -260,6 +260,7 @@ func (s *captionService) runHyperFramesRender(ctx context.Context, projectDir, o cmd.Dir = projectDir cmd.Env = append(os.Environ(), "HYPERFRAMES_HEADLESS=true", + "HYPERFRAMES_BROWSER_PATH=/usr/bin/chromium", ) output, err := cmd.CombinedOutput() @@ -308,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 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: \"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("@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") @@ -320,6 +321,7 @@ 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("\n") + sb.WriteString("\n") sb.WriteString("\n") sb.WriteString("\n\n")