Pythonで動画に自動テロップを入れる方法|字幕生成を簡単にする手順

Pythonで動画に自動でテロップを入れることってできるのかなぁ…。セミナーやプレゼン動画に字幕を付けたいけど、手作業でやるのは大変だなぁ…。
猫男
猫男
catman
catman
それならcatmanに任せておくんだ。PythonとOpenCVを使えば、動画に文字を入れる処理は意外と簡単にできるよう。必要なのは少しのコーディングと、インストールするライブラリだけだ。

 

PythonとOpenCVで動画に文字を入れる方法

PythonとOpenCVを活用すると、動画に簡単にテロップを入れられます。

これは、Python 動画に文字を入れるためのステップバイステップガイドです。

動画編集初心者にもわかりやすく紹介しますので、ぜひこの方法を試してみてください。

 

OpenCVとは

OpenCVは、画像処理を行うための人気のあるライブラリです。

簡単に動画に強調したいポイントを追加したり、テロップを入れたりすることができます。

Python環境に簡単に取り入れられ、機能が豊富です。

 

OpenCVの準備

OpenCVを使用するためには、Python環境にインストールする必要があります。

以下のコマンドをターミナルで実行してインストールします。

pip install opencv-python

インストールが完了したら、実際に動画に文字を入れていきましょう。

 

動画にテロップを追加する

動画ファイルに好きなタイミングでテロップを入れてみます。

たとえば、次のコードを使います。

 

Pythonコード

import cv2

video_path = 'input_video.mp4'
output_path = 'output_video.mp4'

# 動画を読み込み
cap = cv2.VideoCapture(video_path)
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # mp4形式で保存
out = cv2.VideoWriter(output_path, fourcc, 30.0, (int(cap.get(3)), int(cap.get(4))))

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    # フレームごとにテロップを追加
    cv2.putText(frame, 'Hello, Python!', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)

    # フレームを保存
    out.write(frame)

cap.release()
out.release()
cv2.destroyAllWindows()

このスクリプトを実行すると、input_video.mp4に”Hello, Python!”と表示されるoutput_video.mp4が出力されます。

 

コードの意味

主な部分を確認しておきましょう。

  • cv2.VideoCapture: 動画ファイルを開くためのクラスです。
  • cv2.VideoWriter: 出力用に動画ファイルを生成するためのクラスです。
  • cv2.putText: フレーム上に文字を描画するメソッドです。指定した座標、フォント、サイズ、色で文字を入れます。

cv2.putTextのフォントや表示位置を変更することで、自分の好みのテロップを入れることが可能です。

 

こんなに簡単にテロップを入れられるんですね!イベントの記録動画に、日付やイベント名を簡単に追加できます。
猫男
猫男
catman
catman
そうだよう。慣れてくると、タイミングを変えたり、色をカスタマイズしたりもできるから、ぜひ試してみることだ。Pythonでできる動画編集は便利だよ。

 

複数のテロップを動画に追加する

テロップを複数のタイミングで追加したい場合は、条件分岐でタイミングを制御できます。

 

タイミングを指定してテロップを追加するPythonコード

import cv2

video_path = 'input_video.mp4'
output_path = 'output_video.mp4'
cap = cv2.VideoCapture(video_path)
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_path, fourcc, 30.0, (int(cap.get(3)), int(cap.get(4))))
frame_count = 0

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    # フレーム番号でタイミングを決定
    if 50 <= frame_count < 100:
        cv2.putText(frame, 'Section 1', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)
    elif 150 <= frame_count < 200:
        cv2.putText(frame, 'Section 2', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)
    
    out.write(frame)
    frame_count += 1

cap.release()
out.release()
cv2.destroyAllWindows()

このようにフレーム数を基にテロップのタイミングを変更することで、自由にテロップを挿入できます。

 

まとめ

PythonとOpenCVで動画にテロップを入れる方法を紹介しました。

この方法によって、以下を実現できます。

  • 動画フィルムに簡単にテロップを追加できる
  • タイミングを自由に選んで複数のテロップを設定できる
  • フォントや色、位置を自由にカスタマイズできる

自動で動画にテロップを入れられるようになると、プロジェクトやプレゼン資料の動画作成が楽になります。

ぜひこの方法を使いこなして、あなたの動画へ独自のテイストを加えてください!

 

Pythonを使うと、動画編集がまるで魔法みたいですね!これなら編集作業がグッと楽になります。
猫男
猫男
catman
catman
その通りだよう。実際にやりながら学ぶと面白い発見がある。Pythonで動画に文字を入れることも、どれだけ簡単か体感してほしいんだ。

 

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。