2013-12-22

FFmpeg で動画にテキストをリアルアイムでオーバレイ

FFmpeg に, drawtext というビデオフィルタがあり, テキストを動画にオーバレイすることができる. 色々と便利な機能もついている.
  1. 文字部分のボックスを塗りつぶす.
    背景の色によっては文字が見えにくくなることもあるが, このような場合はボックス機能を使えば良い.
    box=1:boxcolor=black
    ボックスを半透明にする場合は, @の後に数字を書く.
    box=1:boxcolor=black@0.5
  2. フォントの指定が可能.
    日本語のフォントも指定可能. 文字の色や大きさも指定できる.
    fontfile=/usr/share/fonts/ipa-gothic/ipag.ttf:fontsize=48:fontcolor=white
  3. 文字列の展開が可能
    1. 時刻
  4. 影をつけることが可能
  5. ファイルから読み込み
    reload=1をつけると, 1フレーム毎にファイルを読み込む.
    textfile=tmp.txt:reload=1
    なお, ファイルを更新するときには, 以下のようにファイルの更新がアトミックに行われるようにすればよい.
  6. 予め別のファイルで新しいデータを作成.
    echo '新しいテキスト' >tmp1.txt
  7. ムーブでファイルを更新.
    mv tmp1.txt tmp.txt
    もし頻繁に書き換えるなら, /dev/shm/下などのtmpfs上に作成するのが良いだろう.
  8. 文字の表示位置
    数式で表示位置を指定可能. センタリグするには, 以下の式:
    x=(W-tw)/2

意外といろいろな機能がついていることが分かった. OpenLP と組み合わせて使おうと思う.

0 件のコメント:

コメントを投稿