FFMPEGを使うことで、動画に簡単に文字を重ねることができます。
ただし、文字だけを重ねた場合、背景の色が文字と似ている場合には文字が見えにくくなってしまいます。
そこで、今回は文字を挿入し、文字のバックグラウンドに以下のような半透明のウインドウを表示し、文字を見やすくしてみたいと思います。
![](http://tecsingularity.com/wp-content/uploads/2022/05/text2.jpg)
FFMPEGの実行バイナリファイルの入手に関しましては、もし入手方法がわからないという方がいらっしゃいましたら、以下の記事を参考にしてみてください。
FFMPEGで動画に半透明のウインドウを重ね、その上にテキストを表示する
それではFFMPEGで動画にウインドウ付きでテキストを重ねる方法を紹介したいと思います。
まず、以下のコマンドで、入力動画(input.mp4)に対し、文字「test」を重畳し、結果動画をoutput.mp4として出力することができます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ffmpeg -i input.mp4 -filter_complex "drawtext=fontfile=C\\://WINDOWS/Fonts/arial.ttf:text='test':fontcolor=blue:fontsize=64:x=40:y=40:box=1:boxcolor=black@0.3: boxborderw=20" output.mp4
ポイントについて説明します。
- 「x=40:y=40」で、文字の重ねる位置を指定できます。x及びyは動画の左上を(0,0)としたときの座標位置です。
- 「fontsize=64」で、文字の大きさを指定できます。
- 「fontcolor=blue」で、文字色を指定できます。この場合は青になります。
- 「text=’test’」で、”test”という文字を重畳します。
- 「box=1:boxcolor=black@0.3: boxborderw=20」の部分でウインドウを配置することができます。まず、boxcolor=blackが色を示し、「@0.3」が透明度を示します。「@1」だと透過されず、「@0」だと完全に透過されます。最後の「boxborderw=20」はWindowの周りの余白で、デフォルトだとウィンドウと文字の間のパディングが少なすぎるため、適当に値を挿入しています。
- 「fontfile=C\://WINDOWS/Fonts/arial.ttf」でフォント「arial」を指定します。フォントについては、Windows10の私の環境では記述の場所にありましたが、環境によって異なるかもしれないため、フォントファイルがある場所を指定してください。フォントのファイルは以下の画像のようなデータです。
![](http://tecsingularity.com/wp-content/uploads/2022/05/font-1024x518.jpg)
動画を出力すると、以下のように左上にウィンドウ付きで「test」の文字が入りました。
![](http://tecsingularity.com/wp-content/uploads/2022/05/text2.jpg)
まとめ
今回は、文字を見やすくするため、文字の後ろにボックスを配置する方法を紹介しました。FFMPEGを使えば、動画に簡単に文字を入れることができます。