Mac正常运行的FFmpeg视频加文字命令在Ubuntu报错求助
解决FFmpeg在Ubuntu中AAC编码器报错的问题
这个问题我之前也碰到过,本质是Ubuntu和Mac上的FFmpeg默认配置差异导致的:Ubuntu默认不允许使用实验性编码器,而你用到的aac编码器恰好属于这个范畴,Mac版FFmpeg编译时通常默认开启了实验性选项,所以没触发这个报错。
最快的修复方式:添加-strict -2参数
直接在你的命令末尾加上-strict -2就能解决,我还调整了命令里的引号嵌套(用单引号包裹文本内容),避免bash环境下的语法冲突,修改后的完整命令如下:
ffmpeg -i intro.mp4 -vf "drawtext=fontfile=FutuMd.ttf: text='Audi': x=680: y=500: fontsize=55: fontcolor=white: enable='between(t,4,6)'" -strict -2 introfinal.mp4
更优的长期方案:使用稳定的AAC编码器
如果不想依赖实验性组件,推荐用libfdk_aac——这是一款质量更高、更稳定的AAC编码器。不过Ubuntu官方源里的FFmpeg默认没带它,你需要先通过第三方PPA(比如ppa:jonathonf/ffmpeg-4)安装带该编码器的FFmpeg版本,之后修改命令为:
ffmpeg -i intro.mp4 -vf "drawtext=fontfile=FutuMd.ttf: text='Audi': x=680: y=500: fontsize=55: fontcolor=white: enable='between(t,4,6)'" -c:a libfdk_aac introfinal.mp4
额外提醒
- 确保Ubuntu中
FutuMd.ttf的路径正确,如果字体不在当前工作目录,建议用绝对路径(比如/usr/local/share/fonts/FutuMd.ttf),避免出现找不到字体的额外问题。 -strict -2是FFmpeg官方针对这类实验性编码器报错给出的标准解决参数,它的作用就是临时允许使用实验性编码组件。
内容的提问来源于stack exchange,提问作者Jinal Somaiya
相关产品推荐
相关产品推荐

