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