Forum Discussion
Chloesvo
Sep 08, 2026Copper Contributor
PC画面を録画するにはどうすればいいですか?
こんにちは。パソコン初心者です。Windows 11を使っていて、PC画面 録画をしたいと考えています。 ゲームプレイやオンライン講座の様子を録画して、後で編集したいと思っています。PC 画面 録画のやり方が全く分からず困っています。録画の始め方や設定の仕方、録画した後にどうやって編集すればいいのかなど、基本的なところから教えていただけると助かります。 音声もきれいに録れる方法や、画質の設定...
Bernardosu
Sep 08, 2026Copper Contributor
Windows APIを使ったWindows 画面録画の実装は、主に以下の手順で進めます。大きく分けて「キャプチャ方式の選択」「環境構築」「実装」の3段階です。
1. キャプチャ方式の選択(最重要)
まず、使用するAPIを決めます。目的によって最適な方法が異なります。
- Windows.Graphics.Capture (推奨): Windows 10以降の公式な最新API。安全なシステムUIを介してユーザーがキャプチャ対象(ウィンドウやディスプレイ)を選択でき、開発が比較的容易です。WinUI 3やWin32アプリで利用できます。
- Desktop Duplication API: 高性能が求められる場合に最適です。DirectXを直接操作し、低レイテンシで高速なフレーム取得が可能です。ゲームキャプチャや高FPSなWindows 画面録画に向きますが、実装は複雑です。Windows 8以降が必要です。
- GDI (BitBlt): 最も古典的で互換性が高い方法ですが、速度は遅く、CPU負荷が高いです。簡単なスクリーンショットや、特別な高速性が不要な場合に選択肢となります。
2. 開発環境の準備
選んだ方式に応じて、必要なSDKやライブラリを用意します。
- Windows.Graphics.Capture API: Windows 11 SDK (10.0.26100) 以降とVisual Studio 2022が必要です。
- Desktop Duplication API: DirectX 11対応のGPUと、Windows 8以降のOSが必要です。C++の場合はDirectX SDK、C#の場合はSharpDXやDesktopDuplication NuGetパッケージなどが利用できます。
- Pythonで手軽に試す場合: dxcamやwincamといったライブラリを使うと、Desktop Duplication APIを数行のコードで利用できます。
3. 実装の大まかな流れ (Windows.Graphics.Capture APIの例)
ここでは、公式ドキュメントに沿った推奨手法であるWindows.Graphics.Captureを用いた場合の主要なステップを紹介します。
- サポート確認: GraphicsCaptureSession.IsSupported()でデバイスがキャプチャ機能に対応しているか確認します。
- 対象選択: GraphicsCapturePickerを呼び出し、システムUIを表示してユーザーにキャプチャするウィンドウや画面を選んでもらいます。選択されるとGraphicsCaptureItemオブジェクトが返されます。
フレームプールとセッションの作成: Direct3D11CaptureFramePool.Createでフレームを溜めるプールを作成し、CreateCaptureSessionでキャプチャセッションを開始します。 - フレームの取得: FrameArrivedイベントを購読するか、TryGetNextFrameメソッドを呼び出して、フレーム(Direct3D11CaptureFrame)を取得します。
- エンコード・保存: 取得したフレームデータを、動画ファイル(例:MP4)としてエンコードし保存します。この部分は別途、Media FoundationやFFmpeg等のライブラリを用いて実装します。
なお、Desktop Duplication APIを使う場合は、これよりも低レベルなDXGIの初期化や、フレーム取得時のメモリ管理などがさらに複雑になります。