pythonで動画に字幕テロップを入れる

  • 特殊な動画編集ソフトが必要ない。
  • プログラムで時間と文字を指定すれば自動で動画に字幕がつく。
  • シンプルな字幕編集であれば圧倒的に作業が速い。
スポンサーリンク

参考プログラム

Python動画編集!動画に位置制御したテロップを入れる方法
動画をYoutube等にアップロードする場合、ユーザビリティを考えてテロップを入れたい時があります。動画編集のソフトは有料無料様々ありますが、プログラムを自分で組むことができれば、細かい演出も自由自在です。ここではPythonで動画の任意の位置・時間にテロップを入れる方法を紹介します。

メモ

事前準備
ライブラリ:os はデフォルトで入っていた。

pip install --upgrade pip #パッケージのアップグレード
pip install opencv-python
pip install pillow
pip install numpy

フォントが保存されている場所

C:\Windows\Fonts

ttf
TrueTypeFont
フォント単体を収録しているもの。

ttc
TrueTypeCollection
フォントとプロポーショナルや等幅など同書体で複数のバージョンを収録しているもの。

プログラム解説

# [文章, 開始時間, 終了時間]:ここで指定した動画内時間の範囲にテロップ文章を入れる
message = [['このように', 1, 4],
           ['動画内のアクションの時間さえわかっていれば', 4.5, 11],
           ['アクションに合わせたテロップを入れることができます', 12, 17]]

動画の中の、何秒から何秒の位置に、どういう文字を、だけ考える。
そして変数messageという配列に格納。

文字数が多くて改行したい場合

改行したい部分に「\n」を入れる。

message = [['あああああ\nあああああああ', 2, 5],
           ['いいい\nいいいいいいいいい', 5.5,7.5]]

ただ改行すると文字位置がずれて画面下に飛び出て見えなくなってしまう。
位置を調整する必要がある。

    #横位置、縦位置、共に中央揃えにする場合
    position = (int((W - w) / 2), int((H - h) / 2))

    # 横位置は中央、縦位置は下、2行に対応させる場合
    position = (int((W - w) / 2), int(H - (font_size * 3)))
python
スポンサーリンク
のんびりブログ

コメント

タイトルとURLをコピーしました