前提・実現したいこと
OpenCvSharp3-AnyCPUを使い、デスクトップを録画する機能を作りたいです。
発生している問題・エラーメッセージ
処理は正常に終了し動画ファイルは作成されるのですが
中身が空(毎回9.53 KBのファイル)になります。
また、その動画ファイルを再生してもエラーは出ませんが何も表示されません。
該当のソースコード
ASP.Net C#
1 protected void recBtn_Click(object sender, ImageClickEventArgs e) 2 { 3 string recFileName = @"E:\temp\test.avi"; 4 int width = 640; 5 int height = 480; 6 double frameRate = 30; 7 8 using (VideoWriter writer = new VideoWriter(recFileName, 0, frameRate, new OpenCvSharp.Size(width, height))) 9 { 10 int NumOfFrames = 200; 11 int countFrame = 0; 12 13 Bitmap bmp = new Bitmap(width, height); 14 Graphics g = Graphics.FromImage(bmp); 15 16 while (countFrame < NumOfFrames) 17 { 18 try 19 { 20 g.CopyFromScreen(new System.Drawing.Point(0, 0), new System.Drawing.Point(0, 0), bmp.Size); 21 Mat mat = bmp.ToMat(); 22 writer.Write(mat); 23 } 24 finally 25 { 26 g.Dispose(); 27 } 28 29 countFrame++; 30 } 31 } 32 } 33
試したこと
VideoWriterの第二引数を色々な値に変更し動かしてみましたがファイルサイズが変わるだけで中身は空でした。
Cv2.ImShow()を使用し、変数「mat」の中身を見ようとしましたが灰色の画面が表示されたまま固まってしまい
色々な方法で試したのですが変数「mat」の中身がどうなっているのか確認まで至っていません。
補足情報(FW/ツールのバージョンなど)
OpenCvSharp3-AnyCPU 4.0.0.20181129
Visual Studio 2017
ASP.Net C#
あなたの回答
tips
プレビュー