0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FFmpeg の drawtext が Windows上で動かない時に見るメモ

Posted at

前提条件

  • OSはWindows(10)
  • 公式から紹介されているWindows向けビルド(gyan)を使用
    • (fullを選んでいるがessentialでもdrawtextに必要なライブラリは入っている)
  • filterにdrawtextを含めるとエラーもなくFFmpegが終了する
    • fontの指定/無指定、fontfileのファイル名のみorフルパス指定に無関係に落ちる
  • 環境変数 Env:FC_CONFIG_DIR, Env:FONTCONFIG_PATH, Env:FONTCONFIG_FILEを指定するとFontconfigのWarningは出るが落ちる

個人的環境

  • ver4.4では自分で適当に書いた fonts/fonts.conf をbinディレクトリ内に入れておけば問題なかった
    • <fontfonfig>タグ内に<dir>タグでWindowsのfontディレクトリと、ユーザーごとのfontディレクトリを指定したのみ
      • <dir>c:/Windows/Fonts</dir>
      • <dir>c:/Users/USERNAME/AppData/Local/Microsoft/Windows/Fonts</dir>
    • 環境変数等は未指定で動作していた
  • ver6.0以降に乗り換えようとした途端、同様の方法では上記の通りエラーもなく終了するようになった
    • 現在最新のver7.1も同様
  • changelogにはそれらしい記載なし

解決方法

いろいろやってみた結果とりあえず最悪の解決方法として、

  • カレントディレクトリ(ffmpeg.exeの位置、ではなく)にフォントファイルを配置
  • fontfile=フォント名.ttc と指定(font=フォント名、ではなく)

にてdrawtext filterを指定しても落ちずに成功するようになった。環境変数は指定しなくていい。

これならこの記事のように フォントファイルのフルパス指定なら通るのではないかと思うのだが通らなかった。
fontfile=C\\:Windows/Fonts/フォント名.ttc
(:はエスケープしてやる必要あり)

原因の推測

上記記事によるとfonts/fonts.confを自動的に見に行っていたようだが、4.4~6.0までの間で見に行かないようになったのだろうか?(ソース追え)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?