2012-01-18 12 views
0

私の要件は、オーディオと共にデスクトップアクティビティをムービーとして記録するアプリケーションを作成することです。検索後、Microsoft Expression Encoderを使用してデスクトップのアクティビティをムービーとして記録できますが、出力ファイルのサイズは非常に大きいことがわかりました。 10秒間のビデオでは、約30〜40 MBを占めていました。また、xesc形式を使用します。C#で記録されたムービーとしてデスクトップアクティビティをキャプチャする

他の無料のAPIがありますか?

+2

このスレッドをご覧ください - http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/0f5e085f-069c-4540-9ca7-2968d47a8d76 – adatapost

+1

ありがとうございます。私は与えられたURLから得たサンプルを作りました。しかし、この[リンク](http://mycomponent.blogspot.com/2009/04/capture-screen-activitiesvideo-using.html)は、私が今作業中のいくつかの追加情報を提供しています – VIJAY

答えて

3

あなたは式エンコーダトライ調整にあきらめる前に:品質を低下させる

ScreenCaptureJob.ScreenCaptureVideoProfile.Quality 

が大幅にファイルサイズを小さくすることができます。試してみて、結果があなたに受け入れられるものかどうかを見てください。

フレームレートを減らすことは実際には役に立たない。私はそれが固定されたフレームレートを強制するのではないかと推測しますが、デフォルトはアクティビティに基づいて可変フレームレートを使用することです。

.xescファイルが嫌いな場合は、キャプチャした後にビデオをトランスコードできます。

しかし、30秒間で40秒間は、まだの方法が多すぎます。私は10秒間(確かにそれほど大きくない、1366x768)のフルスクリーンビデオをデフォルトの品質で記録しました。それほど進んでいないのに、300Kがかかった。 (フルスクリーンアプリ間で絶えず切り替えている)多くのアクティビティでは、最大で1.5MB必要でした。

品質を低下させると、ファイルサイズが約50%削減されます。

フルスクリーンビデオを再生していて、それを記録しようとしていない限り、30〜40MBのようなものは表示されません。おそらくあなたはあなたのオーディオ設定を見なければならないでしょう。

+0

ありがとうございました。しかし、それはファイルのサイズを減らすことはありません、私は録音を開始する前に、次のコードを提供しています。 job.ScreenCaptureVideoProfile.Quality = 25 job.ScreenCaptureVideoProfile.FrameRate = 12 – VIJAY

+0

申し訳ありませんが、フレームレートを変更すると偽装されていました。私はまた、私が走ったいくつかのテストの結果で私の答えを更新しました。 – arx

0

nigetのScreenRecorderLibが良好です。

SharpAVIがディスク領域を過剰に占めています。

ScreenRecorderLibに注意する必要があります。最後にmp4ファイルを保存する時間が必要です。

プログラムが終了する前に終了しないようにしてください。

FileInfo.Lengthを使用して、ファイルサイズがそれ以上成長していないかどうかを確認します。保存が完了したかどうかが判断されます。

関連する問題