動画からPowerPointへの変換でスライドが抜ける理由と、結果の確かめ方
要点: スライドの欠落は、サンプリング、変化しきい値、トランジション、画面内の動き、重複除去のいずれかで起きます。失敗した工程が分からないまま「AIの精度」を語っても診断にはなりません。

私はVideo2Anyとオープンソースのvideo-slide-extractorをメンテナンスしています。この記事は実装上の知見であり、第三者による製品ランキングではありません。失敗の原因を確認できる形にすることが目的です。
ブランドではなく症状から確認する
| 症状 | 考えられる工程 | 最初に確認する項目 |
|---|---|---|
| 短時間だけ表示されたスライドがない | サンプリング | 解析フレームの時間間隔 |
| 箇条書きが1つ増えただけの変更を見逃す | 変化しきい値 | 感度と切り抜き範囲 |
| 半透明の切り替え画像が入る | フレーム選択 | 変化後の待ち時間 |
| カーソルやカメラ映像で余分なページが出る | 動きの処理 | 切り抜き、マスク、動き対応しきい値 |
| 再表示されたスライドが消える | 全体重複除去 | 時系列を残すか、固有ページだけにするか |
1. サンプリングが再現率の上限を決める
多くの抽出ツールは、デコードした全フレームを比較せず、数秒ごとの時間グリッドを調べます。高速ですが、2つのサンプリング点の間だけ表示されたスライドは後工程から見えません。解析されていない画像は、しきい値を下げても戻せません。
これはVideo2Any固有ではなく、時間方向の再サンプリングに共通する制約です。FFmpegの公式文書にも、目標フレームレートに合わせてフレームを落としたり複製したりする仕組みが記載されています。比較するときは、各ツールの実際のサンプリング間隔を確認してください。 FFmpeg fpsフィルターの文書
Video2Anyは動画の長さから通常1〜6秒の間隔を自動選択し、非常に長い動画ではメモリ上限のため間隔を広げます。高速な初回解析と再現率重視の解析は設定が異なるため、エディターから再サンプリングできます。
2. 変化しきい値には必ずトレードオフがある
画像検出には「どれだけ変われば新しいスライドか」という基準が必要です。しきい値が高いと圧縮ノイズやカーソル移動を無視できますが、箇条書き1つの追加を見逃すことがあります。低いと小さな変更を拾える一方、発表者の動きまで新しいページになる場合があります。
Video2Anyは画像を縮小してブロックごとの色変化を測り、変化したブロックの比率を動画から調整します。別の方式を使う製品もあります。PySceneDetectには固定しきい値と、カメラ移動による誤検出を減らす適応型検出があります。これは一般的なトレードオフを示す例で、すべての製品がPySceneDetectを使うという意味ではありません。 PySceneDetectの検出器ドキュメント
3. 変化を検出しても、きれいなフレームとは限らない
時刻が正しくても画像が使えないことがあります。フェード、ワイプ、段階表示では、旧スライドと新スライドが混ざった中間フレームが生まれます。「変化した」という判定が正しくても、表示はまだ安定していません。
後処理で次のサンプルへ進めたり、少し待ってから高解像度画像を取得したりできます。ただし、瞬時の切り替え、2秒のフェード、長い箇条書きアニメーションを同じ待ち時間では処理できません。時刻の検出と画像品質は別に採点します。
4. 動きが「差分」の意味を変える
Webカメラの小窓、カーソル、ライブコーディング、アニメーション付きグラフ、手持ち撮影は、スライドが同じでも画素を変化させます。安定したスライド領域だけを切り抜くのが最も確実です。難しい場合は、常に動くブロックをマスクできます。
ただし、動きが中心の動画ではマスクが本来の被写体まで隠します。Video2Anyは、マスク後の領域がスライドらしい場合だけ継続的な動きのマスクを使います。あらゆる録画に対する保証ではありません。
5. 重複除去が意味のある再表示を消すこともある
隣接差分の検出は、現在のフレームが直近のフレームと違うかを見ます。全体重複除去は、すでに保存したどのスライドとも似ていないかを見ます。別の処理です。
講師が目次へ戻ったとき、短い資料なら1枚で十分でも、時系列の講義記録では2回の表示を残したい場合があります。「重複」は類似度だけでなく出力目的の問題です。用途に合わせて判断してください。
全編を処理する前に5分で検証する
- 実際の切り替えが10〜20回あり、トランジションと小さな段階表示を含む2〜5分の区間を選びます。
- 各スライドの開始時刻を記録します。簡単なCSVでも正解データになります。
- ツールのバージョン、サンプリング間隔、しきい値または感度、切り抜き、出力解像度を記録して実行します。
- 決めた許容時間内で、1つの検出を1つの正解切り替えにだけ対応させます。同じページへ複数の検出を割り当てません。
- 欠落、誤検出、重複、使えないトランジション画像を分けて報告します。
比較可能な数値が必要なら、precisionは検出結果のうち正しかった割合、recallは実際の切り替えを見つけた割合、F1は両者のバランスです。オープンソースパッケージには、対応付け規則と報告項目を定めた再現可能な評価手順があります。 再現可能な評価手順
最初に変える設定
- 短時間の1枚だけが抜ける: その区間のサンプリング間隔を短くします。
- 小さな段階表示が抜ける: 感度を上げ、カーソルや圧縮ノイズの誤検出を確認します。
- 余分なページが多い: 全体しきい値を変える前に、Webカメラや動く操作部を切り抜きます。
- 半透明の画像が入る: 安定した後のフレームを選び、時刻検出と画像品質を同じ指標にしません。
- 再表示されたページが消える: 固有スライド集と時系列記録のどちらが必要かを決めてから全体重複除去を使います。
よくある質問
動画からPowerPointへ変換したとき、1枚だけ抜けるのはなぜですか?
最も明確な上限はサンプリングです。短いスライドが2つのサンプリング時刻の間だけ表示されると、検出器はその画像を受け取りません。しきい値が高すぎる場合も、箇条書き1つの追加などを見逃します。
サンプリング間隔を短くすれば、すべてのスライドを復元できますか?
短いスライドを見つける確率は上がりますが、きれいな結果を保証しません。処理量が増え、トランジション候補、動きのノイズ、重複も増えます。
書き出したPPTXに半透明のスライドが入るのはなぜですか?
フェード、ワイプ、段階表示の途中で変化を検出したためです。切り替えの検出と、安定したフレームの選択は別の問題です。
重複スライドができるのはなぜですか?
カーソル、Webカメラ、小さなアニメーションを新しいページと判断する場合があります。講師が以前のページへ戻る場合もあります。全体重複除去は隣接差分検出とは別の工程です。
サンプリングされなかったスライドをAIで復元できますか?
音声や前後の画像からもっともらしい代替ページを生成することはできますが、元の画面の復元ではなく新しい資料の生成です。別の結果として表示し、評価する必要があります。
まとめ
サンプリング、対応付け、重複、画像品質を定義しない限り、「動画からPowerPointへの変換精度」を1つの数値で正直に表せません。短い区間に正解を付け、失敗した工程を特定し、設定は1つずつ変えます。根拠になるのは宣伝文句ではなく、実際に書き出されたファイルです。