【WPF】 続・スクリーンショットを撮り続けて動画に保存する
以前スクリーンショットを撮り続けて動画に保存する記事を書いたのですが、実はMicrosoft Expression Encoderを使えばやりたいことは出来たようです。 ni4muraano.hatenablog.com
Microsoft Expression Encoderはここからダウンロードできます。NuGetからもダウンロードできるのですが、動作させようとすると良く分からないエラーが出て結局動かすことができませんでした。結局自分は下記手順で動作させることができました。
プログラムについてですが、まずスクリーンショットを撮り続けて動画に保存する部分は以下になります(System.Drawing.Rectangleを使うためにSystem.Drawingを参照に追加してください)。
// usingに追加 using Microsoft.Expression.Encoder; using Microsoft.Expression.Encoder.ScreenCapture; // フィールドでキャプチャーを宣言 private readonly ScreenCaptureJob _capture = new ScreenCaptureJob(); // 設定、キャプチャー開始命令 _capture.CaptureRectangle = new System.Drawing.Rectangle(0, 0, 1200, 940); _capture.ScreenCaptureVideoProfile.FrameRate = 30; _capture.OutputScreenCaptureFileName = @"C:\Users\MyFolder\Videos\video.xesc"; _capture.Start();
そして、以下を実行することで保存した動画をWMVにエンコーディングできます。
// Stop, Disposeしないと動画が作成されない _capture.Stop(); _capture.Dispose(); // 作成した動画をエンコーディングする var media = new MediaItem(@"C:\Users\MyFolder\Videos\video.xesc"); ; var job = new Job(); job.MediaItems.Add(media); job.OutputDirectory = @"C:\Users\MyFolder\Videos"; job.Encode();