← 返回
未分类 Key

视频日语字幕

日语视频自动翻译烧录技能。将日语视频转换为中文硬字幕,完整流程:ffmpeg 提取音频 → Whisper 日语转录 → LLM 翻译日→中 → SRT 转 ASS → ffmpeg NVENC 烧录硬字幕 → 验证。触发条件:用户提到视频字幕、硬字幕、字幕烧录、日语视频翻译、whisper 字幕、ass 字幕、或要求处理 .mp4 视频加字幕。
日语视频自动翻译烧录技能。将日语视频转换为中文硬字幕,完整流程:ffmpeg 提取音频 → Whisper 日语转录 → LLM 翻译日→中 → SRT 转 ASS → ffmpeg NVENC 烧录硬字幕 → 验证。触发条件:用户提到视频字幕、硬字幕、字幕烧录、日语视频翻译、whisper 字幕、ass 字幕、或要求处理 .mp4 视频加字幕。
user_918cb67a
未分类 community v1.0.0 1 版本 100000 Key: 需要
★ 1
Stars
📥 92
下载
💾 1
安装
1
版本
#latest

概述

视频字幕翻译烧录技能

工作流程(6 步)

📦 原始视频.mp4
  → 🎵 提取音频(ffmpeg,~10s)
  → 📝 Whisper 转录日语(~3-5min,base 模型)
  → 📝 LLM 翻译日→中(~2-3min,QClaw 网关)
  → 📝 SRT 转 ASS(<1s)
  → 🎬 NVENC GPU 烧录(~3-6min)
  → ✅ ffprobe 验证

运行方式

# 默认路径运行
python C:\Users\liket\.agents\skills\video-subtitle\scripts\subtitle_translate.py

# 自定义路径(修改脚本顶部的配置变量)
# VIDEO_DIR      视频目录
# OUTPUT_DIR     输出目录
# FFMPEG_DIR     ffmpeg bin 目录
# QCLAW_GATEWAY  LLM 网关地址
# QCLAW_TOKEN    LLM 网关 Token

环境要求: ffmpeg(已加 PATH)、Python openai-whisper、Python deep-translator(MyMemory 回退用)

踩坑速查

| # | 错误 | 原因 | 解决 |

|---|------|------|------|

| 1 | WinError 2 ffmpeg not found | Whisper 内部调 ffmpeg 但 PATH 里没有 | 脚本开头 os.environ["PATH"] 加入 ffmpeg 目录 |

| 2 | Unable to parse SRT | ffmpeg ass 滤镜不支持 SRT | 先转 ASS(Step 4) |

| 3 | Unable to parse original_size | Windows C: 冒号被当分隔符 | 用相对路径 + cwd=ass_dir(脚本已内置) |

| 4 | Whisper translate 质量差 | ja→zh 用 Whisper 翻译效果差 | 只转录,翻译交给 Step 3 LLM |

| 5 | 烧录后视频无字幕 | ffmpeg 静默失败(路径问题) | 必须用 ffprobe 抽检画面,不能只看文件大小 |

| 6 | LLM 翻译条目数不匹配 | 输出格式不稳定 | 脚本内置兜底补空逻辑 |

| 7 | GBK 解码错误 | Windows 控制台默认 GBK | Python 脚本开头设 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') |

关键实现细节

Whisper PATH 修复(脚本内置):

os.environ["PATH"] = r"E:\ffmpeg\SCP\ffmpeg-master-latest-win64-gpl\bin" + os.pathsep + os.environ["PATH"]

烧录相对路径 + cwd(脚本内置):

ass_dir = os.path.dirname(os.path.abspath(ass_path))
ass_filename = os.path.basename(ass_path)
subprocess.run(cmd, cwd=ass_dir)  # cwd 切到字幕目录,相对路径才有效

ASS 字幕样式: Microsoft YaHei UI,白字黑边(PrimaryColour &H00FFFFFF,Outline=2),底部居中。

NVENC 自动回退 CPU: GPU 编码失败时自动降级到 libx264 -preset ultrafast

性能参考(RTX 4060)

| 步骤 | 30min 视频 |

|------|-----------|

| 提取音频 | ~10s |

| Whisper base | ~3-5min |

| LLM 翻译(~700条) | ~2-3min |

| SRT→ASS | <1s |

| NVENC 烧录 | ~3-6min |

| 合计 | ~10-15min/视频 |

验证命令

# 检查时长(必须,但不够)
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "output.mp4"

# 截帧验证字幕真的烧进去了(必须!)
ffmpeg -ss 00:05:00 -i "output.mp4" -vframes 1 -q:v 2 frame.jpg
# 然后用图片查看器确认画面底部有字幕

目录结构

视频目录\
 ├── 原始视频.mp4
 ├── output\                   ← 脚本输出目录(可自定义)
 │   ├── video_xxx_subtitled.mp4   成品
 │   ├── xxx_audio.wav              中间音频
 │   ├── xxx_subs.srt              日语原文
 │   ├── xxx_subs_zh.srt           中文翻译
 │   └── xxx_subs_zh.ass           中文 ASS
 └── final\                     ← 可手动建此目录存放成品

脚本特性

  • 断点续传:每步检查文件是否存在,已完成则跳过
  • 短 hash 文件名:绕过 Windows 260 字符路径限制
  • NVENC/CPU 自动切换
  • LLM + MyMemory 双翻译引擎(LLM 失败自动回退)

已知局限

  • Whisper base 模型对混合音频(BGM+语音+音效)识别一般
  • --task translate(ja→zh)翻译质量差,不用
  • 当前只支持日语→中文,其他语言需修改 Whisper language 参数
  • faster-whisper 替代 openai-whisper 可提升速度和内存效率(未来改进方向)

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-04-25 18:52 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

design-media

UI/UX Pro Max

xobi667
提供 UI/UX 设计智能与实现指导,帮助打造精美界面。适用于 UI 设计、UX 流程、信息架构、视觉风格、设计系统/标记、组件规格、文案/微文案、无障碍及前端 UI(HTML/CSS/JS、React、Next.js、Vue、Svelte
★ 216 📥 46,978
design-media

Openai Whisper

steipete
使用 Whisper CLI 进行本地语音转文字(无需 API 密钥)
★ 330 📥 93,398
design-media

Nano Banana Pro

steipete
使用 Nano Banana Pro (Gemini 3 Pro Image) 生成或编辑图像。支持文生图、图生图及 1K/2K/4K 分辨率,适用于图像创建、修改及编辑请求,使用 --input-image 指定输入图像。
★ 427 📥 116,522