1. MoviePyのテキストの世界へようこそ
さあ、テキストを使った動画編集の魔法の世界に飛び込みましょう。想像してみてください、あなたは監督です。そして、キャラクターにセリフを言わせるだけでなく、画面上に現れる言葉をコントロールするという仕事もあります。そう、それが字幕やクレジットの魔法です!
始める前に、簡単なことを理解するのが大事です:MoviePyはただの動画編集用のライブラリではありません。それはあなた専用の動画デザイナーで、プロジェクトに少しだけ魅力や情報性を加える手助けをしてくれます。すでに動画編集の基本は学びましたね:トリミング、接続、ちょっとした特殊効果など。それなら、次のレベルに進む時が来ました。
なぜテキストを追加するのか?
動画の中のテキストは重要な役割を果たします。情報提供メッセージやスタイリッシュなクレジット、そして夜遅くに隣人を起こさずに作品を観る人のためにありがたい字幕など。MoviePyを使えば、それが便利でスタイリッシュに実現できます。
2. テキスト操作
まず、簡単なテキスト要素から始めましょう。そのためにMoviePyはTextClipという素晴らしい機能を提供してくれます。この機能を使えば、クリップにテキストを追加できます。
テキストクリップの作成
基本的なテキストクリップの設定は以下のようになります:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
# 動画ファイルを開く
video = VideoFileClip("sample_video.mp4")
# テキストクリップを作成
txt_clip = TextClip("こんにちは、世界!", fontsize=70, color='white')
# テキストクリップの再生時間を設定
txt_clip = txt_clip.set_duration(video.duration)
# テキストの位置を指定
txt_clip = txt_clip.set_position('bottom')
# 動画とテキストを合成
video_with_text = CompositeVideoClip([video, txt_clip])
# 結果を保存
video_with_text.write_videofile("output_video_with_text.mp4", fps=24)
フォントと色のカスタマイズ
テキストの色やフォント、サイズを簡単にカスタマイズできます。上の例ではテキストの色が白ですが、他の色を選ぶこともできます。例えば:
txt_clip = TextClip("こんにちは、世界!", fontsize=70, font='Amiri-bold', color='yellow')
同様に、フォントも変更可能です。必要なフォントがシステムにインストールされていることを確認してください。
3. テキストの画面上の位置設定
テキストの位置はset_position()パラメータで調整できます。このパラメータは'center'や'bottom'のような文字列値、または座標を受け付けます。
テキストを異なる位置に配置する
# 上部に配置されたテキスト
text_top = TextClip("上部のテキスト", fontsize=30, color='blue').set_position(('center', 'top')).set_duration(5)
# 下部に配置されたテキスト
text_bottom = TextClip("下部のテキスト", fontsize=30, color='green').set_position(('center', 'bottom')).set_duration(5)
# 座標(x=100, y=100)に配置されたテキスト
text_coords = TextClip("座標のテキスト", fontsize=30, color='red').set_position((100, 100)).set_duration(5)
# すべてのテキストを動画に重ねる
final_video = CompositeVideoClip([video, text_top, text_bottom, text_coords])
final_video.write_videofile("video_with_positioned_text.mp4")
ここで:
('center', 'top'): テキストを中央上部に配置。('center', 'bottom'): テキストを中央下部に配置。(100, 100): 具体的な座標でテキストを配置。
テキストの動的更新
ただテキストを追加するだけでなく、それにアニメーションをつけることで、動画は本当に魅力的になります。テキストを動かしてみましょう。
def move_text(t):
return 10, 100 * t # 時間とともにテキストを下に動かす
txt_clip = txt_clip.set_pos(move_text).set_duration(3)
GO TO FULL VERSION