質問: 質問です。 現在、C++ Windsowsマルチメディア VisualStudio2015でデスクトップの映像を録画するアプリケーションを 作っております。 本格的なアプリケーションではなく ただ、デスクトップの映像を録画してAVIファイルとして出力するだけのアプリケーションです。 開発にはWindwosマルチメディアを採用したのですが いまいち、作業工程がハッキリとしておりません。 具体的に申しますと、まずデスクトップのWindowを指定して実際に録画を開始する 手法が分かりません。Windowsマルチメディアのリファレンスを読みましたが 録画を開始する手法が書かれていた関数は皆無でした。 どなたか、WindsowsマルチメディアでデスクトップのWindowを指定して 録画を開始する手法をご教示して頂けないでしょうか。 宜しくお願い致します。
回答: > > Windowsマルチメディアのリファレンスを読みましたが録画を開始する手法が書かれていた関数は皆無でした。 > > WindsowsマルチメディアでデスクトップのWindowを指定して録画を開始する手法をご教示して頂けないでしょうか。 > > > マルチメディアAPIには「ウインドウ画面の録画」といった機能は存在しません。主に音声ファイル(WAV形式, MIDI形式)や動画ファイル(AVI形式)の読込/書出機能、音声データや動画データの録画/再生機能を提供しています。 また、このマルチメディアAPIはかなり歴史の古い関数(Windows 3.1時代のVfW; Video for Windows)のため、今となっては様々な制限があります。代表的なところでは「2GBを超えるAVIファイルを正しく扱えない」「MPEG系の動画コーデックをまともに利用できない」などの制限があります。 AVIファイル出力用途であれば、下記の後継APIが提供されます。Microsoft的には後者を推しているようですが、普及度(情報量)はイマイチです。 * Direct Show * Media Foundation > > 本格的なアプリケーションではなく > > ただ、デスクトップの映像を録画してAVIファイルとして出力するだけのアプリケーションです。 > > > 余談ですが:あなたのやりたいことは比較的難易度が高いアプリケーションです。特にDirectXを利用するウインドウ(ゲームは一般にこちら)をキャプチャするのは、かなり特殊で複雑な処理が必要になるはずです。 実装方法に興味があれば Open Broadcaster Software ソースコードを参照ください。単に目的を達成したいだけなら、同ソフトウェアをそのまま使った方が良いと思います。