ffmepg で No such filter: 'drawtext' エラー
背景
動画に文字をfade in / fade out でいれるのにdrawtextが使える!という情報を見て、コマンドを実行するとdrawtextが無いというエラー。
$ ffmpeg -i "input.mp4" -filter_complex "format=gbrp,drawtext=fontfile='your/font/file':fontsize='30':x=(w-tw)/2:y=(h-th)/1.2:text='title_text':fontcolor_expr=ffffff%{eif\\:clip(255*(1*between(t\,1+1.5\,6-1.5)+((t-1)/1.5)*between(t\,1\,1+1.5)+(-(t-6)/1.5)*between(t\,6-1.5\,6) )\,0\,255)\\:x\\:2},format=pix_fmts=yuv420p" -movflags +faststart -c:v libx264 -crf 20 "output.mp4" ... [AVFilterGraph @ 0x466e4c0] No such filter: 'drawtext' ...
原因
使用しているffmpegがdrawtextに対応していないのが原因でした。
解決方法
drawtextを使用するにはfreetypeというライブラリが必要でした。
しかし当方Macなのですが、brewでffmpegをインストールするときのオプションが廃止されているようです。
$ brew install ffmpeg --with-freetype Error: invalid option: --with-fdk-freetype
そしてオプションつけなくても全部入りでインストールされるようです!
なのでffmpegを再インストールしたら無事にdrawtextを使えるようになりました。
$ brew reinstall ffmpeg
まとめ
Macに入っていたffmepgのバージョンがdrawtextに対応していなかった。 ffmpegをインストールしなおしたら使えるようになりました。
$ brew reinstall ffmpeg