Python-pptxで動的なスライドショーを自動生成|PPTから動画化までのプロセス

Pythonでプレゼン資料を自動生成して動画にできたら、仕事の効率が上がるんじゃないかな…PythonでPPTを扱う方法なんてあるのかな…?
猫男
猫男
catman
catman
もちろんさ。Python-pptxを使えば、スライドの作成が可能だ。また、ffmpegでPPTを動画化することもできるんだよう。やり方を教えてあげるんだ。

 

Python-pptxを使って動的なスライドショーを作成する

Python-pptxはPythonでPPTファイルを生成し、編集するためのライブラリです。

プレゼンテーションの資料を自動生成でき、業務効率化に役立ちます。

Python-pptxのインストール

Python-pptxを使うためには、まずインストールをする必要があります。

pip install python-pptx

このコマンドを実行することで、Python環境にライブラリが追加されます。

 

サンプルPPTファイルを生成する

次に、Pythonコードを使って簡単なPPTファイルを生成してみましょう。

from pptx import Presentation

# 新しいプレゼンテーションを作成
presentation = Presentation()

# タイトルスライドを追加
slide_layout = presentation.slide_layouts[0]
slide = presentation.slides.add_slide(slide_layout)

# タイトルとサブタイトルを設定
title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "Python-pptxによるスライド生成"
subtitle.text = "自動生成されたスライドで業務を効率化しましょう"

# プレゼンテーションを保存
presentation.save('generated_presentation.pptx')

このコードは、新しいPPTファイルを作成し、タイトルスライドを追加してタイトルとサブタイトルを設定します。

 

PythonからPPTを動画化するプロセス

生成したPPTファイルを動画化するには、ffmpegを使います。

まずはffmpegをインストールしましょう。

ffmpegのインストール

MacやLinuxユーザーならHomebrewを使うとインストールが簡単です。

brew install ffmpeg

 

PythonでPPTを画像に変換する

PPTを動画化する前に、各スライドを画像ファイルに変換します。

次のようにPythonスクリプトを使います。

import comtypes.client
from pathlib import Path

def ppt_to_images(ppt_file):
    powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
    powerpoint.Visible = 1

    output_dir = Path("slides_images/")
    output_dir.mkdir(exist_ok=True)

    presentation = powerpoint.Presentations.Open(ppt_file, WithWindow=False)
    
    for i in range(1, presentation.Slides.Count + 1):
        slide = presentation.Slides(i)
        slide.Export(str(output_dir / f"slide_{i}.jpg"), "JPG")

    presentation.Close()
    powerpoint.Quit()

このスクリプトは、PPTファイルの各スライドをJPEG形式の画像ファイルに変換します。

 

[h3>PPTを動画にする

すべてのスライドを動画にするには、先ほどのJPEG画像を使います。

スライド画像を結合した動画の生成

次に、スライド画像を使って動画を生成するPythonスクリプトです。

import subprocess

input_pattern = "slides_images/slide_%d.jpg"
output_video = "presentation_video.mp4"

command = [
    "ffmpeg",
    "-framerate", "1",
    "-i", input_pattern,
    "-r", "30",
    "-pix_fmt", "yuv420p",
    output_video
]

subprocess.run(command)

このffmpegのコマンドは、画像を順番に結合し、動画を生成します。動画は各スライドを1秒間表示するようになっています。

 

PythonでPPTファイルを自動生成して、さらにそれを動画にするなんて、まさに業務効率化ですね!これでプレゼン資料作りが楽になりそうです。
猫男
猫男
catman
catman
その通りさ。Pythonとffmpegを使いこなせば、スライドの作成から動画化まで自動的に処理できるんだ。効率アップには最適な手法だよう。

 

まとめ

Python-pptxを使ってスライドを自動生成し、ffmpegで動画化するプロセスを紹介しました。

  • Python-pptxでPPTファイルを自動生成できる
  • 毎回の手動入力を減らせる
  • ffmpegでスライドを動画化しやすくなる
  • プレゼン動画を自動生成して効率化できる

これらを駆使して、プレゼン資料作成を効率化し、業務をスムーズに進めましょう。

EARTHPG 自動化研究所

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

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