我们正在尝试使用 FFmpeg 绘制文本来支持印地语字体。但有些字符无法正确渲染。
使用的印地语语言字体文件:-https://fonts.google.com/specimen/Khula
Input string :- **जिन्दगी सिर्फ हकीक़त है हकीक़त समझो,**
但是输出呈现为 代码输出
我想要一些完美的解决方案来在
FFmpeg.
上应用资产字体
提前谢谢您。
出于某种原因,-vf“ass=sub.ass”过滤器为非英语语言和印地语等语言提供了所需的字体渲染。
我不知道在 UTF-8 格式的 SRT 文件中导致此问题的原因。但我猜测 Libass 在每种情况下是如何使用的,其中 ASS 过滤器输入带有样式选项的整个文件并输出 deisred 格式。
如果有人遇到这个问题,请参考此将 srt 转换为 ass 并玩得开心:
const assFilePath = getSrtFilePathFromAssFilePath(subtitlePath);
const customOpts = options.subtitles.assOptions
// convert to ass using npm srt-to-ass, metion customoptions like font, color etc
convertSrtToAss(subtitlePath, assFilePath, customOpts);
// notice ass filter used
ffmpegCommand = `ffmpeg -i ${videoPath} -vf "ass=${assFilePath}" -vcodec libx264 -acodec copy -q:v 0 -q:a 0 ${outputFilePath}`;
execSync(ffmpegcomand)
之前 使用-vf“subtitle=hind-devnagri.srt”
之后 使用-vf“ass=hindi-devnagri.ass”
这里是用于转换的npm库 https://www.npmjs.com/package/srt-to-ass
和选项 JSON https://codepen.io/damitj07/pen/abgaPqv?editors=0010