ffmpeg Chinese Subtitle
Windows 上使用 ffmpeg 正确生成中文字幕的解决方案。
问题背景
在 Windows 上使用 ffmpeg 的 drawtext、subtitles、ass 滤镜处理中文字幕时,会遇到以下问题:
| 错误码 | 原因 |
|---|
| 返回码 -22 (EINVAL) | 字体路径转义问题 |
| 字幕不显示 |
中文编码被截断 |
| 乱码 | 字符集不匹配 |
解决方案
核心思路:用 Pillow 在图片上绘制字幕,ffmpeg 只负责图片转视频。
方案对比
| 方案 | 状态 | 原因 |
|---|
| INLINECODE3 | ❌ 失败 | 命令行参数截断 |
| INLINECODE4 |
❌ 失败 | 路径编码问题 |
|
ass='中文.ass' | ❌ 失败 | 同上 |
|
Pillow 绘制 + ffmpeg | ✅ 成功 | Python 原生支持 Unicode |
快速使用
CODEBLOCK0
参数说明
| 参数 | 默认值 | 说明 |
|---|
| INLINECODE6 | - | 输入图片路径 |
| INLINECODE7 |
- | 字幕文本 |
|
output_path | - | 输出图片路径 |
|
font_size | 24 | 字体大小 |
|
y_offset | 50 | 距底部的偏移量(像素) |
|
font_color | (255,255,255) | 字体颜色 RGB |
|
shadow_color | (0,0,0) | 阴影颜色 RGB |
依赖
CODEBLOCK1
字体
默认使用 Windows 系统字体:
- - 主字体:
C:/Windows/Fonts/msyh.ttc(微软雅黑) - 备用字体:
C:/Windows/Fonts/simhei.ttf(黑体)
触发词
INLINECODE15 、中文字幕、视频字幕、 INLINECODE18
文件结构
CODEBLOCK2
License
MIT
Author
systiger
ffmpeg 中文字幕
Windows 上使用 ffmpeg 正确生成中文字幕的解决方案。
问题背景
在 Windows 上使用 ffmpeg 的 drawtext、subtitles、ass 滤镜处理中文字幕时,会遇到以下问题:
| 错误码 | 原因 |
|---|
| 返回码 -22 (EINVAL) | 字体路径转义问题 |
| 字幕不显示 |
中文编码被截断 |
| 乱码 | 字符集不匹配 |
解决方案
核心思路:用 Pillow 在图片上绘制字幕,ffmpeg 只负责图片转视频。
方案对比
| 方案 | 状态 | 原因 |
|---|
| drawtext=text=中文 | ❌ 失败 | 命令行参数截断 |
| subtitles=中文.srt |
❌ 失败 | 路径编码问题 |
| ass=中文.ass | ❌ 失败 | 同上 |
|
Pillow 绘制 + ffmpeg | ✅ 成功 | Python 原生支持 Unicode |
快速使用
python
from ffmpegsubtitle import addsubtitletoimage
在图片上添加字幕
add
subtitleto_image(
image_path=input.png,
subtitle_text=这是中文字幕,
output_path=output.png,
font_size=24,
y_offset=50
)
参数说明
| 参数 | 默认值 | 说明 |
|---|
| imagepath | - | 输入图片路径 |
| subtitletext |
- | 字幕文本 |
| output_path | - | 输出图片路径 |
| font_size | 24 | 字体大小 |
| y_offset | 50 | 距底部的偏移量(像素) |
| font_color | (255,255,255) | 字体颜色 RGB |
| shadow_color | (0,0,0) | 阴影颜色 RGB |
依赖
Pillow>=10.0.0
字体
默认使用 Windows 系统字体:
- - 主字体:C:/Windows/Fonts/msyh.ttc(微软雅黑)
- 备用字体:C:/Windows/Fonts/simhei.ttf(黑体)
触发词
ffmpeg字幕、中文字幕、视频字幕、字幕烧录
文件结构
ffmpeg-chinese-subtitle/
├── SKILL.md # 技能说明文档
├── README.md # 详细使用指南
├── ffmpeg_subtitle.py # 核心模块
├── example.py # 完整示例
└── package.json # 包信息
许可证
MIT
作者
systiger