简洁的想法

仁爱、喜乐、和平、忍耐、恩慈、良善、信实、温柔、节制

Use FFmpeg to Burn Subtitles Into the Video

| Comments

FFmpeg 是个强大的跨平台软件,在Mac下使用的时候要稍注意一下。我这记录一下自己的摸索过程。

我想在一个 MP4 文件里面添加字幕,不是把 .srt 字幕文件集成到 MP4 文件里,然后在播放器里选择字幕,这种集成字幕比较简单,速度也相当快:

1
ffmpeg -i input.mp4 -i subtitles.srt -c:s mov_text -c:v copy -c:a copy output.mp4

我希望字幕直接显示出来,其实也不难,两句命令而已:

1
2
ffmpeg -i subtitle.srt subtitle.ass
ffmpeg -i input.mp4 -vf ass=subtitle.ass output.mp4

但在 Mac 下处理不成功,我看到有错误信息:

1
2
3
Fontconfig error: Cannot load default config file
[Parsed_ass_0 @ 0x102d00000] No usable fontconfig configuration file found, using fallback.
Fontconfig error: Cannot load default config file

看来是 Fontconfig 出了问题,我的解决方案是:

一、在~/.bashrc 最后添加一句:

1
export FONTCONFIG_PATH=/opt/X11/lib/X11/fontconfig

使之有效:

1
source ~/.bashrc

二、编辑 /opt/X11/lib/X11/fontconfig/fonts.conf 在字体目录添加 /Library/Fonts

1
2
3
4
5
6
7
8
:
<!-- Font directory list -->

  <dir>/opt/X11/share/fonts</dir>
  <dir>/usr/X11R6/lib/X11/fonts</dir>
  <dir>~/.fonts</dir>
  <dir>/Library/Fonts</dir>
:

再次运行添加 ass 字幕的命令就可以了,简单吧。市面上那么多视频处理软件,我估计都是FFmpeg加了个UI而已,如果命令行用得好,效率会高很多的。

更多 fontconfig 的信息可以参考这里

Comments