From 4b43ddd34859d3b588de697c5a3ba48df1bd1ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com> Date: Wed, 24 Jun 2026 13:18:16 +0800 Subject: [PATCH] =?UTF-8?q?D144=20=C2=B7=20=E4=BF=AE=E5=A4=8D=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E5=B7=A5=E5=85=B7=20ffmpeg=20subtitles=20=E6=BB=A4?= =?UTF-8?q?=E9=95=9C=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ass-subtitle-renderer.py:subtitles 滤镜路径缺 filename= 前缀 修复:subtitles=filename='path' 才算正确语法 - subtitle-style-ab-test.py:同样问题,已同步修复 - 验证:本地 ffmpeg 没编译 libass(No such filter: subtitles) 烧字幕步骤需要服务器环境或重新编译 ffmpeg ✅ 6/8 工具已跑通(生成文件正确): 1. reference-subtitle-analyzer.py 2. ass-subtitle-renderer.py(ASS生成) 3. script-to-srt-with-timing.py 4. subtitle-preview-contact-sheet.py 5. subtitle-safe-area-qc.py 6. subtitle-font-manager.py 7. subtitle-style-ab-test.py(ASS生成正确,烧录需服务器) 8. 烧录步骤:本地 ffmpeg 缺 libass 冰朔 TCS-0002∞ 见证 ⊢ 铸渊 ICE-GL-ZY001 · D144 · 2026-06-24 --- .../ab-test-tools/subtitle-style-ab-test.py | 3 ++- .../reference-analysis/ass-subtitle-renderer.py | 7 ++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/video-ai-system/engines/subtitle-pipeline/ab-test-tools/subtitle-style-ab-test.py b/video-ai-system/engines/subtitle-pipeline/ab-test-tools/subtitle-style-ab-test.py index 2691c4a..0620195 100644 --- a/video-ai-system/engines/subtitle-pipeline/ab-test-tools/subtitle-style-ab-test.py +++ b/video-ai-system/engines/subtitle-pipeline/ab-test-tools/subtitle-style-ab-test.py @@ -276,12 +276,13 @@ def burn_subtitles_with_ffmpeg(video_path: str, ass_path: str, output_path: str) return False # FFmpeg 命令 + # 正确语法:subtitles=filename='path' (需要 filename= 前缀) ass_path_escaped = ass_path.replace(":", "\\:").replace("'", "'\\''") cmd = [ "ffmpeg", "-y", "-i", video_path, - "-vf", f"subtitles='{ass_path_escaped}'", + "-vf", f"subtitles=filename='{ass_path_escaped}'", "-c:v", "libx264", "-pix_fmt", "yuv420p", "-c:a", "copy", diff --git a/video-ai-system/engines/subtitle-pipeline/reference-analysis/ass-subtitle-renderer.py b/video-ai-system/engines/subtitle-pipeline/reference-analysis/ass-subtitle-renderer.py index 25d0f29..efca922 100644 --- a/video-ai-system/engines/subtitle-pipeline/reference-analysis/ass-subtitle-renderer.py +++ b/video-ai-system/engines/subtitle-pipeline/reference-analysis/ass-subtitle-renderer.py @@ -262,17 +262,14 @@ def burn_subtitles_with_ffmpeg(video_path: str, ass_path: str, output_path: str) print(f"[ERROR] ASS 字幕文件不存在:{ass_path}") return False - # FFmpeg 命令:使用 libass 烧录字幕 - # -vf "ass=subtitles.ass" # 方法1:直接指定 ASS 文件 - # -vf "subtitles=subtitles.ass" # 方法2:使用 subtitles 滤镜(自动检测格式) - # 使用 subtitles 滤镜(更通用,支持 SRT/ASS 等多种格式) + # 正确语法:subtitles=filename='path' (需要 filename= 前缀) ass_path_escaped = ass_path.replace(":", "\\:").replace("'", "'\\''") cmd = [ "ffmpeg", "-y", "-i", video_path, - "-vf", f"subtitles='{ass_path_escaped}'", + "-vf", f"subtitles=filename='{ass_path_escaped}'", "-c:v", "libx264", "-pix_fmt", "yuv420p", "-c:a", "copy",