アマレコTV デスクトップキャプチャに関するFAQ
アマレコTV Live アマミキ! Ver3.00c 公開
ブログの先行公開からバグフィックスと多少の機能が追加されています。
また、オンラインヘルプに「デスクトップキャプチャ機能」を追加しました。
【主な更新内容】
(1) デスクトップキャプチャ機能を追加しました。
(2) 録画保存先にドロップフレームが起こりやすいドライブ(NAS等のネットワークドライブなど)を指定してもドロップし難くなりました。
(3) アマレコTV、およびアマミキ!のプレビュー音が歪みにくくなりました。
(4) Windows7でPCの音を録音するアマステが6ch、8chなどの多チャンネルに対応しました。
(5) アマステがサンプリングレート96kHz以上で使えなかった不具合を修正しました。
(6) 入力端子が6個以上あるビデオキャプチャデバイスで様々なエラーが起こる不具合を修正しました。
(7) 動画が指定ファイルサイズを超えて分割された場合に、動作が止まる不具合を修正しました。
■アマレコTVのデスクトップキャプチャ機能について
デスクトップキャプチャソフトであるアマレココの機能をWindows7などのAeroに合わせて再構築したものとなります。
Aeroが有効な時でも快適に指定したウインドウのみをキャプチャすることができる「ウインドウ・キャプチャ」機能が新たに追加された他、アマレコTV Liveの豊富な機能と組み合わせて利用することができますので、例えば、PC用ゲームなどの実況動画の作成では、従来アマレココとアマミキ!の2つを組み合わせて行っていたものが、アマレコTVのデスクトップキャプチャ機能とオーディオミキサー機能を使ってアマレコTV単体で可能となります。
その他、リプレイ機能を使った簡易編集、映像解析。ライブ機能を使った外部エンコーダーによる録画および動画配信などアマレココではできなかったことが可能となりデスクトップキャプチャの可能性を広げます。
【オンラインヘルプ】アマレコTV デスクトップキャプチャ機能
【ブログ】アマレココとアマレコTVのデスクトップキャプチャ機能の違い
【ブログ】Aero有効時におけるデスクトップキャプチャについて
■先行公開からの更新内容
アマレコTV Ver3.00c
(1) レポートファイルの時間表記をhh:mm:ss.msとした。
アマレコTV Ver3.00b
(1) 6個以上の入力端子を持つキャプチャデバイスを使った場合にエラー落ちする不具合を修正。
(2) MP3形式で録画する際、ビットレートを指定できるようになった。
アマレコTV Ver3.00a
(1) タイマー録画時に時間になっても録画が停止しない。再生できないビデオファイルが出来上がるのを修正。
(2) HDDの残り容量が少なくなっても録画が停止しない。再生できないビデオファイルが出来上がるのを修正。
(3) ステータスバーに表示するHDDの空き容量の小数点以下が表示されないのを修正。
(4) ステータスモニターに録音デバイスの実際のアロケーターサイズの表示を追加。
■ダウンロード
ホームページからダウンロードして下さい。
アマレコTV Live アマミキ! Ver3.00 先行公開
主な変更点は、デスクトップキャプチャ機能を実装したことと、オーディオレンダラーの可変再生速度の再調整によりプレビュー音がゆがみにくくなったことです。
その他、1fps以下のフレームレートで録画できたり、ネットワークドライブなどに録画する場合もドロップフレームが生じにくくなるなど録画処理も改良されています。
また、アマステがマルチチャンネルに対応したので、4スピーカーや6スピーカー、8スピーカーのPC環境のまま利用可能となりました(録音時はステレオにダウンミックスされる)。96kHz以上で使えない不具合も修正されていますので、オーディオ周りの勝手も向上しています(アマミキ!のほうも同様に向上しています)。
■デスクトップキャプチャ簡易ヘルプ
現在Ver3.00に対応したヘルプがありません。ブログ内の記事を見てください。
■更新内容
【アマレコTV Ver3.00】
(1) デスクトップキャプチャ機能実装。
(2) 録画設定の録画フレームレートの初期値を999fpsに変更。また、0.2fps(5秒に一回画像を記録する)など1fps未満の設定も可能になりました。
(3) 録画保存先にドロップフレームが起こりやすいドライブ(NAS等のネットワークドライブなど)を指定してもドロップし難くなりました。
(4) 1fps以下で動作するビデオキャプチャデバイスに対応しました。
(5) 規定外(29.97とか30fpsなど以外)のフレームレートで動作するビデオキャプチャデバイスを使って録画した場合に、
作成されるビデオファイルのフレームレートができるだけ正確になるようになりました。
【例】 24.99fpsなどの場合、作成されるビデオファイルが24fpsになっていたのを24.990fpsとなるようにしました。
(6) 全般設定に「最小化でトレイに収納」オプションを追加。
(7) 録画設定に「ハーフサイズ」オプションを追加(画像サイズの調整(横16、縦8の倍数)も自動で行われる)。
(8) スクリーンショット設定に「クリップボードにコピー」オプションを追加。
(9) SC500系のビデオキャプチャカードの入力端子を選択できるようになりました。
(10) ホットキーの誤動作対策として、アマレコTV起動時に押されっぱなしのキーがあったら警告を表示するようになりました。
(11) ホットキーに「グローバル フック」オプションを追加。アマレコTV以外のアプリケーションにフォーカスがある場合にもホットキーが使えます。
(12) よく使うホットキーの初期値を変更(録画など、初期値でグローバールフックがONのホットキーは
誤動作防止のためCTRLを押しながら操作するようにしました)。
(13) ステータスモニターのオーディオレンダラー部にマイクロフィードバックによる補正状況を追加。
(14) アマレコTVのプレビュー音が歪みにくくなりました(オーディオレンダラーの可変再生速度による補正を、今までより緩やかに行うようにした)。
(15) アマステがマルチチャンネルに対応しました。(ステレオ以外の場合はステレオにダウンミックスして動作します)
(16) アマステが96kHz以上で使えなかった不具合を修正。
(17) 動画が分割された場合に、グラフが止まる不具合を修正。
【アマミキ! Ver1.05】
(1) アマミキ!の再生音がゆがみにくくなりました(オーディオレンダラーの可変再生速度による補正を、今までより緩やかに行うようにした)。
(2) オーディオレンダラーの反応時間と補正状況をステータスバーに表示するオプションを追加。
(3) アマミキ!を起動したままOSを終了した場合にボリューム設定なども保存するようになりました。
(4) アマステがマルチチャンネルに対応(ステレオ以外の場合はステレオにダウンミックスします)。
(5) アマステが96kHz以上で使えなかった不具合を修正。
(6) アマミキ!起動時にアマステのボリュームが常に100%になっていた(GUIの設定値が反映されない)のを修正。
■設定が初期化される項目
録画設定 | フレームレートの目安(旧:30、 新:999) |
ホットキー | 全般 |
オーディオレンダラー | 目標反応時間(旧:30、 新:40) 反応時間許容範囲(旧:5、 新:10) |
■アマレコTVの細かい(微妙な)変更点
(1) ホットキー押しっぱなしでスクリーンショットを撮った場合、ファイル名が連番になるように変更しました。
旧:時間が同じなら連番、時間が違ったら連番が途切れる。
新:ホットキーが押しっぱなしの場合、時間が違っても連番となります。
(2) 動画ファイルと静止画ファイルに付加する連番を"[番号]"から"#番号"に変更した。
(3) ほんのちょっとでもアマレコTVのウインドウが画面の外にはみ出していると、次回起動時にウインドウの位置が初期化されてしまうのを、
ほんのちょっとは許容するように変更しました。大きくはみ出していたら位置を初期化します。
(4) アマレコTV起動時に「Syntax error "auto_deint.ini" in 15 lines. 」等のエラーが出ないようになったかもしれません。
もともと私のところではエラーが出ないので改善されるかどうか不明です。
■ダウンロード
ダウンロード
アマレコTV デスクトップキャプチャ機能 簡易ヘルプ ヒントとFAQ編
1.ヒント
[ヒント]画像サイズと、フレームレートのリストをメモ帳で編集できる
ライブ機能のインストール先にある設定ファイルをメモ帳で編集することができます。Windows7の場合は管理者権限等に注意したうえで編集して下さい。
画像サイズは「AmDesktopCaptureSize.ini」、フレームレートは「AmDesktopCaptureFps.ini」になります。


フレームレートはfpsをそのまま記述するか、100ns(ナノ秒)単位でフレーム持続時間を記述します。333667は29.97fpsをより正確に記述する場合のフレーム持続時間です。
[ヒント]自動的にデスクトップコンポジション(Aero)を無効にする
アマレコTVの高度な設定にある「デスクトップコンポジションを無効(Win7)」をOnにすると、アマレコTV起動時に自動的にデスクトップコンポジション(Aero)が無効になります。デスクトップキャプチャではデスクトップコンポジションを無効にした方が快適に録画することができます。

[ヒント]デスクトップキャプチャの設定を4つまで管理できる
入力端子で「Preset-A」から「Preset-D」の4つを選択できます。それぞれ異なる録画範囲、フレームレートに設定して使い分けることができます。

アマレコTVのプリセットに登録すれば、ツールバーから簡単にデスクトップキャプチャの設定を切り替えることができます。
プリセット設定画面のメニューをクリックして表示されるメニューから「プリセット読込」を選択します。

プリセットファイルが表示されるので、XPの場合は「desktopcapture_xp_preset_a.ini」を、Windows7の場合は「desktopcapture_win7_preset_a.ini」を選択します。

なお、WindowsXPの場合はオーディオデバイスの設定が別途必要になります。
[ヒント]ツールバーから簡易メニューを表示できる
こちらを見てください。
[ヒント]録画中にマウスカーソルのOn/Offを切り替えることができる
マウスのOn/Offだけでなく、半透明や分割キャプチャ、キャプチャモードの変更なども録画中に変更できます。
詳しくはこちらを見てください。
[ヒント]録画範囲はキーボードのカーソルキーで微調整できる
キーボードのカーソルキーで、取り込み枠の最後にクリックした部分を1画素単位で調整できます。
[ヒント]画像サイズを縦横半分にして録画できる
アマレコTVの録画設定にある「ハーフサイズ」をOnにすると、画像サイズを縦横それぞれ半分に縮小して録画します。パソコンの性能が低い場合や、ファイルサイズを小さくしたい場合に効果的です。

[ヒント]スクリーンショットボタンの違い
アマレコTVのツールバーにあるスクリーンショットボタンと、取り込み枠にあるスクリーンショットボタンでは若干働きが異なります。アマレコTVの方は取り込み範囲(画像サイズ)が変更されていても反映されず、そのままスクリーンショットを作成するのに対し、取り込み枠の方は取り込み範囲の変更を反映してスクリーンショットを作成します。
なお、取り込み範囲が変更されていないときはどちらも同じ働きとなります。また、録画中は画像サイズの変更ができないため、取り込み枠のスクリーンショットボタンでも取り込み範囲の変更は反映されません。
こちらは取り込み範囲の変更が反映されない

取り込み枠の方のスクリーンショットボタンは取り込み範囲の変更が反映される

ホットキーもそれぞれ異なるホットキーが用意されています。

[ヒント]スクリーンショットの画像をクリップボードにコピーすることができる
アマレコTVのスクリーンショット設定画面にある「画像データをクリップボードにコピーする」をOnにすると、静止画をクリップボードにコピーして他のアプリケーションで扱うことができます。

[ヒント]1fps以下(5秒に1枚の画像とか)で録画することができる
アマレコTVの録画設定で「フレームレートの目安」に0.2など1以下の数値を直接入力すれば、そのフレームレートに近いfpsで録画することができます。
0.2fpsなら5秒に1枚、0.1なら10秒に1枚のペースで録画します。

2.FAQ
Q.動作開始時にエラーが出る
A.Windows7で次のエラーメッセージが表示される場合は、パソコン側のオーディオ設定が必要です。
詳細はアマステのヘルプを見てください。

Q.録画を開始すると警告メッセージが表示される
A.こちらを見てください。

Q.フレームレートが30fps以上にならない
A.デスクトップコンポジション(Aero)が有効な時は、フレームレートが30fpsに制限されます。デスクトップコンポジション(Aero)を無効にするか、ウインドウキャプチャモードで録画して下さい。
Q.取り込み範囲が表示されない(取り込み枠が行方不明)
A.取り込み枠ボタンを押しても取り込み枠が表示されないときは、アマレコTVを右クリックして表示されるメニューから「取り込み範囲初期化」を選択すると、取り込み範囲を画面中央に初期化することができます。

Q.ウインドウ・キャプチャモードだとウインドウのタイトルバーなどが正常にキャプチャできない
A.ウインドウ・キャプチャモードではDirectXなどによりレンダリングされる部分をキャプチャできません。
タイトル部分はAeroガラスによりDirectXの機能でレンダリングされているので、正常にキャプチャされません(ゴミが映る)。

Q.オーバーレイレンダラーは使えない場合がある
A.古いビデオカードの中には、オーバーレイレンダラーがRGBフォーマットに対応していないことがあります。
その場合に、アマレコTVの高度な設定で「オーバーレイのみを使う」を選択するとエラーとなります。「オーバーレイのみを使う」以外を選択して下さい。

アマレコTV デスクトップキャプチャ機能 簡易ヘルプ 使い方編
1.ライブ機能インストール
デスクトップキャプチャ機能はDirect Showフィルターとして実装されているので、同梱されているlive_setup○○○.exeを実行してライブ機能をインストールして下さい。
2.アマレコTVの設定
ライブ機能をインストールしたらアマレコTVの設定画面でデバイス設定を行います。設定が必要なのはデバイス設定のみなので、ほかの設定は必要ありません。
また、手動で設定することもできますが画面下にある「デスクトップキャプチャモード」ボタンを押せば自動で設定でき簡単です。
WindowsXPの設定例
WindowsXPではパソコンに搭載されているステレオミキサーでPC音を録音します。
オーディオキャプチャデバイスに関する設定は自動で行われないので、パソコンの環境に合わせて設定して下さい。
Windows7の設定例
Windows7ではアマステを使ってPC音を録音します。Windows7ではすべての項目が自動で設定されるので、「デスクトップキャプチャモード」を押すだけです。
ライブ機能がインストールされていなかったり、バージョンが古いと「デスクトップキャプチャモード」ボタンを押した際に次のメッセージが表示されます。
アマステを使う場合に次のメッセージが表示されたらパソコン側の設定が必要です。詳しくはアマレコTVのヘルプのアマステのページを見てください。
3.デスクトップキャプチャ機能の設定
アマレコTV側の設定が終わると、アマレコTVにデスクトップの様子が映ります。また、どの部分をキャプチャしているかを青い枠(取り込み枠と呼びます)で表示します。
ツールバーの「取り込み範囲」ボタンを押すと、取り込み枠の表示/非表示を切り替えることができます。
取り込み枠の端をドラックするとキャプチャ範囲を広げたり、狭めたりできます。内側をドラックすると範囲を移動することができます。また、左上にあるウインドウ指定アイコンを目的のウインドウまでドラックすると簡単に範囲指定できます。詳しくはこちらを見てください。
取り込み枠の上でマウスの右ボタンを押すとメニューが表示されますので、このメニューからデスクトップキャプチャに関する設定を行います。
項目 | 録画中 変更 | 内容 |
キャプチャサイズ | × | 録画範囲をリストの中から選択します。 リストの内容はメモ帳で編集可能です。 |
フレームレート | × | キャプチャ・フレームレートをリストの中から選択します。 リストの内容はメモ帳で編集可能です。 数値が大きいほど滑らかな動画を作ることができますが、その代り高性能なパソコンが必要となります。 基本的にはここで選択したフレームレートで録画されますが、最終的に作成される動画のフレームレートがどうなるかは録画設定との兼ね合いで決まります。 |
キャプモ: デスクトップ・キャプチャ | ○ | キャプチャモードを「デスクトップ・キャプチャ」にします。 最も基本的なキャプチャモードでデスクトップ内の任意の領域を録画します。 デスクトップに写っているものがそのまま録画されます。 Windoes7でデスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。 キャプチャモードの詳細はこちらを見てください。 |
キャプモ: ウインドウ指定 | ○ | キャプチャモードを「ウインドウ指定」にします。 左上のウインドウ指定アイコンをドラックして選択したウインドウの位置と大きさを元にデスクトップ内の領域を録画します。 録画中にウインドウが移動した場合、自動的に録画範囲も移動するので、選択したウインドウを常に録画することができます。 ただし、ウインドウの大きさが変わった場合は録画中に反映されません。大きさの変更は次回の録画から反映されます。 デスクトップに写っているものがそのまま録画されます。 Windoes7でデスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。 キャプチャモードの詳細はこちらを見てください。 |
キャプモ: ウインドウ・キャプチャ | ○ | キャプチャモードを「ウインドウ・キャプチャ」にします。 ウインドウ指定と同じように、指定したウインドウの位置と大きさが反映されます。 ウインドウ指定と違う点は指定したウインドウ以外の映像が映りこまないことと、ほかのウインドウに隠れて見えない部分も録画できる点です。 また、デスクトップコンポジション(Aero)が有効でも高フレームレートで録画することができます。 このモードはWindoes7でデスクトップコンポジション(Aero)が有効な場合にのみ選択可能です。 指定したウインドウのみ録画されます。 キャプチャモードの詳細はこちらを見てください。 |
マウスカーソル録画 | ○ | マウスカーソルの画像を動画に合成します。 |
半透明ウインドウ録画 | ○ | 半透明ウインドウ(レイヤードウインドウ)の画像を動画に合成します。 なお、デスクトップコンポジション(Aero)が有効な場合は常に半透明ウインドウが合成されます。 |
タイムスタンプ録画 | ○ | 動画の右上に録画時の日時を挿入します。 |
分割キャプチャ | ○ | ゲーム画面の表示が乱れにくくなります。 デスクトップコンポジション(Aero)が有効な場合、この設定は自動的にOFFとなります。 |
常に手前に表示 | - | 取り込み枠がほかのウインドウの下に隠れないようにします。 |
スナップ | - | 取り込み枠を画面端に移動させたとき、端にぴったり合うようにします。 |
ルーペ | - | 取り込み枠の四隅を拡大表示します。 微調整に使います。 |
色 | - | 取り込み枠の色を変更します。 青だと判りにくい場合に変更して下さい。 |
太さ | - | 取り込み枠の太さを変更します。 小さくて操作し辛い場合に変更して下さい。 |
録画開始 | - | 録画を開始します。 |
スクリーンショット | ○ | 静止画を保存します。 |
SET | × | 録画範囲(大きさ)の変更やフレームレートの変更を反映させます。 録画開始時は自動的に変更された設定が反映されますので、わざわざSETしなくても大丈夫です。 録画前にプレビューで確認したい場合に使ってください。 |
閉じる | ○ | 取り込み枠を非表示にします。 再度表示する場合はアマレコTVのツールバーボタンを押してください。 |
録画範囲(位置)の変更や、キャプチャーモード、マウスカーソル録画など○となっている項目は録画中も設定を変更できます(すぐに反映されます)。
一方、録画範囲(大きさ)の変更、フレームレートの変更はできますが、反映されるのは次回の録画からとなります。
アマレコTVのツールバー部で右ボタンを押すと簡易メニューを表示します。マウスやタイムスタンプのOn/Off程度であれば、こちらの簡易メニューが便利です。
4.録画
範囲指定が終わったらアマレコTVのツールバーにある録画ボタンを押して、いつでも録画することができます。
録画の保存先や録画設定(画質など)はアマレコTVの基本的な使い方と共通ですのでアマレコTVのヘルプを見てください。
【録画時のエラー】
パソコンの性能が低いと、録画開始時に次のメッセージが表示されます。
その場合は、アマレコTVのステータスバーに表示されているキャプチャフレームレートを確認し、
デスクトップキャプチャのフレームレートを適切な値に設定しましょう。この場合は29.97fps付近が適切な値ですので、「29.97」または、「30.00」に設定します。
これはビデオキャプチャカードを使う場合にも当てはまります。キャプチャフレームレートが不安定だったり、設定値とあっていないと様々な誤動作に繋がりますので、カクカクするなどの場合は真っ先にこのキャプチャフレームレートが本来の値になっているか確認することと、設定値とあっているか確認するといいでしょう。
PCスペックが十分で、且つ各設定もあっているにもかかわらずキャプチャフレームレートが安定しない場合は、ビデオ信号やビデオキャプチャカードの問題です。アマレコTVなどのビデオキャプチャソフトでどうにかなるものではありません。
アマレコTV デスクトップキャプチャモードについて
■キャプチャモード
キャプチャモードは3つあり、取り込み枠を右クリックして表示されるメニューから選択します。
もしくは、アマレコTVのツールバーを右クリックして表示される簡易メニューから選択することもできます。
キャプモ | 内容 |
デスクトップ・キャプチャ | 最も基本的なキャプチャモードでデスクトップ内の任意の領域を録画します。 デスクトップに写っているものがそのまま録画されます。 デスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。 |
ウインドウ指定 | 左上の□をドラックして選択したウインドウの位置と大きさを元にデスクトップを録画します。 録画中にウインドウが移動した場合、自動的に録画範囲も移動するので選択したウインドウを常に録画することができます。 ただし、ウインドウの大きさが変わった場合は録画中に反映されません。大きさの変更は次回の録画から反映されます。 デスクトップに写っているものがそのまま録画されます。 デスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。 |
ウインドウ・キャプチャ | ウインドウ指定と同じように、指定したウインドウの位置と大きさが反映されます。 ウインドウ指定と違う点は指定したウインドウ以外の映像が映りこまないことと、ほかのウインドウに隠れて見えない部分も録画できる点です。 また、デスクトップコンポジション(Aero)が有効でも高フレームレートで録画することができ特徴があります。 このモードはWindoes7でデスクトップコンポジション(Aero)が有効な場合にのみ選択可能です。 指定したウインドウのみ録画されます。 |
下図はそれぞれのモードによる違いです。
3つあるアプリケーションのうち、真ん中に位置する電卓を指定しています。
「デスクトップ・キャプチャ」と「ウインドウ指定」モードでは、手前に来るサウンドレコーダーや後ろのメモ帳なども含め見た目がそのまま録画されるのに対し、「ウインドウ・キャプチャ」モードでは電卓のみが録画されます。基本的にほかの画像が映りこむことはありません(下で説明するゴミとしてほかの画像が映ることがある)。
■ウインドウの指定方法
取り込み枠の左上にあるウインドウ指定アイコンの上で左ボタンを押すとマウスカーソルが□に変わるので、そのまま録画したいウインドウまで持っていくとウインドウの大きさにぴったり合わせることができます。なお、ウインドウ指定アイコンが2つありますがどちらでも構いません。
ウインドウ指定アイコンの上で左ボタンを押して、ボタンを押したままマウスを動かして・・・
メモ帳の上で離すと、メモ帳のウインドウにぴったり合わせることができます。
ウインドウ指定アイコンが2つありますが、左側はウインドウ全体を選択するときに使います。右側のアイコンはウインドウの内部(クライアント領域と言います)を選択するときに使います。ウインドウ内部にあるウインドウ(子ウインドウと言います)を指定する時は、どちらのアイコンでも構いません。
ウインドウ指定アイコンを使ったあと、メニューから「キャプモ:ウインドウ指定」または「ウインドウ・キャプチャ」を選択するとウインドウ指定モードでの動作となります。ウインドウ指定モードでは指定したウインドウの位置が移動した場合に、録画範囲も自動的に移動して常に指定したウインドウを録画することができます。
ウインドウ指定アイコンを使ったあと、メニューから「キャプモ:ウインドウ指定」を選択すると・・・
取り込み枠の上部に指定したウインドウの情報が表示され、メモ帳の動きに合わせて録画範囲が自動的に調整されるようになります。
項目 | 内容 |
<ウインドウ> | 左のアイコンを使ってウインドウ全体が選択されています。 ウインドウの大きさに合わせて録画範囲が調整されます。 |
<クライアント> | クライアント指定アイコンを使って、ウインドウの内部が選択されています。 ウインドウの大きさに合わせて録画範囲が調整されます。 |
<範囲> | 子ウインドウ(ウインドウ内部に配置されたウインドウ)、または任意の領域が選択されています。 録画範囲は自動で調整されません。位置のみ親ウインドウをもとに移動します。 |
■「ウインドウ・キャプチャ」モードのゴミについて
ウインドウキャプチャモードではDirectXなどによりレンダリングされる部分を正しくキャプチャできません。
そのため、ウインドウのタイトル部分などAeroガラスで処理される部分にはゴミが映ります(下図だと電卓のタイトルバー部や閉じるボタンが映っていません)。
ウインドウキャプチャモードではウインドウの内部を範囲指定してご利用ください。
Aero有効時におけるデスクトップキャプチャについて
しかし、Windows7になったからか、それとも最近のPCの性能の御蔭か今ではAeroが有効なままでも著しくパフォーマンスが低下することは無く、それなりのパフォーマンスでデスクトップキャプチャできるようです。今回私が調査した結果を書きます。なお、以下のドキュメントは私がとったデータから推測したもので完全に憶測です。事実と異なる可能性がある点にご注意下さい。
■Windows7におけるAero有効時のデスクトップキャプチャの特性
(1) 取得する画像サイズの大小にかかわらず2フレーム分待たされる。
例えばモニターのリフレッシュレートが60Hz(昨今の大抵の液晶モニターが60Hzです)の場合どんなに頑張っても秒間30コマまでしかキャプチャすることができません。キャプチャ範囲が320x240と小さくても、最大30fpsだし、1920x1080と大きくても最大30fpsが限界となります。ちなみに120Hzモニターであればキャプチャfpsの限界は60fpsとなります。リフレッシュレートの半分がキャプチャfpsの限界と考えればわかりやすいかと思います。
(2) 複数のアプリケーションがデスクトップキャプチャをする場合、協調的な動作となる。
例えば60Hzモニターの場合にアマレココを2つ同時に起動すると、それぞれ30fpsに設定しても個々のアマレココの動作は15fpsが限界となります。2つのアプリケーションの合計が30fpsを超えることはありません。
同様に3つのアマレココを同時に起動するとそれぞれ10fps前後での動作となります。
このようにAero有効時は他のアプリケーションの影響を受けてしまいますので、もし、キャプチャfpsが30で安定しない場合は他のアプリケーションがデスクトップにアクセスしていないか確認するといいでしょう(どうやってかくにんする?)。
(3) APIによる違い
基本的にはデスクトップのハンドルからデバイスコンテキストを取得して、そこからBitBlt()関数で画像をキャプチャします。
これはアマレココも今回のアマレコTVのデスクトップキャプチャ機能も同じです。
昨今では2D画像を扱うためのAPIが多々マイクロソフトから提供されており、その中にデスクトップ画像を取得できるものもあります。BitBlt()なんて古臭いので新しいAPIを一通り試してみましたが、いずれも期待外れに終わり、おそらく新しいAPIにしろBitBlt()にしろデスクトップから画像を取得する処理はOSにより一元管理されていて、その部分がネックなので改善の見込みはありませんでした。
■Windows8では・・・
この状況を打開すると思われるのがWindows8で導入されたDesktop Duplication APIです。
しかし、サンプルプログラムを作ってみましたが残念ながらWindows7では利用できませんでした。Windows8も持っていないので具体的にどのような動作になるのか確認も取れていません。将来的にはこれがWindows7で使えるようになってデスクトップキャプチャのこの閉塞感を打破してくれることを期待します。
■そして「ウィンドウ・キャプチャ」
結局アマレココから何も変わらないじゃんってことになりますが、ひとつ進展したのが「ウインドウ・キャプチャ」機能です。
ウインドウキャプチャはAeroが有効な場合にのみ利用可能で、指定したウインドウの画像のみをキャプチャします。指定したウインドウは他のウインドウの下に隠れていても隠れた部分を含めキャプチャすることができます。
一番の特徴は画像をデスクトップからキャプチャするのではなく、指定したアプリケーションのオフスクリーンメモリーからキャプチャすることでパフォーマンスを向上させることができることです(30fpsに制限されない)。
■「ウインドウ・キャプチャ」の概要
Aero有効時は各アプリケーションの画像を管理するためのオフスクリーンメモリーをOSが用意するらしく、デスクトップコンポジションはそのオフスクリーンの画像を元にDirectXの機能を使って半透明や拡大・縮小、3D変換といった処理を施し最終的にデスクトップ用の画像として合成(レンダリング)します。
デスクトップ・キャプチャはレンダリングされた後の画像をキャプチャするのに対し、ウインドウ・キャプチャはレンダリングの元となるオフスクリーンをキャプチャする点が異なります。
そして、その違いはパフォーマンスに大きく影響し、デスクトップ・キャプチャはレンダリングが終わるのを待つ必要があるのに対し、オフスクリーンキャプチャ(ウインドウ・キャプチャ)では基本的に待たされません(アプリケーション自体が画像を更新している間は待たされると思う)。なのでAeroが有効でもサクサク動き、高fpsで録画することが可能となります。
弱点は、レンダリングされる前の不完全な画像なので、DirectXなどの処理が反映されないことです。キャプション部などのAeroガラスであったり、DirectXを使ったゲーム、EVRなどを使って表示している動画などもキャプチャできません。
■「Aero有効時にデスクトップキャプチャのパフォーマンスが低下する」について
(1) BitBlt()などのデスクトップキャプチャ処理がアプリケーションで実行されると、OSはキャプチャ処理を奪い取る。
(AeroはDirectXのフルスクリーンモードで動作するためBitBlt()などでは正常にキャプチャできない、アマレココがフルスクリーンのゲームを正常にキャプチャできないのと同じ。その対策としてOSが特別にキャプチャ処理を代行してくれるものと思われる)
(2) OSのキャプチャ処理はデスクトップコンポジションに対しデスクトップ画像をキャプチャ用に欲しいとリクエストを出す。
(3) デスクトップコンポジションはリクエストがあると表示用とキャプチャ用の2つのデスクトップ画像をレンダリングする。
しかし、いまレンダリング中の処理には新しいリクエストは間に合わないので反映されない。
キャプチャ用の画像がレンダリングされるのは最短で次のフレームとなる。
(これが今のフレームと次のフレームの2フレーム分待たされる原因と思われる)
(4) 次のフレームがレンダリングされ、リクエストに応じキャプチャ用の画像がOSのキャプチャ処理へ渡される。
(5) OSのキャプチャ処理はデスクトップコンポジションから取得した画像をBitBlt()などを実行したアプリケーションへ送る。
ポイントはOSのリクエストが次のレンダリングでないと反映されないことと、OSのキャプチャ処理がシングルタスクで窓口が一つしかなく、複数のアプリケーションがBitBlt()を使うと行列ができてしまう点です。
行列ができる状況でも合理的にリクエストを発行することは無く、リクエスト→1フレーム以上待つ→レンダリング結果取得→ひととおり終わってから次のリクエストのサイクルをマイペースでこなすためパフォーマンスが低下してしまいます。

アマレコTV Ver3.00 デスクトップキャプチャ機能
次のアマレコTVではデスクトップキャプチャ機能が追加されます。できるだけアマレココと
同様の内容になるようデザインしています。
アマレココに無い新しい機能として、デスクトップコンポジション(以下Aero)が有効の場合に使える「ウィンドウキャプチャ」機能があります。
ウィンドウキャプチャではWEBブラウザなど指定したウインドウの映像だけをキャプチャすることができて、Aero有効のまま高fpsでの録画が可能となります。ちなみに、通常のデスクトップキャプチャだと60HzモニタでAero有効時、最高30fpsとなります。
ウインドウキャプチャなら他のウインドウの下に隠れている部分もキャプチャ可能。
ただし、DirectXなどのハードウエアによりレンダリングされた映像はウインドウキャプチャでは取り込めません。
(Aeroグラスなどは不可。ラグナロク・オンラインはなぜか快適にキャプチャできる)
アマレココとの違いをまとめると次のようになります。
項目 | アマレココ | アマレコTV | 内容 |
プリセット数 | 4 | 4 | アマレコTVは入力端子で4つのプリセットを選択。 |
画像縮小 | ○ | △ | アマレコTVはAMVビデオコーデックによるハーフサイズのみ。 |
分割キャプチャ (分散処理) | ○ | ○ | 画像を一度にキャプチャせず分割してキャプチャする機能。 ゲーム画面の表示が乱れにくくなる。アマレココでは分散処理と呼んでいた。 |
垂直同期待ち | ○ | × | 分割キャプチャと同じ効果、分割キャプチャの効果の方が大きいので廃止。 |
レイヤードウインドウ録画 | ○ | ○ | アマレコTVはプリセット毎にOn/Off指定可。録画中もOn/Off変更可。 |
マウスカーソル録画 | ○ | ○ | アマレコTVはプリセット毎にOn/Off指定可。録画中もOn/Off変更可。 |
タイムスタンプ | ○ | ||
一時停止 | ○ | × | あんまり使う人がいないので廃止。 |
録画ファイルサイズ | 100GB | 1,500GB | |
オーディオコーデック | PCM | PCM、MP3 | アマレコTVのMP3はあまり使えないので実質PCM一択。 |
ウインドウキャプチャ | × | ○ | Aero有効のまま快適にキャプチャする機能。 |
Win8デュプリケータ対応 | × | △ | Aero有効のまま快適にキャプチャする機能(Windows8専用)。 現状Windows7非対応のため未実装。 |
オーディオミキサー | △ | ○ | アマレココはアマミキ!と併用で可能。 アマレコTVは単体で可能。 |
リプレイ機能 | × | ○ | リングバッファに常時録画しておいて、気になるシーンがあったら ちょっとさかのぼって再生、動画保存する機能。コマ送り、スロー再生などの簡易編集機能あり。 |
ライブ機能 | × | ○ | 配信ソフトや外部エンコーダーに映像と音声を転送する機能。 ffmpegとの併用でMP4などによる録画が可能。 |
1fps以下の録画 | × | ○ | アマレコTVでは5秒に1枚や、10秒に1枚など1fps以下の録画が可能。 |
ネットワークドライブへの録画 | △ | ○ | アマレココはNASなどのネットワークドライブを保存先に指定して録画するとドロップフレームが増える。 アマレコTVはネットワークドライブでもドロップフレームが生じにくい。 |
追記2013.8.29
「タイムスタンプ」を修正
「1fps以下の録画」を追加
「ネットワークドライブへの録画」を追加
公開までもうしばらくお待ちください。