FFmpeg libass subtitles filter not using fontsdir parameter on Render deployment

I’m trying to render subtitles with color emojis using FFmpeg’s libass subtitles filter. I have bundled fonts in my app directory and I’m passing fontsdir=/path/to/app/fonts to the subtitles filter, but libass is still using system fontconfig instead of my bundled fonts.

What I have:

  • app/fonts/NotoColorEmoji.ttf (color emoji font)

  • app/fonts/OpenSans-Bold.ttf (base font)

  • Code that conditionally passes fontsdir when emoji font exists

What’s happening:

  • Logs show: “Using font provider fontconfig” (system fonts)

  • Logs show: “fontselect: (Arial Bold, 400, 0) → Arial-BoldMT” (system Arial)

  • Emojis render as missing glyphs (black boxes)

  • No “Using bundled fonts” message in logs

Environment:

  • Deployed on Render (Linux)

  • FFmpeg with libass support

  • Python ffmpeg-python library

Question:

Why is libass ignoring the fontsdir parameter and falling back to system fonts? How can I force libass to use my bundled fonts directory for subtitle rendering?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.