pptx2mp4.py

概要

Windows環境のPowerPointを利用して、プレゼンテーションファイルを動画ファイル( .mp4 )に変換するコマンドラインツールです。

必要条件

  • Windows環境およびMicrosoft PowerPointがインストールされていること。

  • Pythonの非標準ライブラリとして pywin32 (スクリプト内では pythoncom および win32com.client として使用)がインストールされていること。

動作原理

win32com.client.DispatchEx を使用して独立したPowerPointプロセスを起動し、対象のプレゼンテーションを読み取り専用で開きます。その後、PowerPoint APIの CreateVideo メソッドを呼び出し、MP4への変換処理を開始します。変換の進行中は CreateVideoStatus の値を2秒間隔で監視し、変換の完了( STATUS_DONE )または失敗( STATUS_FAILED )を判定します。

入出力仕様

  • 入力ファイル

    • 位置引数として必ず指定する必要があります。

    • ファイルの拡張子は .pptx 、 .pptm 、 .ppt のいずれかである必要があります。

  • 出力ファイル

    • 拡張子は .mp4 である必要があります。

    • 省略した場合は、入力ファイルと同じディレクトリに、拡張子を .mp4 に変更した同名ファイルが自動的に設定されます。

    • 出力先に既にファイルが存在する場合、デフォルトの動作ではエラーとなり処理が中断されます。

コマンドラインオプション

  • input : 入力するPowerPointファイル(必須)。

  • -o , --output : 出力するMP4ファイルのパス。

  • --resolution : 動画の縦解像度を指定します。選択可能な値は 480 , 720 , 1080 , 2160 です(デフォルト: 720 )。

  • --fps : 動画のフレームレートを指定します(デフォルト: 30 )。

  • --quality : 動画品質を 1 から 100 の数値で指定します(デフォルト: 100 )。

  • --default-duration : スライドに切り替えのタイミングが設定されていない場合の、1スライドあたりの表示秒数を指定します(デフォルト: 5 )。

  • --ignore-timings : このフラグを指定すると、プレゼンテーションに記録されているタイミング設定やナレーションを使用せずに変換を行います。

  • --overwrite : 既存の出力ファイルが存在する場合に上書きを許可するかを 0 または 1 で指定します(デフォルト: 0 )。

  • --pause : スクリプト終了時にコンソールを閉じずにキー入力を待機するかを 0 または 1 で指定します(デフォルト: 0 )。

実行例

基本的な実行(入力ファイルと同じディレクトリにMP4が作成されます)

python pptx2mp4.py sample.pptx

出力先ファイル名、解像度、フレームレートを指定した実行

python pptx2mp4.py sample.pptx -o output.mp4 --resolution 1080 --fps 60

記録済みのタイミングを無視し、既存の同名ファイルを上書きして変換する実行

python pptx2mp4.py sample.pptx --ignore-timings --overwrite 1

処理終了後にコンソールの画面を閉じないようにポーズをかける実行

python pptx2mp4.py sample.pptx --pause 1