linux系统下使用ffmpeg生成带字幕的视频乱码问题

0 / 1086

1. 出现的问题

在 Linux Ubuntu 和 CentOS7 下使用 FFmpeg 生成带字幕的视频时,报以下错误,生成的视频只能出现英文和数字,中文部分是乱码方框,然而 windows 系统没有问题。

[Parsed_subtitles_0 @ 0x55fa38975600] Glyph 0x9AD8 not found, selecting one more font for (Arial, 400, 0)

2. 尝试解决方案

  1. FFmpeg 版本与 windows 中 FFmpeg 版本相对应(windos:ffmpeg4.2.2 linux:2.x)(失败!)
  2. CentOS7 系统下 FFmpeg 中 libass 是未开启状态,尝试从 libass 着手解决,按了各种包,遇到很多问题,发现 Ubantu 系统中 libass 是默认开启的,将系统换成 ubantu 系统**(失败!)**

3. 最终解决方案

原因:Linux 系统缺少字体文件包,安装一个即可。

  1. 拷贝一份字体文件
  • 从有 Windows 系统的文件中进行拷贝,Windows 系统的字体文件位置 C:\Windows\Fonts
  • 从网上下载,百度上就有很多资源,很容易找到。
  1. 将字体(如宋体:simsun.ttc,默认字体:Arial)放入 Linux 路径下
1. cd /usr/share/fonts
2. 放入字体文件
3. sudo mkfontscale
4. sudo mkfontdir
5. sudo fc-cache -fv
  1. 运行 sudo mkfontscale 报错(sudo: mkfontscale: command not found)
# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install ttf-mscorefonts-installer

# 使fc-cache命令正常运行

sudo apt-get install fontconfig