//AdSenseにリンク

動画にPDFのテキストを記入する方法(Python)

MoviePyやImageMagickの設定が必要になります。

MoviePyの確認

バージョン確認

pip show moviepy

アップデート

pip install --upgrade moviepy

画像処理が可能なツール「ImageMagick(イメージマジック)」

ImageMagickは、画像を操作したり表示したりするためのソフトウェアです。

GIF、JPEG、PNG、PDF、TIFFなど100種類以上の画像ファイルフォーマットに対応、画像の変換・編集などに必要な多数の機能を備えてます。

ImageMagick のバイナリパスを設定するには、MoviePy の設定を変更する必要があります。バイナリパスの設定は、MoviePyImageMagick を正しく利用するために必要です。以下の手順で設定を確認し、修正してください。以下のコマンドを実行して、magick コマンドのパスを確認できます:

which magick
  • /usr/local/bin/magick(Intel Macの場合)
  • /opt/homebrew/bin/magick(Apple Silicon Macの場合)

MoviePy の設定を変更するには、Python スクリプトの最初に設定を追加します。以下のコードをスクリプトの先頭に追加してください:

from moviepy.config import change_settings

# ImageMagick のバイナリパスを設定します
change_settings({"IMAGEMAGICK_BINARY": "/opt/homebrew/bin/magick"})  # または、/usr/local/bin/magick

コード

import os
from moviepy.config import change_settings
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
import fitz  # PyMuPDF

# ImageMagickのバイナリパスを設定(MAC)
change_settings({"IMAGEMAGICK_BINARY": "/opt/homebrew/bin/convert"})

# PDFからテキストを抽出する関数
def extract_text_from_pdf(pdf_path):
    doc = fitz.open(pdf_path)
    text = ""
    for page in doc:
        text += page.get_text()
    return text

# PDFファイルのパス
pdf_path = 'PDFのファイル.pdf'

# テキストを抽出
pdf_text = extract_text_from_pdf(pdf_path)

# 動画ファイルのパス
video_path = '動画のファイル.mp4'

# 動画の読み込み
video_clip = VideoFileClip(video_path)

# フォントファイルのパス
font_path = 'ipag.ttf'  # フォントファイルのパスを指定

# テキストクリップの作成
text_clip = TextClip(
    pdf_text,
    fontsize=32,  # フォントサイズを調整
    color='rgb(999, 999, 999)',  # フォントの色
    font=font_path
).set_position((80, 280)).set_duration(video_clip.duration)  # フォントの記入する場所

# 動画とテキストを合成
final_clip = CompositeVideoClip([video_clip, text_clip])

# 結果を保存
final_clip.write_videofile('完成ファイルの名前.mp4', codec='libx264', audio=True, audio_codec='aac')

テキストの効果

フェイドイン設定をしたい場合

テキストクリップのフェードインエフェクトを設定(テキストクリップの作成)の一番下あたりに記入する

# テキストクリップのフェードインエフェクトを設定
text_clip = text_clip.set_start(1).crossfadein(5)