スーパーアマレココ

鋭意制作中のスーパーアマレココことアマレココのVer4について紹介します。

アマレココはアマレコTVのデスクトップキャプチャとして統合しましたので、もうアマレココを作ることは無いと考えていましたが、アマレコTV4で使ったDesktop Duplication API(Windows8以降でデスクトップ画像を取得するOSの機能)の感触がとてもよかった一方、アマレコTVの仕組みにより、足を引っ張られる場面(Direct Showを使わなければならなかったり、プレビュー機能など)もあり、もっと極まったものを作るべくアマレココ4の制作を開始しました。

なお、既にアマレコTV4がありますので、似たものを作っても不毛なのでアマレココ4は純粋にデスクトップを録画する初心者向けのアプリケーションとし、実況動画の作成で使うオーディオミキサーやプリセット機能など色々やりたい人はアマレコTVと言った棲み分けとなります。

アマレココ4とアマレコTV4の比較
 アプリ機能性能、その他
アマレココ4録画のみプレビューや録画中のCPU負荷が小さい
初心者向け
アマレコTV4多機能プレビューや録画中のCPU負荷が大きめ(※)
色々やりたい人向け
※ あくまでアマレココ4と比べての話

amarecco4.png


amarecco4settei.png


■主な特徴
(1) GPUによるプレビュー処理(CPUやシステムメモリを経由しない)
(2) GPUによるRGB・YUV変換(ビデオメモリからシステムメモリへ画像を転送する負荷を半減)
(3) GPUによるリサイズ(ハーフサイズ専用、ビデオメモリからシステムメモリへ画像を転送する負荷を1/4へ軽減)
(4) 機能は録画、スクリーンショットのみ(オーディオミキサーなし、プリセットなし)

基本的にはビデオメモリとシステムメモリの間で画像データを転送する処理(※)に多くのCPUリソースを食われますので、アマレココ4ではGPUを活用し転送処理を改善することで録画中のCPU負荷を軽減します。
また、プレビュー処理に関しては画像データが既にビデオメモリ上にありますので、CPUやシステムメモリを使った転送処理は行いません。

※ デスクトップキャプチャ処理はビデオメモリ上の画像をシステムメモリへ転送、アマレコTVのプレビュー処理はシステムメモリ上の画像をビデオメモリへ転送して表示


次回は録画中のCPU負荷がどの程度軽減されるか紹介します。
公開は10月を予定しています。


アマレコTV4 Live 正式版公開

アマレコTV4 Liveの正式版をホームページで公開しました。
ベータ版からの主な違いは次の通りです

AmaRecTV4 Ver4.01
・オンラインヘルプ
・デスクトップキャプチャの録画範囲が半分以上モニターからはみ出すと打開不能になるのを修正
・krkrbenchi でVIDEOINFOHEADER2を使うとアマレコTV4がエラー落ちするのを修正
(アマレコTV4はVIDEOINFOHEADER2非対応なので使えない エラー落ちしなくなっただけ)
・Windows7でビデオレンダラーが自動になっているとエラーになるのを修正
・録画詳細設定に「書込みバッファがいっぱいになったら録画を止める」を追加
・ベータ版の設定ファイルと互換性がありません。

FAQ
録音デバイスと再生デバイスのフォーマットが合わない場合について
・異なるフォーマットを再生できるかどうかは再生デバイス次第です。
サンプリングレートがあっていなくても再生できる場合もあります。
・オーディオレンダラーを排他モードに設定すれば再生デバイスのフォーマットは関係なく再生できるようです。
オンラインヘルプ


くるくるベンチ DirectShow 64bit版

くるくるベンチ for DirectShowの64bit版です。
アマレコTV4などの64bitのビデオキャプチャソフトで使えるビデオソースフィルターです。
krkrbenchi64.png

4K設定も追加してあります。
krkrsettei.png

注意
アマレコTV4でVIDEOINFOHEADER2を使うとエラー落ちします。


ダウンロード
くるくるベンチ for DirectShow Ver4.00


アマレコTV4 ベータ版公開

お待たせいたしました、アマレコTV4のベータ版を公開します。
オンラインヘルプはまだなので、自力でやりくりできる方が対象となります。


【主な内容】
(1) Windows8.1 64bit 完全対応
(2) 新録画エンジン (修復不要、再エンコード支援など)
(3) 新デスクトップキャプチャ (Desktop Duplication API)
(4) 新オーディオレンダラー (Core Audio API)
(5) Intensity Pro 4K RGBキャプチャ対応


【未実装】 (後々対応予定)
(1) オーディオミキサー
(2) リプレイ機能
(3) ライブ機能(完全版)
(4) プレビューの画面回転、ラインダブラー


【その他】
・ライブ機能は簡易版となります。
アマレコTV4 ライブ機能(簡易版)
・AMV4ビデオコーデックのライセンス登録がされていない場合は録画した映像にロゴが入ります。
・SSE4.1に対応したCPUが必須となります。
・対応OSはWindows8.1 64bitのみとなります。
・32bit版のOSでは実行できません。
・Windows7 使えないことは無いと思いますがデスクトップキャプチャやオーバーレイレンダラーなど使えない項目があります。
・Windows10 PCに詳しい人なら使えるんじゃないでしょうか。
Windows10について 
Windows10のWMPでAVIファイルが再生できない 
・オーディオキャプチャデバイスのサンプリングレートと再生デバイスのサンプリングレートが一致していないと音のプレビューができ無い場合があります。
・録画時にMP3で圧縮するには64bitに対応したMP3エンコーダーが必要です。入手困難なので実質MP3の圧縮はできないものと思ってください。
・今回のバージョンにはオーディオミキサーが含まれません。そのためアマレコTV4単体での実況動画の作成はできません。
・録画開始やスクリーンショットのホットキーの割り当てが変わりました(CTRL押しながらだとOSの機能と被るのでAltに変更しました)
・起動オプション追加(-path:、-nodate)


【廃止項目】
・HWデインターレース
・GV-USBおよびSC500に対する色補正
・CDU(Capture Device Utility)
・信号検出
・アロケーターチェック
・nullフレーム録画
・アナログチューナー機能


【改善されると思われる不具合】
・録画終了時の書込みエラー。
・アマレコTVを起動するとものすごい雑音が流れる、一度ミュートすると治る。
・Hキーでオンラインヘルプを表示すると、ヘルプを閉じても閉じてもヘルプが表示されてしまう。
・録画中だけプレビューがカクカクするまたは止まってしまう(改善されるか半信半疑)。
・設定画面等のボタンがはみ出してて押せない (GUIのレイアウトが崩れる)。


【起動オプション】
-path:"d:\movie"
  dドライブのmovieフォルダに動画を保存します。
  アマレコTVの保存先1の設定は無視されます。

-nodate
  ファイル名に日付をつけません。


【ダウンロード】
アマレコTV4 Ver4.00 ベータ版


不具合などありましたら、この記事のコメント欄に書き込んでいただけると助かります。


アマレコTV4 ライブ機能(簡易版)

今回のアマレコTV4のライブ機能は簡易版となります。
アマレコTV4のほかにアマレコTV Ver3.10のライブ機能(正確にはAmaRec Video CaptureフィルターとAmaRec Audio Captureフィルター)が必要となりますので、事前に「live_setup300.exe」をインストールしてください。

このブログを見ている人は既にライブ機能をインストールしていると思いますし、使い方もマレコTV Ver3.10と同じなので戸惑うことは無いと思います。
000live.png

アマレコTV Ver3.10に同梱されている「live_setup300.exe」が必要
100live_setup300.png


【簡易版の制限事項】
リサイズ
リサイズはできません。
キャプチャした画像サイズをそのまま扱います。
クロップ、アスペクト比の調整もないので配信ソフト側で調整してください。

ライン
映像、音声ともライン1に固定されます。

対応アプリケーション
アマレコTV4自体は64bitアプリケーションですが、アマレコTV Ver3.10に同梱されているライブ機能(のフィルター)は32bit版です。従って、映像や音声を受け取れるアプリケーションは32bitのアプリケーションのみとなります。



プログラムの方は一通り完成したのでベータ版を近々ブログで先行公開します。
その後は、ユーティリティソフトの公開などしつつ、不具合修正&オンラインヘルプを作成し、最終的にホームページにて正式版公開となります(2月下旬予定)。


アマレコTV 4 新オーディオレンダラー

音を再生(プレビュー)するオーディオレンダラーがアマレコTV 4で新しくないります。
今までのアマレコTVではWindows95のころから使われていたwaveOut APIを使って音を再生していましたが、新オーディオレンダラーではCore Audio APIに変わります。オーディオレンダラーに限らずアマレコTV 4では音に関する録音・再生処理のすべてをCore Audioで実装してあります。

Core Audio APIを使って音を再生することにより
・反応時間(レイテンシ、再生遅延)の軽減
・音質向上?
と言ったメリットがあるらしいです。

音質の向上については一般的に「排他モードを使うことでカーネルミキサーを通さずビットパーフェクトを達成できるので高音質になる」とされていますが、アマレコTV自体で扱う音の質がそもそもそこまで良くないと思いますので猫に小判と言った感じです。
反応時間の軽減については検証を行っていませんが、ステータスを見る限りではwaveOut APIより少ない反応時間でも安定した再生を行えますのでこの分部が新オーディオレンダラーの優位性となります。


オーディオレンダラーに関する項目はアマレコTVの高度な設定にあります。
config_2016021223052666c.png

今まで通り、再生デバイスと、配信デバイスの最大2系統でアマレコTVの音を再生することができます。

排他モードのチェックボックスをONにするとCore Audioの排他モードを使って再生します。
排他モードにするとOSのカーネルミキサーを通さないためその部分の音質低下を防げるとされています。
ただし、排他モードにするとアマレコTVの音しか再生できなくなります(他のアプリケーションの音は再生できなくなる)。
アマレコTVが再生デバイスを独占するため”排他モード”と言うことになります。
ちなみに、排他モードでない場合を”共有モード”と言い、様々なアプリケーションの音をカーネルミキサーがミキシングして一つの再生デバイスで再生するらしいです。

アロケータに関する設定はビデオキャプチャカードを使う場合ほぼ意味がない(変更できない)ので廃止にしようかと思いましたが、実験用に設定を残しました。通常OFFで使ってください。

再生プロパティ・配信プロパティ
各オーディオレンダラーの設定画面を表示します。
なお、各オーディオレンダラーの設定値は共通となるので別々の設定値にすることはできません。最後に設定した値が有効となります。


新オーディオレンダラーのプロパティ
renderer_20160212230525e39.png

【設定項目】
・バッファサイズ
100msから1000msの間で設定できます。通常200msから変更する必要はありません。
右側に表示されている「バッファ実サイズ」は実際にcore Audioが確保したバッファサイズです。設定通りに確保してくれない場合があるので確認用として表示しています。

・目標反応時間
最も重要な反応時間(レイテンシ、再生遅延)の設定です。反応時間を大きくすると遅延が増えますので基本的には小さく調整します。
ただし、反応時間が小さくなり過ぎるとプチプチノイズが生じますので、ノイズが目立たない範囲を見極めて設定してください。
実際の反応時間は画面下部に表示しています。上図だと目標が40msで現在36msの遅延(36ms分のデータが再生バッファに溜まっている)で音が再生されています。

・許容範囲1
・許容範囲2
目標値からどの範囲を許容するかの設定です。
反応時間が目標値とぴったり一致していなくても許容範囲に収まっているうちは補正を行いません。
許容範囲を超えた場合は目標値になるよう音データを補正します。この時(補正中は)音質が低下します。
補正中は画面下部の「補正回数」がどんどん増えていくので、今補正しているかどうかは補正回数で判断してください。

許容範囲1は狭い範囲の設定で補正もほとんどわからないように処理されます。
許容範囲2は広い範囲の設定で、許容範囲を超えた場合、かなり強引に補正しますので音質低下が目立ちます。その代り素早く目標値まで持っていけます。

・最低バッファリング
許容範囲の設定値によっては、許容範囲の下限が0となってしまったり、マイナスになることがあります。
その状態だと補正できないので、この値を下回った場合は僅かに補正して目標値まで持っていきます。

設定例1
range1.png

目標反応時間:40ms
許容範囲1:10ms
許容範囲2:40ms
最低バッファリング:10ms
の場合、反応時間が30msから50msの範囲にあるうちは補正を行いません。
29ms以下、もしくは、51ms以上になったら反応時間が40msとなるまでほんの少しずつ補正を行います。
もし、反応時間が81msを超えた場合は短時間で反応時間が40msとなるよう強引に補正します。
最低バッファリングは先に許容範囲1の下限が働くのでこの場合意味を成しません。


設定例2
range2.png

目標反応時間:10ms
許容範囲1:10ms
許容範囲2:40ms
最低バッファリング:5ms
の場合、許容範囲1と許容範囲2の下限がそれぞれ0以下なのでいずれも働きません。
その代りに反応時間が5msを下回った時に最低バッファリングが働き10msになるまでほんの少しずつ補正を行います。


【画面下部のステータス表示】
・反応時間
現在の反応時間です。この値は再生バッファに溜まっている(再生待ちの)データ量から算出しています。
最小値、最大値はそれぞれプロパティを表示してからの最小値と最大値を表示します。

・補正回数
補正を行った回数を表示します。補正を行っている最中はこの値がどんどん増えていきます。

・ドロップ
再生バッファにデータが溜まり過ぎてデータを捨てた回数を表示します。
通常0となります。もし、この値が1以上になるようならバッファサイズを増やす必要があるかもしれませんが、まともに音を再生できる環境ではない可能性が高いです。

・デバイスロスト
HDMIなどでリンクが切れて再生デバイスが使えなくなった場合にカウントされます。

・統計リセットボタン
最小値、最大値、各カウント値をリセットします。

・受け取ったサンプル
実際のアロケータサイズを表示します。

・デフォルトボタン
オーディオレンダラーの設定値を初期値に戻します。



2016.2.13追記
新オーディオレンダラーではキャプチャデバイス(キャプチャカード)のサンプリングレートと再生デバイスのサンプリングレートを一致させる必要があります。

一致しない場合は接続エラーとなります。
formaterror.png

OSの設定で再生デバイスのサンプリングレートを合わせて下さい。

もしくは、アマレコTVの高度な設定の「フォーマットエラーを無視する」をONにすると音のプレビューはできませんが、録画等そのほかの機能は使えるようになります。
through_error.png


アマレコTV 4 録画ステータス

録画中に表示するステータスの内容がすこし変わるのでその説明です。
400rec.png

その前に、アマレコTV 4の録画処理フローを説明します。

1.アマレコTV 4の録画処理フロー

flow.png

キャプチャカードは画像データをアロケータに入れてカスタムフィルターへ渡します(参照渡し)。

カスタムフィルターはアロケータの内容をレンダラーのビデオメモリへコピーします。
これがDirectShow Graphの基本的なプレビュー処理となります。
カスタムフィルターはこれに加え、録画中はアロケータの内容を(4)のリングバッファへコピーします。



既存のアマレコTVの場合はこの分部がリングバッファへのコピーではなく録画処理へアロケータそのものを渡してアロケータをロックするようになっています。
そして、(5)のエンコード処理が終わった後にアロケータのロックを解除します。
キャプチャカードはアロケータがロックされている間次の処理ができない場合がありますが、通常アロケータは複数あるので問題ありません。しかし、録画処理が滞ると複数あるアロケータすべてがロックされてしまいDirectShow Graphの処理も滞ることになります。



アマレコTVの録画処理(録画処理スレッド)はリングバッファにデータが溜まっていないか監視し、溜まっているデータがあったら音ズレ処理とエンコードを行い、結果を(6)の書込みバッファへ書き出します。

アマレコTVのファイル処理(ファイル処理スレッド)は書込みバッファを監視し、既定の量(書込みブロックサイズ)溜まっていたらまとめてファイルへ書き出します。

アマレコTV 4ではDirectShowスレッド、録画スレッド、ファイルスレッドの3つそれぞれがバッファを介して完全に独立しているので、たとえばファイル処理が一時的に滞ったとしても、各バッファが緩衝材となってキャプチャカードの処理やプレビューと言ったDirectShow Graphへ影響がないようになっています。

録画ステータスはこれらの処理の状況を把握することができますので、異常がある場合の原因特定や改善のヒントとなります。


2.ステータス
Drop
ドロップフレーム数と(+)ドロップ、(-)ドロップの3つを表示します。
(+)と(-)は既存のアマレコTVと同じで、音ズレ処理により調整されたフレーム数をカウントします。
一方、一番左に表示されるドロップフレーム数は既存のアマレコTVと内容が異なり、アマレコTV 4では(4)のリングバッファがいっぱいで書き込むことができなかったフレーム数をカウントします。
この値は通常0となるので、もし1以上になっていたら異常と思ってください。
(+)と(-)は必ずと言っていいほど生じますので1以上になっていても問題ありません。

HDD
1秒間にHDDへ書き込むデータ量(フローの7)と書込みバッファの使用率(フローの6)を表示します。
1秒間に書き込むデータ量は既存のアマレコTVと変更ありません。
書込みバッファの使用率については、既存のアマレコTVでは空き具合を表示していましたが、アマレコTV 4では使用率なので読み方が真逆になることに気をつけてください。
使用率については録画開始直後は0%から始まり、ファイル処理が滞ると徐々に数値が増えていきます。50%を超えるなど数値が大きいほど具合が悪いとなります。
これは、録画ステータス全体を通して「数値が大きくなる = 悪い状態」となるよう統一するための変更です。

CPU
これも既存のアマレコTVから内容が変わります。
今まではエンコード時間から算出していましたが、アマレコTV 4では総合的なCPU使用率(ほぼタスクマネージャのCPU使用率と同じ)を表示します。
これにはエンコード処理だけでなくアマレコTVの処理全体、さらには他のアプリケーションの処理まで加味されます。
また、次に説明するエンコードの処理時間が規定時間の50%を超える場合、このCPU使用率は999%と表示されます。

Enc
エンコードの処理時間(ビデオコーデックが1フレーム処理するのにかかる平均時間)とビデオコーデックの名前を表示します。
これらは既存のアマレコTVと同じ内容を表示します。
なお、規定時間は例えば60fpsで録画する場合、約16msです。エンコード処理時間が規定時間を超える場合は完全にPCのスペック不足です。
既定の処理時間の50%を超えた場合、CPUの使用率が999%となります。


3.分析方法
フローの下流から異常がないか確認します。

(1) まずは、HDDのステータスで書込みバッファの使用率が高くないか(50%を超えていたら危ない)確認します。
・使用率が高いなら2へ
・低く推移しているなら3へ

(2) 1秒間にHDDへ書き込むデータ量が妥当かどうか見ます。
書き込む量が多く(100MB/s程度)て使用率が高くなっている場合は純粋にスペック不足です。
・アマレコTVの高度な設定で書込みバッファのバッファサイズを大きくする
・ビデオコーデックの設定で圧縮効果の高いものを選択する
・ビデオコーデックそのものをもっと高圧縮なものへ替える
・HDDのスペックを上げる
・アマレコTVの録画設定のフレームレートの目安を下げる
500rec_fps.png

書き込む量が少ない(50MB/s程度)のに使用率が高いようならHDDが壊れているなどを疑う必要があります。
・別のドライブで録画する

まずは、書込みバッファの使用率が低くなるようにするにはどうしたら良いかを考えてください。
ここを改善できないとどうにもなりません。

(3) CPUステータスを確認する
・999%となっていたらCPUのスペック不足です。 4へ
・50%以下なら問題ありません。5へ

(4) CPUステータスが999%となっていたらCPUのスペック不足です。
・ビデオコーデックの設定でもっと高速な処理を選択する
・ビデオコーデックがマルチスレッドに対応しているならその設定を見直す
・ビデオコーデックそのものを高速なものに替える
・アマレコTVの録画設定のフレームレートの目安を下げる
・CPUのアップグレード

(5) Dropステータスを確認します。
Dropが0なら問題ありません。
Dropが1以上になるならどこか問題があります。もう一度1から確認してください。

(+)と(-)は環境にもよりますが1分に1くらいのカウントアップはしょうがないかも知れません。
ちなみにキャプチャするビデオ信号が60Hzで、ビデオキャプチャカードの設定が59.94fpsと設定に食い違いがあると、
約16秒毎に1フレーム誤差が生じるので、16秒ごとに(+)か(-)がカウントアップします。


4.高度な設定
録画フローに関する設定はアマレコTV 4の高度な設定にある録画詳細設定で行えます。
501adv.png
書込みバッファ:フロー6の書込みバッファの量を設定します。
書込みブロック:フロー7のまとめて書き出すデータサイズ 設定値が8MBなら書込みバッファに8MB以上データが溜まっていたら8MBずつファイルへ書き出します。
リングバッファサイズ:フロー4のリングバッファの量を設定します。




アマレコTV 4 Intensity Pro 4K RGBキャプチャ対応

現行のアマレコTVでIntensity Pro 4Kを使ってRGBキャプチャするとカラーフォーマットが対応せず録画できなかったり、プレビュー映像が上下反転するなどで上手く使えませんでした。

アマレコTV 4はIntensity Pro 4KのRGBキャプチャにも対応するので、YUVだけでなくRGBによる録画やプレビューが可能となります。
main_2016020519510358d.png



Intensity Pro 4Kではビデオソースフィルタ(アマレコTVで言うところのキャプチャデバイス)が2つ登録されて、使えるカラーフォーマットが多少異なります。
・Blackmagic WDM Capture   YUV10bit  YUV8bit  RGB10bit  RGB8bit
・Decklink Video/Audio capture  YUV10bit  YUV8bit  RGB10bit

Blackmagic WDM Capture
settei_wdm.png

Blackmagic WDM Captureの場合RGB32(RGB 8bit)またはR210(RGB 10bit)でキャプチャできます。ここではRGB32(RGB 8bit)の場合を説明します。
R210については後に紹介するDecklink Video Captureと(アマレコTV的には)同じです。
なお、YUV系に関しては現行のアマレコTVと同じですのでこの記事では省略します。

graph_wdm.png

具体的な動作としてはアルファチャネル付のARGB(内容はRGB32と同じ)としてアマレコTVのカスタムフィルタに渡されるので、サブタイプをRGB32へ書き換えることで対応しました。
フレームデータの内容はおそらく同じなのでヘッダ情報だけ書き換えます。余計な変換処理はアマレコTVの方では行っていません。



Decklink Video/Audio capture
settei_decklink.png

こちらはRGB32(RGB 8bit)が使えません。R210(RGB 10bit)専用となります。
YUV系に関しては現行のアマレコTVと同じですのでこの記事では省略します。


graph_decklink.png

R210(RGB 10bit)をAVI DecompressorがRGB32(RGB 8bit)へ変換して動作します。
従って、プレビューに表示される内容も、録画もRGB 8bitのクオリティとなります。


どっち使ったらいいの?
Decklink Video/Audio captureの方は確実に10bit-8bit変換が行われるのでビデオ信号が8bitだった場合、この処理が無駄と言えます。
同様のケースでは、Blackmagic WDM Captureを使った方が無駄がなく無難に見えますが、ビデオソースフィルタの内部で変換処理を行っているかもしれないので、結局何とも言えません。
どちらも同じように使えるので、どっちでもいいのかなと思います。
とはいえ、両方について説明したり、両方で動作確認するなどは面倒なので、特に根拠はないけど私が使うのはDecklink Video/Audio captureです。





アマレコTV 4 新デスクトップキャプチャ

今までアマレコTVやアマレココのデスクトップキャプチャ処理にはGDI (BitBltなどのAPI)と呼ばれるWindows95のころから使われていたOSの機能を利用してきましたが、Windows8でも依然としてGDIは使えるものの、GDIを使ったデスクトップキャプチャに相当厳しい制限が加わったため本格的なデスクトップキャプチャは無理(最大30fps)となってしまいました。
そこで登場したのが、Desktop Duplication API(以下デュプリケータ)という新しいOSの機能です。

デュプリケータはWindows8から追加されたデスクトップキャプチャ専用の機能で、アプリケーションはDirectXとデュプリケータを使ってデスクトップ画像を取得することができるようになりました。

アマレコTV 4のデスクトップキャプチャ処理はこのデュプリケータを使うのでWindows8のPCであればほとんどのPCで60fpsのデスクトップキャプチャが可能となります。
ただし、DirectXを使うのでビデオカード(VGA)の性能が重要で、古いCPUのオンボードVGAやノートPCのVGAでは30fps程度になってしまう場合があります。また、Windows7以前のOSでは使えません。

参考までにフルHDのキャプチャ条件を書くと
オンボードVGAの場合はi7-4790K+Intel® HD Graphics 4600、および最新のi3-6100T+ Intel® HD Graphics 530であれば1920x1080 60pを快適に録画できました。
ビデオカードを使う場合はGeForce GTX 650であれば1920x1080 60pを快適に録画できました。

オンボードVGAでフルHDともなると新しめのデスクトップPCでないと厳しい印象です。ビデオカードを使う場合はGTX650は高性能でもないし、最新でもないので、ほぼクリアできる条件だと思います。


使い方

使い方は今までと変わりません。デバイス設定でデスクトップキャプチャとアマステを選択します。
settei_20160204233209827.png


フレームレートなどの設定も今までと同様、取り込み枠を右クリックして表示されるメニューで行います。
menu.png


ツールバーの青い枠のアイコンを右クリックしてもメニューを表示することができます。
toolbar_20160204233208bd2.png



キャプチャモードについて
・デスクトップ・キャプチャ
  デュプリケータを使ったキャプチャ処理です。
  デスクトップの任意の領域を録画します。

・デスクトップ・ウインドウ指定
  デュプリケータを使ったキャプチャ処理です。
  指定したウインドウの位置や大きさに合わせてキャプチャ範囲が調整されます。
  デスクトップの様子がそのままキャプチャされますので他のウインドウも映ります。

・ウインドウ・キャプチャ
  GDIを使ったキャプチャ処理です。
  指定したウインドウのオフスクリーン画像をキャプチャします。
  他のウインドウは映りません。
  フレームレートが「Monitor Rate」の場合は60fpsで動作します。

フレームレートについて
フレームレート(fps)はモニターのリフレッシュレートに合わせて使うことになります。ぴったり合わせたい場合は「Monitor Rate」を選択します。
30fpsなどを選択するとモニターのリフレッシュレートを元に30fpsに近いfps(たとえば29.97など)の動画となります。
この辺りはアマレコTVの録画設定にあるフレームレートの目安と同じです。

キャプチャモードが「ウインドウキャプチャ」の場合はデュプリケータを使わないので(モニターデバイスに依存しないので)リフレッシュレートと言った概念はありません。fpsの設定がそのまま使われます。30fpsを選択するとモニターのリフレッシュレートが59.94だったとしても30fpsの動画となります。

目的のfpsがメニューにない場合は同梱されている「AmDesktopCaptureFps.ini」をメモ帳で開いて編集してください。
fps.png
fpsは小数点を含めて記述します。より正確に指定する場合は100ns単位のフレーム持続時間を記述します。

ダミーピクセルについて
ダミーピクセルはデュプリケータのキャプチャタイミングを作るために画面の端に透明のピクセルを表示し、モニターのリフレッシュレートに合わせて内容を常に更新します。
透明なので見た目の影響はありません。ダミーピクセルをOFFにするとガクガクと言った動きの悪い動画になる場合がありますので通常はダミーピクセルをONにしてください。

マルチモニターについて
デュプリケータはモニターデバイス単位の処理となりますので、マルチモニターの場合は範囲指定の対象となるモニターのみキャプチャされます。他のモニターにまたがる部分は真っ黒となります。

廃止項目
・タイムスタンプ


アマレコTV 4 再エンコード支援の効果

次回は新デスクトップキャプチャについて紹介しますと言いましたが、その前にAviUtl+x264guiなどで再エンコードする際の音声処理に対する高速エンコード支援の効果がどの程度あるのかテストしたので紹介します。

なお、今回のテストはあくまで一例です、使い方によって効果は変わってきますのでその点はご注意ください。
特に今回はHDDを使ってテストしましたが、SSDだともっと効果が薄くなると思われます。他にも画像サイズやフレームレート、PC性能によっても効果の割合が変わってきます。


1.テスト方法
アマレコTVで1時間程度録画したビデオファイルをAviUtlとx264guiを使って再エンコードするのにかかる時間を比較し、どの程度エンコード時間を短縮できるかみます。

2.主な条件
CPU:       Intel Core i7-4770 @ 3.40GHz
録画HDD:    SEAGATE 4TB SATA600 (ST4000DM000)
映像:       1280x720 YUY2 29.97fps AMV4 DY3
音声:       48000Hz 16bit 2ch PCM
エンコード設定: スクリーンショット参照
AviUtl入力プラグイン: AviUtl同梱のAVI/AVI2 File Reader

3.結果

(1) 現行のアマレコTV Ver3で録画した場合
amarectv v3 200ms

(2) アマレコTV 4を使ってオーディオブロックサイズをアマレコTV Ver3と同じ200msに設定した場合
amarectv v4 200ms

(3) アマレコTV 4を使ってオーディオブロックサイズを大きく(10,000ms)設定した場合
amarectv v4 10000ms

settei_2016020322445145f.png

 アマレコTVオーディオ
ブロックサイズ
1st pass2nd pass 映像
エンコード

エンコード
総エンコード
1Ver3200ms9分46秒19分17秒19分03秒4分37秒33分40秒
2Ver4200ms9分50秒18分57秒18分47秒4分56秒33分43秒
3Ver410,000ms9分34秒19分14秒18分48秒2分06秒30分54秒
※ 各数値はx264guiのコンソールに表示される値から読み取っています。
※ 映像エンコード時間は1stと2nd passの合計です。
※ 音エンコード時間は総エンコード時間から映像エンコード時間を引いた値です。厳密には音のエンコード時間のほかにmux処理など他の処理の時間も含まれますが、大半が音のエンコード時間です。


4.考察
映像のエンコード時間は3パターン全てにおいてほぼ同じ約19分となっています。

音のエンコード時間はオーディオブロックサイズが200msの場合はアマレコTVのバージョンと関係なく
ほぼ同じエンコード時間であることがわかります。

オーディオブロックサイズを50倍の10,000ms(約10秒)としオーディオデータをまとめてビデオファイルに保存するとエンコード時間が半分以下に短縮できています。
総エンコード時間でみても約2分40秒 (約8%)短縮できています。



5.注意点
・この効果はランダムアクセス性能の悪いHDDの特性を改善することにより得ています。
ランダムアクセス性能に優れたSSDを使って録画した場合の効果は薄くなると思われます。
・x264guiの設定により映像と音声を同時にエンコードした場合は効果が得られません。
・オーディオブロックサイズを大きくし過ぎると、対応できないアプリケーションがあるかもしれません。
・基本的にオーディオブロックサイズを大きくしてもデメリットは無いですが、効果はある程度で頭打ちになります。それ以上大きくするメリットもありませんので、目安としては10秒程度と思ってください。
・インターリーブの方が良いんじゃないの?イメージだけで語るとインターリーブも良い結果がでそうですが実態を考えると結局ランダムアクセスになってしまうケースがありそうなので何とも言えないです。


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

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

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



ホームページ
カテゴリ
最新コメント
カレンダー
08 | 2016/09 | 10
- - - - 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 -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ AMVコーデック アマミキ! アマレココ コーデック SC500 動画配信 ファンタジーリモート アマレコライト プラグイン AMV4 SC512 デスクトップキャプチャ AVX2 ライブ機能 FAQ 質問コーナー リモートソフト HDキャプチャ DirectShow ニコニコ動画 可変再生速度 解説動画 LEGO 4K 遅延 組み換え レゴ XL2420T 倍速液晶 120Hz GV-USB2 アマステ AMV2MT Intensity Pro ベンチマーク デインターレース PS4 液晶モニター GV-USB RGBキャプチャ SD-USB2CAP4 ffmpeg RDT233WX-Z 31024 XCAPTURE-1 31006 Alternate designs 32ZP2 VideoKeeper2 インストール イベント OBS NVEnc DirectShowFilter Livetube HDMI AtomでHDキャプチャ QSV シンクライアント 音ズレ 録画 オーバーレイ キャプチャーツール フィギュア 31021 MPC ハイパースレッディングテクノロジー HT HDCP MP3 倍速補完処理 ゲームスムーズモード モノステ リプレイ機能 ZP3 倍速駆動 32ZP32 額縁遅延 REGZA DC-HD1 IntensityPro LameACM 液晶テレビ AVX Haswell 音遅延 プレビュー SD-USB2CUP4 擬似NTSCキャプチャ MonsterXU3.0R 電源オプション 

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