動画にPDFのテキストを記入する方法(Python)
MoviePyやImageMagickの設定が必要になります。
MoviePyの確認
バージョン確認
pip show moviepy
アップデート
pip install --upgrade moviepy
画像処理が可能なツール「ImageMagick(イメージマジック)」
ImageMagick
は、画像を操作したり表示したりするためのソフトウェアです。
GIF、JPEG、PNG、PDF、TIFFなど100種類以上の画像ファイルフォーマットに対応、画像の変換・編集などに必要な多数の機能を備えてます。
ImageMagick
のバイナリパスを設定するには、MoviePy
の設定を変更する必要があります。バイナリパスの設定は、MoviePy
が ImageMagick
を正しく利用するために必要です。以下の手順で設定を確認し、修正してください。以下のコマンドを実行して、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)
ディスカッション
コメント一覧
まだ、コメントがありません