New_Face failed error when using Mplayer

After upgrading from openSUSE 10.2 to openSUSE 10.3 I got the error message New_Face failed. Maybe the font path is wrong. Please supply the text font file (~/.mplayer/subfont.ttf) when starting up MPlayer to watch video files. MPlayer would run fine and show the video and play sound ok, but the on screen display would fail to display anything; the subfont.ttf it was trying to find is what was used for the on screen display.

New_Face failed. Maybe the font path is wrong.
The error message that was displayed when starting up MPlayer

no on screen display
No on screen display text showing.

I can only guess that the compiled in settings for MPlayer had changed with this version on openSUSE, or it had done something to the configuration files or font files during the upgrade which caused this issue.

After a quick search for the above error, and then some messing around with font and configuration files, I managed to work out that MPlayer checks a number of locations to determine which font to use, in the following preference order:

  • user defined configuration file: ~/.mplayer/config
  • common system configuration file: /etc/mplayer/mplayer.conf
  • user defined font file, or symbolic link: ~/.mplayer/subfont.ttf
  • system defined font file, or symbolic link: /usr/share/mplayer/subfont.ttf

The exact location of the system configuration files will vary depending on your Linux distribution; for example /usr/share/mplayer above may instead be at /usr/local/share/mplayer. Doing locate mplayer.conf and locate share/mplayer from the command line should help you to find them.

To find the TTF fonts on your system, do locate .ttf and you’ll be returned with a list of files found that have .ttf in them, similar to the following extract:

/usr/share/fonts/truetype/albw.ttf
/usr/share/fonts/truetype/albwb.ttf
/usr/share/fonts/truetype/albwbi.ttf
/usr/share/fonts/truetype/albwi.ttf
/usr/share/fonts/truetype/andalemo.ttf
/usr/share/fonts/truetype/andybol_.ttf
/usr/share/fonts/truetype/andyreg_.ttf
/usr/share/fonts/truetype/ansbi___.ttf
/usr/share/fonts/truetype/ansb____.ttf
/usr/share/fonts/truetype/ansi____.ttf
/usr/share/fonts/truetype/ans_____.ttf
/usr/share/fonts/truetype/arblwgl.ttf
/usr/share/fonts/truetype/arial.ttf
/usr/share/fonts/truetype/arialbd.ttf
/usr/share/fonts/truetype/arialbi.ttf
/usr/share/fonts/truetype/ariali.ttf
/usr/share/fonts/truetype/ariblk.ttf

It’s then just a matter of selecting which font to use, and adding the following line(s) to the appropriate configuration file:

font=/usr/share/fonts/truetype/arial.ttf
subfont-text-scale=2.5
Note that’s it’s possible to change the size of the font in the on screen display using the “subfont-text-scale” property as show in the above example.

If you instead prefer to use a symbolic link to the TTF file, although I would recommend you use the configuration files instead as you then also have control over the font size, you would do this, substituting the correct paths:

ln -s /usr/share/fonts/truetype/arial.ttf ~/.mplayer/subfont.ttf
OR
sudo ln -s /usr/share/fonts/truetype/arial.ttf /usr/share/mplayer/subfont.ttf

the problem is fixed
The problem is fixed and the on screen display text is now showing.

Please note: if you are using GMPlayer (the GUI version of MPlayer) then you don’t need to resort to editing text files or creating symbolic links. If you right-click the player and select “Preferences” and then select the “Font” tab, you can set the font and scale there.