テキストから動画を生成する |文字だけの動画を簡単に作成する | Windows11


このページでは Windows 11環境においてテキスト(文字列)から動画を生成する手順に関して説明します。フリーツールの ImageMagick と FFmpeg を利用します。

準備する

このページで紹介する「テキストから動画を生成する」手順では次の二つのフリーツールである「ImageMagick」と「FFmpeg」を利用します。それぞれのダウンロード方法、およびインストール方法は次の項目を参考にしてください。

ImageMagick のダウンロードとインストール

FFmpeg のダウンロードとインストール

このページでの考え方

このページでは次の2段階で考えています。

(1)1段階目

テキスト文字列から画像を生成する。ImageMagick により文字列から png 画像を生成することが可能。

(2)2段階目

上記で作成した png 画像を動画化する。

文字から画像を生成する

文字から画像を生成するサンプルプログラムは次の通りです。フォント、文字列、サイズを指定することにより、指定した文字列の画像を作成することが可能です。

次のサンプルでは"msmincho"のフォントでサイズ1280x720の画像を作成し、文字列に"\nテスト1\nテスト2"を設定しています。
そのファイルをC:\testdata\out.png に保存しています。\n は改行を表します。

C:\> magick convert -font c:\\windows\\fonts\\msmincho.ttc -size 1280x720 label:"\nテスト1\nテスト2" C:\testdata\out.png 

次のような画像が生成されます。

文字列からpng ファイルを生成

指定するフォントによっては日本語が文字化けしてしまう点に注意してください

画像から動画を生成する

作成した画像から動画を生成するコマンドを紹介します。ffmpeg.exe がC:\tools\ffmpeg\bin\ に保存されているものとします。

C:\> C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 -i C:\testdata\out.png -vcodec libx264 -t 30 -r 30 -ab 128 c:\testdata\out.mp4

-t オプションで動画の長さを秒で指定します。

-r オプションでフレームレートを指定します。

コマンドにより次のような mp4 ファイルが生成されました。

テキストファイルから動画を作成

動画にさらにテキストを追加する

まずは追加する画像を生成します。生成するファイル名は"C:\testdata\out2.png" とします。

C:\> magick convert -font c:\\windows\\fonts\\msmincho.ttc -size 1280x720 label:"\nテスト3\nテスト4" C:\testdata\out2.png

同様に動画を生成します。

C:\> C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 -i C:\testdata\out2.png -vcodec libx264 -t 30 -r 30 -ab 128 c:\testdata\out2.mp4

動画を結合する

さらに動画を結合します。結合するファイルの一覧をテキストファイルで一覧にまとめて結合します。

例えば "c:\testdata\list.txt" に結合すべき動画の一覧を記載します。

file C:\\testdata\\out.mp4
file C:\\testdata\\out2.mp4

その後 concat オプションにより複数の動画を結合します。これで30秒 + 30秒で1分の動画が生成されます。

C:\> C:\tools\ffmpeg\bin\ffmpeg -r 30 -y -safe 0 -f concat -i C:\testdata\list.txt C:\testdata\out3.mp4"

以上でout1.mp4 と out2.mp4 を結合したout3.mp4 の生成に成功しました。

複数の動画を結合する

エラーメッセージ

エラーメッセージとその対処に関して説明します。

(1)At least one output file must be specified

このメッセージは ffmpeg で出力ファイルを指定しなかった場合に発生します。

[誤(出力ファイルの指定漏れ)]

C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 -i C:\testdata\out.png -vcodec libx264 -t 30 -r 30 -ab 128

[正]

C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 -i C:\testdata\out.png -vcodec libx264 -t 30 -r 30 -ab 128 c:\testdata\out.mp4

(2)Output file #0 does not contain any stream

このメッセージは ffmpeg で入力ストリームが存在しない場合に表示されます。要するにこの場合は入力動画が存在しないということです。動画を指定している場合は、-i オプションを指定しているか確認してください。

[誤(入力ファイルの指定漏れ)]

C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 C:\testdata\out.png -vcodec libx264 -t 30 -r 30 -ab 128 c:\testdata\out.mp4

[正]

C:\tools\ffmpeg\bin\ffmpeg.exe -y -loop 1 -r 30 -i C:\testdata\out.png -vcodec libx264 -t 30 -r 30 -ab 128 c:\testdata\out.mp4


[戻る]