You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg drawtext滤镜无法正常显示Emoji的技术求助

解决FFmpeg drawtext滤镜无法显示Emoji的问题

我看到你用FFmpeg的drawtext滤镜添加带Emoji的文本时踩了个小坑——表情符号没法正常显示,这大概率是字体不支持Emoji字符导致的:你用的Roboto-Bold.ttf本身只包含常规拉丁文字形,没有内置Emoji的渲染数据,所以FFmpeg没法输出对应的表情符号。

下面给你几个实用的解决办法:

1. 直接换用支持Emoji的字体

最简单的方式是换成一款内置Emoji字形的字体,比如谷歌开源的Noto Color Emoji、Windows自带的Segoe UI Emoji,或者苹果系统里的Apple Color Emoji。

以Noto Color Emoji为例,修改后的命令如下:

drawtext=text='TextToDispley🔥':fontfile=NotoColorEmoji.ttf:fontcolor=white@0.9:fontsize=50:x=100:y=100:

小贴士:如果你的系统里没装这款字体,要么先安装它,要么在fontfile里写清楚字体文件的完整路径,比如/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf(Linux路径)或者C:\Windows\Fonts\seguiemj.ttf(Windows下Segoe UI Emoji的路径)。

2. 混合字体方案(兼顾普通文本和Emoji)

如果想让普通文本继续用Roboto,只让Emoji用专门的字体渲染,可以通过叠加两次drawtext滤镜实现:

ffmpeg -i input.mp4 -filter_complex \
"[0:v]drawtext=text='TextToDispley':fontfile=Roboto-Bold.ttf:fontcolor=white@0.9:fontsize=50:x=100:y=100, \
 drawtext=text='🔥':fontfile=NotoColorEmoji.ttf:fontcolor=white@0.9:fontsize=50:x=350:y=100[outv]" \
-map "[outv]" -map 0:a output.mp4

这样普通文本用你喜欢的Roboto渲染,Emoji用支持的字体渲染,两者都能正常显示。

3. 升级FFmpeg版本(可选)

部分旧版本的FFmpeg对彩色Emoji的支持不够完善,如果你用的是比较老的版本,建议升级到最新稳定版(比如5.x及以上),能更好地处理Emoji的渲染逻辑。

内容的提问来源于stack exchange,提问作者Roar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:22:59