ffmpegで動画にテキストをオーバーレイする

提供: Akionux-wiki
Share/Save/Bookmark
移動: 案内検索

概要

ffmpegで入力動画にテキストをオーバーレイした(上に重ねた)動画を出力する。

要件

インストールされているffmpegでlibfreetypeが有効になっている必要がある。

ffmpeg --versionを実行して次のように--enable-libfreetypeが出れば有効になっている。

$ffmpeg --version
ffmpeg version N-64382-gdea377f Copyright (c) 2000-2014 the FFmpeg developers
  built on Jul 18 2014 18:50:25 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --arch=x86_64 --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libpulse --enable-libtheora --enable-libv4l2 --enable-libx264 --enable-libxvid --enable-nonfree --enable-openal --enable-pic --enable-shared --enable-version3 --enable-x11grab --enable-zlib --enable-libfreetype --prefix=/usr/local
  libavutil      52. 90.101 / 52. 90.101
  libavcodec     55. 68.100 / 55. 68.100
  libavformat    55. 44.100 / 55. 44.100
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4. 10.100 /  4. 10.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100

もしlibfreetypeが有効になっていなければffmpegを再ビルドする必要がある。

使用例

次のコマンドでは、sub_video3.mp4という入力動画に対して、20ピクセルのDejaVuSerifフォントで「Text to write is this one, overlaid」というテキストをx=100,y=100の位置にオーバーレイしてwith_text3.mp4という動画に出力する[1]

ffmpeg -i sub_video3.mp4 -vf \
       drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf: \
       text='Text to write is this one, overlaid':fontsize=20:fontcolor=red:x=100:y=100" \
       with_text3.mp4
  1. https://sites.google.com/a/asu.edu/wireless-video-sensor/video/how-to-setup-full-ffmpeg-tools-in-ubuntu-11-10/useful-ffmpeg-commands