fc2ブログ
 

アマレコTV Ver3.00a 不具合修正版と再生音の話

 録画停止処理に不具合が見つかったのでその修正版です。

■アマレコTV Ver3.00a
【更新内容】
(1) タイマー録画時に時間になっても録画が停止しない。再生できないビデオファイルが出来上がるのを修正。
(2) HDDの残り容量が少なくなっても録画が停止しない。再生できないビデオファイルが出来上がるのを修正。
(3) ステータスバーに表示するHDDの空き容量の小数点以下が表示されないのを修正。
(4) ステータスモニターに録音デバイスの実際のアロケーターサイズの表示を追加。


ダウンロード
(Ver3.00に対する差分のみです、Ver3.00に上書きして使ってください。)


■アマレコTV、アマミキ!の再生音について
 アマレコTVとアマミキ!では再生音が遅延しないように極めて少ない再生バッファで音を再生するようになっています。そのため、一般的なアプリケーションより再生音がプチプチしたり、ゆがんだりと不安定になる場合があります。

 以前のバージョンでは遅延が増えてきたときに急激な補正をかけて短い時間で遅延から回復するように制御(もしくはデータを捨てる)していましたが、それだと、”音がゆがむ”(データを捨てる場合はプチプチする)のが目立つため、Ver3.00では急激な補正を辞め、長い時間をかけて少しずつ遅延から回復するように変えました。そのため、音のゆがみはほぼ知覚できないと思います。その代わり、遅延から復帰するのに数十秒かかる感じです(以前は数秒で遅延から回復)。

■反応時間と補正状況の表示
アマレコTVの場合はステータスモニター画面で確認できます。
913amarectv_monitor.png


「Audio」をOnにして、RendererのLatency部で確認できます。
914amarectv_status.png



アマミキ!の場合は設定画面の再生デバイスにある「反応時間を表示」をOnにします。
911amamix_settei.png


メイン画面の左下のステータス欄に反応時間が表示されます。
912amamix_status.png




 Lが反応時間、カッコ内は目標反応時間の設定値でそれぞれの単位はミリ秒です。反応時間は再生デバイスのバッファに溜まっているデータ量を示していて、40なら1000分の40秒ぶんの音データが再生デバイスのバッファに溜まっていることを表します。これは、向こう40ミリ秒は安定した再生ができるけど、40ミリ秒以内に次のデータをバッファにセットできないと音が途切れる(プチプチする)ことを意味しています。

 MFはマイクロフィードバックの略で、補正状況を表しています。0なら現在補正を行っていません。
マイナスの場合は遅延が許容量を超えたため再生速度をほんのわずかに速めて遅延を減らします(Lが少しづつ減るように制御)。
プラスの場合はバッファの溜まりが少なく音が途切れる可能性があるため、ほんのわずかに再生速度を遅くします(Lがすこしづつ増えるように制御)。
これらにより、反応時間が目標値に近づくように制御します。


■反応時間の設定
 アマレコTVの高度な設定にある「再生プロパティ」。アマミキ!の場合は、再生デバイスにある「レンダラープロパティ」を押すとオーディオレンダラーの設定画面が表示されます。
なお、ライブ機能がインストールされていないとこの設定画面は表示されないので先にライブ機能をインストールして下さい。

915audio_rend_prop.png



「目標反応時間」と「反応時間許容範囲」の2つをスライダーを動かして設定します。
初期値は目標反応時間40ms、反応時間許容範囲10msとなっています。

■設定例
目標反応時間:40ms
反応時間許容範囲:10ms
の場合は次のように動作します。
反応時間が30msから50msの間(許容範囲内=目標値の±10ms)にある場合はマイクロフィードバック制御をおこないません。
反応時間が30ms未満、または、50msを超える(間許容範囲を外れる)場合は反応時間が40ms(目標値)になるようにマイクロフィードバック制御を行います。


■実際の音遅延は?
今回は再生デバイスにおける遅延なので、実際はこれに録音デバイスの遅延とプラスαが加わります。録音デバイスの遅延は一概には言えませんが大抵アロケータサイズで決まります、また、プラスαは大体20ms位なので、
アロケーターサイズ:40ms
目標反応時間:40ms
プラスα:20ms
の場合、音の遅延は約100msとなります。
ちなみに、HDMIなどを使ってテレビやPCモニターのスピーカーから音を出すとテレビ、モニターによる遅延がさらに加わります。

実際の音遅延に関しては過去の記事を見てください。
アマレコTV・アマミキ!用 オーディオレンダラーフィルタ Ver2.30a ベータ版
アマレコ・オーディオ・レンダラー デバックログとビデオキャプチャ編


フィードバック制御の仕方が変更になっていますが、目標反応時間が同じなら実際の遅延も同じ結果となります。




アマレコTV Live アマミキ! Ver3.00 先行公開

 デスクトップキャプチャ機能を搭載したアマレコ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編

デスクトップキャプチャ機能を使う上で知ってると得するヒントと、FAQです。

1.ヒント
[ヒント]画像サイズと、フレームレートのリストをメモ帳で編集できる
 ライブ機能のインストール先にある設定ファイルをメモ帳で編集することができます。Windows7の場合は管理者権限等に注意したうえで編集して下さい。

画像サイズは「AmDesktopCaptureSize.ini」、フレームレートは「AmDesktopCaptureFps.ini」になります。
401fps_ini.png

402fps_memo.png

 フレームレートはfpsをそのまま記述するか、100ns(ナノ秒)単位でフレーム持続時間を記述します。333667は29.97fpsをより正確に記述する場合のフレーム持続時間です。


[ヒント]自動的にデスクトップコンポジション(Aero)を無効にする
 アマレコTVの高度な設定にある「デスクトップコンポジションを無効(Win7)」をOnにすると、アマレコTV起動時に自動的にデスクトップコンポジション(Aero)が無効になります。デスクトップキャプチャではデスクトップコンポジションを無効にした方が快適に録画することができます。
411composition_off.png


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


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

プリセットファイルが表示されるので、XPの場合は「desktopcapture_xp_preset_a.ini」を、Windows7の場合は「desktopcapture_win7_preset_a.ini」を選択します。
424preset_file.png 
なお、WindowsXPの場合はオーディオデバイスの設定が別途必要になります。


[ヒント]ツールバーから簡易メニューを表示できる
 こちらを見てください。


[ヒント]録画中にマウスカーソルのOn/Offを切り替えることができる
 マウスのOn/Offだけでなく、半透明や分割キャプチャ、キャプチャモードの変更なども録画中に変更できます。
詳しくはこちらを見てください。


[ヒント]録画範囲はキーボードのカーソルキーで微調整できる
 キーボードのカーソルキーで、取り込み枠の最後にクリックした部分を1画素単位で調整できます。


[ヒント]画像サイズを縦横半分にして録画できる
 アマレコTVの録画設定にある「ハーフサイズ」をOnにすると、画像サイズを縦横それぞれ半分に縮小して録画します。パソコンの性能が低い場合や、ファイルサイズを小さくしたい場合に効果的です。
431halfsize.png


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

こちらは取り込み範囲の変更が反映されない
441ss_amarectv.png


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


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


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


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

0.2fpsなら5秒に1枚、0.1なら10秒に1枚のペースで録画します。
451fps02.png



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


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


Q.フレームレートが30fps以上にならない
A.デスクトップコンポジション(Aero)が有効な時は、フレームレートが30fpsに制限されます。デスクトップコンポジション(Aero)を無効にするか、ウインドウキャプチャモードで録画して下さい。


Q.取り込み範囲が表示されない(取り込み枠が行方不明)
A.取り込み枠ボタンを押しても取り込み枠が表示されないときは、アマレコTVを右クリックして表示されるメニューから「取り込み範囲初期化」を選択すると、取り込み範囲を画面中央に初期化することができます。
501waku_init.png


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


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


アマレコTV デスクトップキャプチャ機能 簡易ヘルプ 使い方編

1.ライブ機能インストール
101live_setup.png
 デスクトップキャプチャ機能はDirect Showフィルターとして実装されているので、同梱されているlive_setup○○○.exeを実行してライブ機能をインストールして下さい。

2.アマレコTVの設定
 ライブ機能をインストールしたらアマレコTVの設定画面でデバイス設定を行います。設定が必要なのはデバイス設定のみなので、ほかの設定は必要ありません。
また、手動で設定することもできますが画面下にある「デスクトップキャプチャモード」ボタンを押せば自動で設定でき簡単です。

WindowsXPの設定例
104xp.png
WindowsXPではパソコンに搭載されているステレオミキサーでPC音を録音します。
オーディオキャプチャデバイスに関する設定は自動で行われないので、パソコンの環境に合わせて設定して下さい。


Windows7の設定例
103settei_button.png
Windows7ではアマステを使ってPC音を録音します。Windows7ではすべての項目が自動で設定されるので、「デスクトップキャプチャモード」を押すだけです。


ライブ機能がインストールされていなかったり、バージョンが古いと「デスクトップキャプチャモード」ボタンを押した際に次のメッセージが表示されます。
105error.png


アマステを使う場合に次のメッセージが表示されたらパソコン側の設定が必要です。詳しくはアマレコTVのヘルプのアマステのページを見てください。
107amaste_error.png


3.デスクトップキャプチャ機能の設定
 アマレコTV側の設定が終わると、アマレコTVにデスクトップの様子が映ります。また、どの部分をキャプチャしているかを青い枠(取り込み枠と呼びます)で表示します。
106desktopcapture.png


ツールバーの「取り込み範囲」ボタンを押すと、取り込み枠の表示/非表示を切り替えることができます。
111wakubutton.png 

取り込み枠の端をドラックするとキャプチャ範囲を広げたり、狭めたりできます。内側をドラックすると範囲を移動することができます。また、左上にあるウインドウ指定アイコンを目的のウインドウまでドラックすると簡単に範囲指定できます。詳しくはこちらを見てください。
331size.png


取り込み枠の上でマウスの右ボタンを押すとメニューが表示されますので、このメニューからデスクトップキャプチャに関する設定を行います。
300menu.png 

メニュー
項目録画中
変更
内容
キャプチャサイズ×録画範囲をリストの中から選択します。
リストの内容はメモ帳で編集可能です。
フレームレート×キャプチャ・フレームレートをリストの中から選択します。
リストの内容はメモ帳で編集可能です。

数値が大きいほど滑らかな動画を作ることができますが、その代り高性能なパソコンが必要となります。

基本的にはここで選択したフレームレートで録画されますが、最終的に作成される動画のフレームレートがどうなるかは録画設定との兼ね合いで決まります。
キャプモ:
デスクトップ・キャプチャ
キャプチャモードを「デスクトップ・キャプチャ」にします。

最も基本的なキャプチャモードでデスクトップ内の任意の領域を録画します。
デスクトップに写っているものがそのまま録画されます。

Windoes7でデスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。
キャプチャモードの詳細はこちらを見てください。
キャプモ:
ウインドウ指定
キャプチャモードを「ウインドウ指定」にします。

左上のウインドウ指定アイコンをドラックして選択したウインドウの位置と大きさを元にデスクトップ内の領域を録画します。

録画中にウインドウが移動した場合、自動的に録画範囲も移動するので、選択したウインドウを常に録画することができます。

ただし、ウインドウの大きさが変わった場合は録画中に反映されません。大きさの変更は次回の録画から反映されます。

デスクトップに写っているものがそのまま録画されます。
Windoes7でデスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。
キャプチャモードの詳細はこちらを見てください。
キャプモ:
ウインドウ・キャプチャ
キャプチャモードを「ウインドウ・キャプチャ」にします。

ウインドウ指定と同じように、指定したウインドウの位置と大きさが反映されます。
ウインドウ指定と違う点は指定したウインドウ以外の映像が映りこまないことと、ほかのウインドウに隠れて見えない部分も録画できる点です。

また、デスクトップコンポジション(Aero)が有効でも高フレームレートで録画することができます。
このモードはWindoes7でデスクトップコンポジション(Aero)が有効な場合にのみ選択可能です。

指定したウインドウのみ録画されます。
キャプチャモードの詳細はこちらを見てください。
マウスカーソル録画マウスカーソルの画像を動画に合成します。
半透明ウインドウ録画半透明ウインドウ(レイヤードウインドウ)の画像を動画に合成します。

なお、デスクトップコンポジション(Aero)が有効な場合は常に半透明ウインドウが合成されます。
タイムスタンプ録画動画の右上に録画時の日時を挿入します。
分割キャプチャゲーム画面の表示が乱れにくくなります。

デスクトップコンポジション(Aero)が有効な場合、この設定は自動的にOFFとなります。
常に手前に表示取り込み枠がほかのウインドウの下に隠れないようにします。
スナップ取り込み枠を画面端に移動させたとき、端にぴったり合うようにします。
ルーペ取り込み枠の四隅を拡大表示します。
微調整に使います。
取り込み枠の色を変更します。
青だと判りにくい場合に変更して下さい。
太さ取り込み枠の太さを変更します。
小さくて操作し辛い場合に変更して下さい。
録画開始録画を開始します。
スクリーンショット静止画を保存します。
SET×録画範囲(大きさ)の変更やフレームレートの変更を反映させます。

録画開始時は自動的に変更された設定が反映されますので、わざわざSETしなくても大丈夫です。
録画前にプレビューで確認したい場合に使ってください。
閉じる取り込み枠を非表示にします。

再度表示する場合はアマレコTVのツールバーボタンを押してください。


 録画範囲(位置)の変更や、キャプチャーモード、マウスカーソル録画など○となっている項目は録画中も設定を変更できます(すぐに反映されます)。
一方、録画範囲(大きさ)の変更、フレームレートの変更はできますが、反映されるのは次回の録画からとなります。

アマレコTVのツールバー部で右ボタンを押すと簡易メニューを表示します。マウスやタイムスタンプのOn/Off程度であれば、こちらの簡易メニューが便利です。
301kannimenu.png


4.録画
 範囲指定が終わったらアマレコTVのツールバーにある録画ボタンを押して、いつでも録画することができます。
112rec.png

録画の保存先や録画設定(画質など)はアマレコTVの基本的な使い方と共通ですのでアマレコTVのヘルプを見てください。


【録画時のエラー】
 パソコンの性能が低いと、録画開始時に次のメッセージが表示されます。
113rec_error.png

その場合は、アマレコTVのステータスバーに表示されているキャプチャフレームレートを確認し、
114cap_fps.png

デスクトップキャプチャのフレームレートを適切な値に設定しましょう。この場合は29.97fps付近が適切な値ですので、「29.97」または、「30.00」に設定します。
115settei_fps.png


 これはビデオキャプチャカードを使う場合にも当てはまります。キャプチャフレームレートが不安定だったり、設定値とあっていないと様々な誤動作に繋がりますので、カクカクするなどの場合は真っ先にこのキャプチャフレームレートが本来の値になっているか確認することと、設定値とあっているか確認するといいでしょう。
PCスペックが十分で、且つ各設定もあっているにもかかわらずキャプチャフレームレートが安定しない場合は、ビデオ信号やビデオキャプチャカードの問題です。アマレコTVなどのビデオキャプチャソフトでどうにかなるものではありません。



アマレコTV デスクトップキャプチャモードについて

■キャプチャモード
 キャプチャモードは3つあり、取り込み枠を右クリックして表示されるメニューから選択します。
capture_mode_menu.png 

もしくは、アマレコTVのツールバーを右クリックして表示される簡易メニューから選択することもできます。
301kannimenu.png

キャプモ内容
デスクトップ・キャプチャ最も基本的なキャプチャモードでデスクトップ内の任意の領域を録画します。
デスクトップに写っているものがそのまま録画されます。
デスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。
ウインドウ指定左上の□をドラックして選択したウインドウの位置と大きさを元にデスクトップを録画します。

録画中にウインドウが移動した場合、自動的に録画範囲も移動するので選択したウインドウを常に録画することができます。

ただし、ウインドウの大きさが変わった場合は録画中に反映されません。大きさの変更は次回の録画から反映されます。

デスクトップに写っているものがそのまま録画されます。
デスクトップコンポジション(Aero)が有効な場合は30fpsに制限されます。
ウインドウ・キャプチャウインドウ指定と同じように、指定したウインドウの位置と大きさが反映されます。
ウインドウ指定と違う点は指定したウインドウ以外の映像が映りこまないことと、ほかのウインドウに隠れて見えない部分も録画できる点です。

また、デスクトップコンポジション(Aero)が有効でも高フレームレートで録画することができ特徴があります。
このモードはWindoes7でデスクトップコンポジション(Aero)が有効な場合にのみ選択可能です。

指定したウインドウのみ録画されます。



 下図はそれぞれのモードによる違いです。
capture_mode.png 

 3つあるアプリケーションのうち、真ん中に位置する電卓を指定しています。
「デスクトップ・キャプチャ」と「ウインドウ指定」モードでは、手前に来るサウンドレコーダーや後ろのメモ帳なども含め見た目がそのまま録画されるのに対し、「ウインドウ・キャプチャ」モードでは電卓のみが録画されます。基本的にほかの画像が映りこむことはありません(下で説明するゴミとしてほかの画像が映ることがある)。


■ウインドウの指定方法
 取り込み枠の左上にあるウインドウ指定アイコンの上で左ボタンを押すとマウスカーソルが□に変わるので、そのまま録画したいウインドウまで持っていくとウインドウの大きさにぴったり合わせることができます。なお、ウインドウ指定アイコンが2つありますがどちらでも構いません。

ウインドウ指定アイコンの上で左ボタンを押して、ボタンを押したままマウスを動かして・・・
332drag.png

メモ帳の上で離すと、メモ帳のウインドウにぴったり合わせることができます。
333drop.png 

ウインドウ指定アイコンが2つありますが、左側はウインドウ全体を選択するときに使います。右側のアイコンはウインドウの内部(クライアント領域と言います)を選択するときに使います。ウインドウ内部にあるウインドウ(子ウインドウと言います)を指定する時は、どちらのアイコンでも構いません。


 ウインドウ指定アイコンを使ったあと、メニューから「キャプモ:ウインドウ指定」または「ウインドウ・キャプチャ」を選択するとウインドウ指定モードでの動作となります。ウインドウ指定モードでは指定したウインドウの位置が移動した場合に、録画範囲も自動的に移動して常に指定したウインドウを録画することができます。
 
ウインドウ指定アイコンを使ったあと、メニューから「キャプモ:ウインドウ指定」を選択すると・・・
334windowtarget_menu.png

取り込み枠の上部に指定したウインドウの情報が表示され、メモ帳の動きに合わせて録画範囲が自動的に調整されるようになります。
335windowtarget.png 

ウインドウ指定情報
項目内容
<ウインドウ>左のアイコンを使ってウインドウ全体が選択されています。
ウインドウの大きさに合わせて録画範囲が調整されます。
<クライアント>クライアント指定アイコンを使って、ウインドウの内部が選択されています。
ウインドウの大きさに合わせて録画範囲が調整されます。
<範囲>子ウインドウ(ウインドウ内部に配置されたウインドウ)、または任意の領域が選択されています。
録画範囲は自動で調整されません。位置のみ親ウインドウをもとに移動します。


「ウインドウ・キャプチャ」モードのゴミについて
 ウインドウキャプチャモードではDirectXなどによりレンダリングされる部分を正しくキャプチャできません。
そのため、ウインドウのタイトル部分などAeroガラスで処理される部分にはゴミが映ります(下図だと電卓のタイトルバー部や閉じるボタンが映っていません)。
gomi.png 

ウインドウキャプチャモードではウインドウの内部を範囲指定してご利用ください。



Aero有効時におけるデスクトップキャプチャについて

 Windows Vistaから導入されたデスクトップコンポジション(代表的な機能であるAeroが有名なため以下Aeroとします)ですが、アマレココ等のデスクトップキャプチャソフトとの相性が悪く、基本的にデスクトップキャプチャソフトの多くは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フレーム以上待つ→レンダリング結果取得→ひととおり終わってから次のリクエストのサイクルをマイペースでこなすためパフォーマンスが低下してしまいます。

Aero時のデスクトップキャプチャ概念図


アマレコTV Ver3.00 デスクトップキャプチャ機能

次のアマレコTVではデスクトップキャプチャ機能が追加されます。できるだけアマレココと
同様の内容になるようデザインしています。

デスクトップキャプチャ 


アマレココに無い新しい機能として、デスクトップコンポジション(以下Aero)が有効の場合に使える「ウィンドウキャプチャ」機能があります。
ウィンドウキャプチャではWEBブラウザなど指定したウインドウの映像だけをキャプチャすることができて、Aero有効のまま高fpsでの録画が可能となります。ちなみに、通常のデスクトップキャプチャだと60HzモニタでAero有効時、最高30fpsとなります。
youtube.png


ウインドウキャプチャなら他のウインドウの下に隠れている部分もキャプチャ可能。
ro.jpg 


ただし、DirectXなどのハードウエアによりレンダリングされた映像はウインドウキャプチャでは取り込めません。
(Aeroグラスなどは不可。ラグナロク・オンラインはなぜか快適にキャプチャできる)


アマレココとの違いをまとめると次のようになります。

項目アマレココアマレコTV内容
プリセット数44アマレコTVは入力端子で4つのプリセットを選択。
画像縮小アマレコTVはAMVビデオコーデックによるハーフサイズのみ。
分割キャプチャ
(分散処理)
画像を一度にキャプチャせず分割してキャプチャする機能。
ゲーム画面の表示が乱れにくくなる。アマレココでは分散処理と呼んでいた。
垂直同期待ち×分割キャプチャと同じ効果、分割キャプチャの効果の方が大きいので廃止。
レイヤードウインドウ録画アマレコTVはプリセット毎にOn/Off指定可。録画中もOn/Off変更可。
マウスカーソル録画アマレコTVはプリセット毎にOn/Off指定可。録画中もOn/Off変更可。
タイムスタンプ×
あんまり使う人がいないので廃止。
やっぱりアマレコTVでもタイムスタンプを挿入できるようにしました。
一時停止×あんまり使う人がいないので廃止。
録画ファイルサイズ100GB1,500GB 
オーディオコーデックPCMPCM、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以下の録画」を追加
「ネットワークドライブへの録画」を追加

公開までもうしばらくお待ちください。



デインターレースフィルタ FPS低下対応ベータ版

現在アマレコTVにデスクトップキャプチャ機能を実装していますが、PCゲームの画面が表示されているとアマレコTVのプレビューのFPSが極端に低下する(通常60fpsのところ8fpsくらいまで低下)現象が確認できたので、その対策をしたベータ版を公開します。「これで改善した」とか「改善しなかった」などありましたらブログのコメント欄にご報告いただけると助かります。

おそらくゲーム画面の表示処理とアマレコTVのレンダラーが同じタイミングで画像を表示しようとした場合にアマレコTVのプレビューのFPSが低下するものと思います。ゲームに限らず頻繁に画面にアクセスするアプリケーションが動作していると同様の現象になるかもしれません。
アマレコTV FAQ NLEを併用するとフレームレートがガタ落ちする」と言うのもこれで改善されるかもしれません。

このベータ版では処理がかち合って待たされる場合に表示処理を諦めていた(意図的にドロップさせていた)のをやめ、少し待ってから表示するようになります。ただし、デメリットとしてプレビューの遅延が増える可能性があるので注意して下さい。特にIntensity Proでプレビューの遅延が増えるかもしれません。

■設定
基本的に設定は必要ありませんが、ドロップ判定を行うかどうか設定できます。
ベータ版をいちど実行するとAmaRecTV.exeと同じフォルダにある設定ファイルAmDeinterlace.iniに次の項目が追加されます。
iDropInterval= 0
iDropAllocator= 0

ドロップ判定が2種類あって、それぞれ次のようになります。

項目初期値内容
iDropInterval0:無効
1:有効
0:無効キャプチャカードからデインターレースフィルターに送られてくるデータが一定間隔でない場合(インターバルが短い場合)に意図的にドロップする。
IntensityProは処理が滞るとバッファにデータを溜めこむ。そして、ため込まれたデータが一気に送られてくるが、レンダラーは一定間隔で表示するのでドロップさせないと表示は遅延する。
iDropAllocator0:無効
1:有効
0:無効デインターレースフィルターは画像を表示するのに必要なバッファ(アロケータ)をレンダラーから毎フレーム取得する。
その取得の際に待たされる場合があるので、あまりにも待たされるようなら何かしら負荷がかかっていると判断し、これ以上負荷を増やさないよう意図的にドロップさせレンダラーにデータを送らない。
PCゲームの表示と競合しFPSが低下する場合は、これを無効にすると効果あるかもしれません。


■ダウンロード
ダウンロード


デスクトップキャプチャ機能は8月中か9月に公開予定
ro.jpg




 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
07 | 2013/08 | 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ アマレコVR AMVコーデック Oculus アマレココ Quest アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト Unity プラグイン G2 AMV4 oculus ライブ機能 SC512 パススルー機能 デスクトップキャプチャ Passthrough AVX2 リモートソフト FAQ 質問コーナー アセット機能 ニコニコ動画 HDキャプチャ DirectShow 背景透過 120Hz Asset レゴ 遅延 解説動画 組み換え 可変再生速度 Meta LEGO MetaQuest VR GV-USB2 XL2420T 2 Pico4 倍速液晶 液晶モニター デインターレース ベンチマーク アマステ Intensity VRonVR AMV2MT MonsterX3A Pro PS4 VideoKeeper2 designs インストール Alternate AVX XCAPTURE-1 RDT233WX-Z GV-USB SD-USB2CAP4 31024 32ZP2 31006 ffmpeg 画像処理 60fps Robust Matting RGBキャプチャ Rift Video Shadow Play WindowsMR RYZEN UtVideo T2 HDMI NVEnc HDCP QSV LameACM OBS 音遅延 MP3 Haswell 電源オプション 音ズレ 録画 オーバーレイ XCapture-1 MonsterXU3.0R フィギュア ハイパースレッディングテクノロジー HT 31021 MPC 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 倍速補完処理 32ZP32 Kabelake リプレイ機能 モノステ 倍速駆動 ゲームスムーズモード LAVFilters SkyBox Hand Tracking 2.0 ファイルマネージャプラス pytorch APIパススルー機能 API python ハンドジェスチャー パカラーススルー機能 アルファ付き動画 アルファ付きVR動画 RVM クロマキー ダウンロード AssetBundle 物理処理 download passthrough 検証 Preferred Filter Tweaker SteamVR GPU使用率 可逆圧縮 SKnet GV-USB3 キャプチャカード VR動画 フレーム間圧縮 新プレイヤー機能 AMPlayer 60Hz 新アマレコVR 90Hz VRコントローラー MR Windows SSE 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面