You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg添加UTF-8泰卢固语字幕至MP4文件显示异常求助

解决FFmpeg添加泰卢固语UTF-8字幕无法显示的问题

泰卢固语这类非拉丁脚本字幕无法正常显示,大多是字体不支持或者FFmpeg对字幕编码的识别配置问题,我给你几个针对性的解决方案,按顺序尝试:

1. 强制指定支持泰卢固语的字体(最关键)

绝大多数系统默认字体没有泰卢固语的字形,这是字幕无法显示的核心原因。你需要在滤镜里明确指定一款支持泰卢固语的字体,比如跨平台通用的Noto Sans Telugu,或者你系统自带的泰卢固语字体(比如Windows的Shruti、macOS的Gujarati MT等)。

修改你的命令,在force_style里追加FontName参数:

ffmpeg -i input.mp4 -vf "subtitles='input.srt:force_style=Fontsize=24,FontName=Noto Sans Telugu'" output.mp4

注意:把Noto Sans Telugu换成你系统里实际安装的字体名称,不确定的话可以在系统字体列表里找泰卢固语相关字体。

2. 明确指定字幕文件的UTF-8编码

新版FFmpeg默认支持UTF-8,但部分旧版本可能需要手动声明编码。可以在subtitles滤镜里用charenc参数指定:

ffmpeg -i input.mp4 -vf "subtitles='input.srt:charenc=utf-8:force_style=Fontsize=24,FontName=Noto Sans Telugu'" output.mp4

你之前使用的-sub_charenc参数已经被新版FFmpeg弃用,无需再添加。

3. 验证SRT文件的编码正确性

先确认你的input.srt确实是UTF-8编码:

  • 用Notepad++打开文件,查看右下角的编码标识,如果是ANSI或其他编码,直接转成**UTF-8(无BOM)**保存。
  • 检查字幕内容里的泰卢固语字符是否有乱码,避免文件本身损坏。

4. 转成ASS格式再处理(备选方案)

ASS字幕格式对复杂脚本的支持比SRT更友好,如果以上方法仍无效,可以先把SRT转成ASS,再用ASS滤镜添加:

# 第一步:将SRT转成ASS格式
ffmpeg -i input.srt -c:s ass input.ass

# 第二步:用ASS滤镜添加字幕
ffmpeg -i input.mp4 -vf "ass='input.ass:force_style=Fontsize=24,FontName=Noto Sans Telugu'" output.mp4

按这个顺序尝试下来,基本能解决泰卢固语字幕无法显示的问题,重点是一定要指定支持泰卢固语的字体哦!

内容的提问来源于stack exchange,提问作者kamalakar b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:31:06