Pythonで動画に自動テロップを入れる方法|字幕生成を簡単にする手順
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のフォントや表示位置を変更することで、自分の好みのテロップを入れることが可能です。
複数のテロップを動画に追加する
テロップを複数のタイミングで追加したい場合は、条件分岐でタイミングを制御できます。
タイミングを指定してテロップを追加する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で動画にテロップを入れる方法を紹介しました。
この方法によって、以下を実現できます。
- 動画フィルムに簡単にテロップを追加できる
- タイミングを自由に選んで複数のテロップを設定できる
- フォントや色、位置を自由にカスタマイズできる
自動で動画にテロップを入れられるようになると、プロジェクトやプレゼン資料の動画作成が楽になります。
ぜひこの方法を使いこなして、あなたの動画へ独自のテイストを加えてください!