fc2ブログ
 

アマレコ・オーディオ・レンダラー デバックログとビデオキャプチャ編

アマレコ・オーディオ・レンダラーやPCのオーディオデバイスに付いてもう少し詳しくお話します。
またビデオキャプチャカードに搭載されているオーディオデバイスについてもふれます。

アマレコ・オーディオ・レンダラーのデバックログを見ると録音デバイス、再生デバイスの挙動がある程度見えてきます。主に次のことがわかります。
・録音デバイスが何ミリ秒単位で録音処理しているか(実際のアロケータサイズ)
・録音デバイスが何ミリ秒間隔でデータを送ってくるか(インターバルタイム)
・再生デバイスの実再生レート(再生サンプリングレート)
・そのとき再生デバイスにバッファリングされているデータ量(Latency)
・アマレコ・オーディオ・レンダラーの可変再生速度により補正された様子


1.デバックログのとり方
AmaAudioRenderer.iniのiDebugLogを1にするとAmaRecTV.exeまたはAmaMix.exeと同じフォルダに
「AmAudioRenderer(日時)[デバイス名].txt」と言ったファイル名でデバックログが作成されます。

2.デバックログの見方


0:02:46.341s(41ms):Smp( recv=1920, write=1901( 99%+0), 48000Hz), Latency=29(20)ms, FALSE= 0, Pos=07981185, 48040, 0:#########

説明
項目説明
最初0:02:46.341s(41ms)データを記録した時間です。例ではプレビューを開始してから2分46秒341ミリ秒経過したときに録音デバイスからデータを受け取っています。
カッコ内は前のデータからの間隔(インターバルタイム)です。例では41ミリ秒間隔でデータを受け取っています。
SmpSmp( recv=1920, write=1901( 99%+0), 48000Hz)recvは録音デバイスから受け取ったデータのサンプル数(=アロケータサイズ)。例では1920サンプル(約40ミリ秒分の音声)のデータを受け取りました。
writeは再生デバイスの再生バッファへ書き出したデータのサンプル数。例では1901サンプル(約39.6ミリ秒分の音声)のデータを書き出しています。

カッコ内は可変再生速度による補正がどのように行われたかを記録しています。
100%なら補正を行っていません。99%なら1%再生時間が短くなるよう補正しています。
101%なら1%再生時間が長くなるよう補正しています。
パーセントの後の+0はさらに細かい制御(マイクロフィードバック制御)情報です。+1か-1になることがあります。
それぞれ1サンプル分再生時間を長く(短く)なるよう補正したことを表します。
最後に再生デバイスの再生レート(サンプリングレート)の実測値を10秒間の平均値で記録しています。

LatencyLatency=29(20)msその時点での反応時間です。再生バッファに溜まっているデータ量を1ミリ秒単位で記録しています。
カッコ内は設定値の目標反応時間です。この値に近づくよう可変再生速度が働きます。
例では目標が20ミリ秒に対し現在の反応速度が29ミリ秒と遅れているため、再生時間を短くし、反応時間が20ミリ秒に近づくよう可変再生速度による補正が行われています。
FALSEFALSE= 0可変再生速度により補正が行われた回数をカウントしています。
必ず必要な補正(プレビューの開始直後や途中で設定値が変更された場合)はカウントされません。
また、マイクロフィードバック制御の場合もカウントしません。
例では補正が行われていますが、直前に目標反応時間が30から20に変更された事による補正のためカウントされていません。
PosPos=07981185,48040,0再生デバイスのその時点での再生位置です。余り重要ではありません。
48040,0はLatencyの値を計算するのに使う補正値です。余り重要ではありません。
最後の##########補正の様子を#の個数で表示します。100%の時#を10個表示します。99%の時は9個と1%ごとに#が減ります。

 
3.デバックログの例

テスト環境
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
Softwareアマミキ! Ver1.01
AmAudioRenderer Ver2.30
Audio DeviceオンボードのLine入力、Line出力
Realtek High Definition Audio
Driver:6.0.1.6482
Capture CardGV-USB2 S端子Driver:1.1.0.93.5, 2010.06.28
SD-USB2CAP4 S端子Driver:5.2009.917.0
SC-500N1/DVI コンポーネント端子Driver:1.1.0.108.0, 2011.08.09

遅延の実測はステレオ(左右同音)の片チャンネルだけPCのLine入力に接続し、PCのLine出力端子の様子と、PCを通さなかったもう一方のチャンネルの波形を記録します。PCを通さなかった方を基準にしPCを通したチャネルがどれだけ遅れたかを観察します。

音遅延テスト図.PNG 




3.1.オンボードのオーディオデバイスのLine入力とLine出力

0:04:51.861s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14006198, 47999, 639:##########
0:04:51.892s(31ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14007678, 48000, 9:##########
0:04:51.932s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14009637, 48001, 8:##########
0:04:51.972s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14011559, 48002, 8:##########
0:04:52.013s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14013520, 48003, 7:##########
0:04:52.054s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14015479, 48004, 6:##########
0:04:52.095s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14017436, 48005, 5:##########
0:04:52.135s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14019357, 48006, 5:##########
0:04:52.176s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14021320, 48007, 5:##########
0:04:52.217s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14023280, 48008, 4:##########
0:04:52.257s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14025240, 48009, 3:##########
0:04:52.297s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14027158, 48010, 3:##########
0:04:52.338s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14029119, 48011, 2:##########
0:04:52.379s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14031080, 48012, 1:##########
0:04:52.420s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14033040, 48012, 0:##########
0:04:52.460s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14034958, 48012, 0:##########
0:04:52.501s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14036920, 47999, 639:##########
0:04:52.532s(31ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14038399, 48000, 9:##########
0:04:52.572s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14040358, 48001, 8:##########
0:04:52.612s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14042280, 48002, 8:##########
0:04:52.653s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14044240, 48003, 7:##########
0:04:52.694s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14046199, 48004, 6:##########
0:04:52.735s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14048159, 48005, 5:##########
0:04:52.775s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14050087, 48006, 5:##########
0:04:52.816s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14052046, 48007, 4:##########
0:04:52.857s(41ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=14054007, 48008, 4:##########

アロケータサイズが40msなので本来ならインターバルタイムは40msなりますが、デバックログを見ると所々31ms間隔になっているのがわかります。
これは、40ms間隔でデータを送るべきところを僅かに遅れ41ms間隔でデータが送られていて、その遅れが徐々に蓄積し10msの遅れに達したとき30ms間隔にすることでバランスをとるよう録音デバイスが動作しているためです。
長い目で見れば遅れた分を取り戻すように動作してるため問題になりませんが、遅延をできるだけ減らそうとした場合は厄介です。 結局この録音デバイスはアロケータサイズによる遅延(40ms)と動作タイミングのばらつきによる遅延(10ms)をあわせた50msの遅延が最低でも生じることになります。



3.2.キャプチャカードSC-500N1/DVI とオンボードLineアウト

0:01:01.171s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=02923357, 48000, 0:##########
0:01:01.211s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=02925278, 48000, 0:##########
0:01:01.251s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02927197, 48000, 0:##########
0:01:01.291s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=02929117, 48000, 0:##########
0:01:01.331s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=02931037, 48000, 0:##########
0:01:01.371s(40ms):Smp( recv=1920, write=1921(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=02932959, 48000, 0:##########
0:01:01.411s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02934878, 48000, 0:##########
0:01:01.451s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02936798, 48000, 0:##########
0:01:01.491s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02938718, 48000, 0:##########
0:01:01.531s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02940640, 48000, 0:##########
0:01:01.571s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02942557, 48000, 0:##########
0:01:01.611s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02944478, 48000, 0:##########
0:01:01.651s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02946398, 48000, 0:##########
0:01:01.691s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02948318, 48000, 0:##########
0:01:01.731s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02950237, 48000, 0:##########
0:01:01.771s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02952158, 48000, 0:##########
0:01:01.811s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02954078, 48000, 0:##########
0:01:01.851s(40ms):Smp( recv=1920, write=1920(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=02955999, 48000, 0:##########

アロケータサイズは40msで固定。
インターバルタイムも40msで安定しているのでまずまずの性能です。最後にまとめますが遅延の実測値は64msです。
一箇所マイクロフィードバック制御が働いています(オレンジ部)が、マイクロフィードバック制御はどのオーディオデバイスでも必ず発生するので問題ありません。


3.3.キャプチャカードGV-USB2とオンボードLineアウト

0:03:58.300s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11425086, 48005, 20:##########
0:03:58.360s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11427963, 48006, 10:##########
0:03:58.420s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11430844, 48006, 0:##########
0:03:58.450s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11432284, 48007, 20:##########
0:03:58.509s(59ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11435117, 48008, 11:##########
0:03:58.570s(61ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11438044, 48008, 0:##########
0:03:58.600s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11439484, 48009, 19:##########
0:03:58.659s(59ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11442318, 48010, 10:##########
0:03:58.720s(61ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11445242, 47999, 0:##########
0:03:58.750s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11446684, 48001, 20:##########
0:03:58.809s(59ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11449518, 48002, 11:##########
0:03:58.870s(61ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11452442, 48002, 0:##########
0:03:58.900s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11453885, 48003, 20:##########
0:03:58.960s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11456762, 48004, 10:##########
0:03:59.020s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11459644, 48004, 0:##########
0:03:59.050s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11461084, 48005, 20:##########
0:03:59.109s(59ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11463961, 48006, 10:##########
0:03:59.169s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11466844, 48006, 0:##########
0:03:59.199s(30ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11468284, 48007, 19:##########
0:03:59.259s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11471160, 48008, 10:##########
0:03:59.319s(60ms):Smp( recv=2400, write=2400(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=11474045, 47999, 0:##########

アロケータサイズは50msで固定。
インターバルタイムが30msから60msでばらつくため性能は悪いと言えます。
アロケータサイズが大きめなことと、インターバルタイムがばらつく分、遅延の実測値も悪く101msです。




3.4.ビデオキャプチャカードSD-USB2CUP4 とオンボードLineアウト

0:02:00.536s(32ms):Smp( recv=1536, write=1537(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05714798, 48000, 0:##########
0:02:00.568s(32ms):Smp( recv=1536, write=1537(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05716334, 48000, 0:##########
0:02:00.600s(32ms):Smp( recv=1536, write=1537(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05717869, 48000, 0:##########
0:02:00.632s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05719404, 48000, 0:##########
0:02:00.664s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05720940, 48000, 0:##########
0:02:00.696s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05722476, 48000, 0:##########
0:02:00.728s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05724012, 48000, 0:##########
0:02:00.760s(32ms):Smp( recv=1535, write=1536(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05725550, 48000, 0:##########
0:02:00.792s(32ms):Smp( recv=1535, write=1535(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05727084, 48000, 0:##########
0:02:00.824s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05728620, 48000, 0:##########
0:02:00.856s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05730157, 48000, 0:##########
0:02:00.888s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05731693, 48000, 0:##########
0:02:00.920s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05733229, 48000, 0:##########
0:02:00.952s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05734764, 48000, 0:##########
0:02:00.984s(32ms):Smp( recv=1536, write=1537(100%+1), 48000Hz), Latency= 9(10)ms, FALSE= 0, Pos=05736302, 48000, 0:##########
0:02:01.016s(32ms):Smp( recv=1536, write=1536(100%+0), 48000Hz), Latency=10(10)ms, FALSE= 0, Pos=05737837, 48000, 0:##########

アロケータサイズは約32msで固定。
良く見ると受け取るサンプル数(recv)が1536の場合と1535の場合があります。恐らく端数の帳尻を合わせるためと思われますが、これは問題ありません。
インターバルタイムも安定していて、アロケータサイズも小さ目なため遅延の実測値は58msと良好です。
ただ、何で32msなんだろうという疑問はあります。33msなら映像とあわせる為かなと思いますが、小さくできるならもっと小さくてもいいのに・・・


4.まとめ
前回のテストでオンボードのアロケータサイズを20ms以下にしても頭打ちされたと書きましたが、 アマレコ・オーディオ・レンダラーの設定の最小バッファサイズ(iMinimumBuffSizeMS)が20msなので、その部分で頭打ちされていました。
iMinimumBuffSizeMSを0とすることで20ms以下のアロケータサイズのテストができますのでその部分を再テストしました。 その結果も合わせて最後にデータをまとめて記します。


AmAudioRenderer Ver2.30 遅延テスト
録音デバイス設定遅延
実測値
補足
アロケータ
サイズ
iLatency
Lineイン40ms40ms104ms 
Lineイン40ms30ms 94ms初期値
Lineイン40ms20ms84ms 
Lineイン40ms10ms74ms 
     
Lineイン30ms40ms88ms 
Lineイン20ms40ms78ms 
Lineイン10ms40ms78ms頭打ちされている
Lineイン 10ms40ms 68ms iMinimumBuffSizeMS=0 
     
Lineイン20ms20ms58msこのあたりが妥当
Lineイン10ms10ms54ms頭打ちされている 
Lineイン10ms10ms44msiMinimumBuffSizeMS=0
     
SC-500N1/DVI40ms10ms64msアロケータサイズは40msで固定
GV-USB250ms10ms101msアロケータサイズは50msで固定
SD-USB2CUP432ms10ms58msアロケータサイズは32msで固定

※ 遅延の実測値には±5ms程度の誤差があります。



オンボードLineインのアロケータ40ms、iLatency10msとキャプチャカードのSC500を比べるとアロケータサイズ、Latencyが同じなので遅延の実測値も近くなるはずですが、10msオンボードのほうが遅れています。これはデバックログのところでお話した録音デバイスのインターバルタイムが不安定なためです。同様にLineインのほかの実測値も10ms余計に多くなっているものと推測できます。もし、インターバルタイムが安定していたらアロケータ10ms、iLatency10msで実測遅延34msとなるのかもしれません。

一方ビデオキャプチャカードの方はアロケータサイズの変更ができないためこれ以上遅延を減らすことができません。もう一歩踏み込んでアロケータサイズの変更に対応してもらえると良いなと思います。



アマレコTV・アマミキ!用 オーディオレンダラーフィルタ Ver2.30a ベータ版

アマレコTV Ver2.20cとアマミキ! Ver1.01用のオーディオレンダラーフィルターです。
アマレコTVやアマミキ!のプレビュー音の遅延やプチプチノイズを軽減します。

■使い方
アマレコTV Ver2.20cのAmAudioRenderer.axファイルを差し替えてください。
※ 現在はベータ版です多少の問題は自力で対処できる方のみご利用下さい。

Ver2.30 ダウンロード
Ver2.30a ダウンロード



■更新内容
Ver2.30
(1) 可変再生速度の精度が向上しました。
  ・処理単位が約20msから約1msになりました。
  ・1msより小さいマイクロフィードバック制御を追加しました。
  ・動作タイミングが不安定な(一定のリズムでデータを送ってきてくれない)録音デバイスに対応しました。
(2) 反応速度(Latency)を設定できるようになりました。
(3) Bluetooth上のオーディオデバイスなど利用中にオーディオデバイスが無効になるケースに対応しました。
(4) IOレベルの異常など、明らかに再生レートが合わない状態が続いた場合は再生デバイスをリセットするようにしました。

 Ver2.30a
 (1) Bluetooth等のオーディオデバイスが利用できなくなった際に、エラーメッセージ「waveOutWrite : MMSYSERR_NODRIVER」が表示されるようになっていたのを修正。


■設定方法
AmAudioRenderer.axを差し替えた後一度アマレコTVまたはアマミキ!を実行してプレビュー(音を出す)するとAmaAudioRenderer.ini という設定ファイルが作成されます。アマレコTVまたはアマミキ!を終了してから設定ファイルをメモ帳で開いて内容を編集してください。


設定項目
項目名初期値設定範囲内容
pcDeviceName--音を再生するデバイス名です。
変更する必要はありません。
iMinimumBuffSizeMS2020アロケーターサイズが非常に小さいと困るのでこの値より小さくならないようにします。
変更する必要はありません。
iBuffNum1010再生バッファの個数を設定します。
多いほどドロップしにくくなりますが、通常変更する必要はありません。
iLatency3010-100目標反応速度を1000分の1秒単位で設定します。
値を小さくするほど遅延が減り、大きくするほどプチプチしにくくなります。
iLatencyBandWidth55-20反応速度の許容範囲を1000分の1秒単位で設定します。
値を小さくすると敏感に制御されます。大きくすると鈍感(余り補正されない、補正されるときは大きく補正されるので目立ちます)になります。
iDebugLog00-11にするとデバック用のログファイルを作成します。
反応速度の様子や補正がどのように行われたか確認できます。


iLatencyの値を変更して遅延を減らしたりプチプチ(ノイズ)を軽減するように調整してください。
iLatencyを小さくするほど遅延は減りますが、利用する再生オーディオデバイスにより限界値(それ以上iLatencyを下げても遅延は減らない)が ありますので余り下げすぎないようにしましょう。設定例を後に書きますので参考にして下さい。
逆にiLatencyを大きくするとノイズを軽減できます。ノイズがするな~と思ったらちょっとずつ(10程度ずつ)iLatencyをあげてみてください。
基本的にはスピーカーやヘッドホンで音を聴きながら耳を頼りに調整して下さい。
アマレコTVやアマミキ!の高度な設定にあるアロケーターサイズも影響しますのでアロケータサイズを40ms(初期値)にしてからiLatencyの調整をして下さい。


■設定例と遅延の実測結果
Windows7のPCのオンボードオーディオデバイスを使って、アロケータサイズとiLatencyの設定内容によりLine入力 - Line出力間の遅延がどうなるかテストしました。

テストはステレオ(左右同音)の片チャンネルだけPC2のLine入力に接続し、PC2のLine出力端子の様子と、PC2を通さなかったもう一方のチャンネルの波形を記録します。PC2を通さなかった方を基準にしPC2を通したチャネルがどれだけ遅れたかを観察します。
音遅延テスト図.PNG


遅延の実測値には以下の処理遅延が含まれます。
・録音デバイスの処理遅延(基本的にはアロケータサイズ相当)
・アマミキ!、AmAudioRendererの処理遅延(基本的には0)
・再生デバイスの処理遅延(基本的にはiLatency相当)
・OSの処理遅延、カーネルミキサー、リサンプラーなど(不明、20ms程度?)


なおテストするたびに5ms程度のばらつきが生じますので、結果(遅延実測値)には±5ms程度の誤差があるとこをご了承ください。


テスト環境
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
Softwareアマミキ! Ver1.01
AmAudioRenderer Ver2.30, AmAudioRenderer Ver1.15
Audio DeviceオンボードのLine入力、Line出力
Realtek High Definition Audio
Driver:6.0.1.6482


最初にアロケータサイズを40msに固定し徐々にiLatencyを下げていった場合。
次にiLatencyを40msに固定しアロケータサイズを下げていった場合。
最後に両方下げた場合となっています。

AmAudioRenderer Ver2.30
設定遅延
実測値
補足
アロケータ
サイズ
iLatency
40ms40ms104ms 
40ms30ms 94ms初期値
40ms20ms84ms 
40ms10ms74ms 
    
30ms40ms88ms 
20ms40ms78ms 
10ms40ms78ms頭打ちされている
    
20ms20ms58msこのあたりが妥当
10ms10ms54ms頭打ちされている 

※ 遅延の実測値には±5ms程度の誤差があります。


AmAudioRenderer Ver1.15
設定遅延
実測値
補足
アロケータ
サイズ
iLatency
16ms-63msこれ以上アロケータサイズを下げるとプチプチします。

※ 遅延の実測値には±5ms程度の誤差があります。



Windows7の「聴く」機能
設定遅延
実測値
補足
アロケータ
サイズ
iLatency
--98msOSのライン入力のプロパティから「このデバイスを聴く」オプションをON

※ 遅延の実測値には±5ms程度の誤差があります。


■注意事項
録音デバイスがビデオキャプチャカードの場合、製品の殆どがアロケータサイズの変更に対応していません。
例えばマイコンソフトのSC-500N1/DVIの場合、現状アロケータサイズは40msで固定です。




アマレコTV用 デインターレースフィルタ Ver2.20e ベータ版

アマレコTV Ver2.20c用のデインターレースフィルタです。
GV-USB2やSD-USB2CAP4などのビデオキャプチャカードをWindows7のEVRで使う場合にプレビューの表示を滑らかにします。 また、Intensity Proなどによりプログレッシブでキャプチャした場合も滑らかに表示できるようにしました。


■使い方
アマレコTV Ver2.20cのAmDeinterlace.axファイルを差し替えてください。
※ 現在はベータ版です多少の問題は自力で対処できる方のみご利用下さい。

ダウンロード


■設定
AmDeinterlace.axと同じフォルダにある「AmDeinterlace.ini」をメモ帳で開いて「iWaitDeliver」を書き換えます。設定ファイルや設定項目が見当たらないときは一度アマレコTVを実行(プレビュー)すれば作成されます。

設定項目内容
iWaitDeliver0タイミング調整を行いません。
1プレビューの条件に合わせてタイミング調整を行います。
アマレコTVのプレビュー設定でソフトウエアデインターレースを使う場合にタイミング調整を行います。デインターレースを行わなかったり、ハードウエアデインターレースを使う場合はタイミング調整を行いません。
この設定が初期値です。

AmDeinterlac.ax Ver2.30からプレビューの条件ではなく実際の動作を監視して不安定だった場合にタイミング調製を行うようにしました。大抵の場合はiWaitDeliver=1で使ってください。
2強制的にタイミング調整を行います。


■テスト

テスト環境
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
SoftwareアマレコTV Ver2.20c
AmDeinterlace.ax Ver2.20e
Capture CardIntensity Pro HDMIDriver:3.2
SC-500N1/DVI HDMIDriver:1.1.0.108.0, 2011.08.09
Video Source別PCのHDMI出力 1280x720 60p

Intensity Pro
 0:00:00.5078891s(14.9870ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.5228895s(15.0004ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.5378928s(15.0033ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.5528695s(14.9767ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.5678494s(14.9799ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.5828785s(15.0291ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.6129260s(30.0475ms), Idle=29ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
 0:00:00.6279073s(14.9813ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.6428936s(14.9863ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.6578933s(14.9997ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.6728948s(15.0015ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.6879023s(15.0075ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.7029179s(15.0156ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.7179116s(14.9937ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.7329110s(14.9994ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.7629140s(30.0030ms), Idle=29ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
 0:00:00.7779122s(14.9982ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.7928886s(14.9764ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.8079007s(15.0121ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.8229192s(15.0185ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.8379341s(15.0149ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.8529101s(14.9760ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.8679173s(15.0072ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.8829251s(15.0078ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.9129758s(30.0507ms), Idle=29ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):######
 0:00:00.9278974s(14.9216ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.9429084s(15.0110ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.9578890s(14.9806ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:00.9729022s(15.0132ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:00.9879217s(15.0195ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.0029260s(15.0043ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.0179243s(14.9983ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##
 0:00:01.0329212s(14.9969ms), Idle=14ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):##

SC-500N1/DVI
 0:00:01.1520954s(16.7010ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.1687750s(16.6796ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.1854395s(16.6645ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2021291s(16.6896ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2188109s(16.6818ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2354884s(16.6775ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2521756s(16.6872ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2688520s(16.6764ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.2855427s(16.6907ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3022185s(16.6758ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3189024s(16.6839ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3355853s(16.6829ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3522681s(16.6828ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3689556s(16.6875ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.3856321s(16.6765ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4023203s(16.6882ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4189996s(16.6793ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4356814s(16.6818ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4523639s(16.6825ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4690485s(16.6846ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.4857289s(16.6804ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5024121s(16.6832ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5190950s(16.6829ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5357793s(16.6843ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5524590s(16.6797ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5691485s(16.6895ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.5858229s(16.6744ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6025090s(16.6861ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6191911s(16.6821ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6358750s(16.6839ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6525565s(16.6815ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6692432s(16.6867ms), Idle=16ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###
 0:00:01.6859364s(16.6932ms), Idle=15ms, IdleCount=  0, Size=1843200byte, SP(0) Pl(1) Dc(1):###

Intensity Proはご報告いただいた方と同じ結果となりました。9フレームごとにタイミングが遅れるためEVRでプレビューするとガクガクします。iWaitDeliverを"2"とすることでEVRでも滑らかなプレビュー表示になります。また、Intensity ProのHDMI出力端子にモニターを繋いで目視で確認しましたが、こちらは滑らかで遅延も少ない印象でした。

同じ条件でSC500の方は動作タイミングが安定しているためアマレコTVの方で調整することなく滑らかなプレビュー表示となりました。

持っていないので確認できませんがDC-HD1もガクガクすることがあるようなのでiWaitDeliverを"2"にすればEVRでも滑らかなプレビューになるかもしれません。


ビデオキャプチャカードのタイミングと遅延

アマレコTV用 デインターレースフィルタ Ver2.20d ベータ版」で触れたようにアマレコTVがビデオキャプチャカードからデータを受け取る際のタイミングにはばらつきがあります。
それを確認するためにAmDeinterlace.axと同じフォルダにある「AmDeinterlace.ini」をメモ帳で開いて「iDebugLog」を”1”にするとアマレコTVがデータを受け取った際の時刻やステータスを記録したログファイルを作成することができます。また、「iWaitDeliver」は今回のタイミング調整を行うかどうかの設定です。0なら調整を行わない(今まで通りの動作)。1でタイミング調整を行うようになります。初期値は1です。なお、タイミング調整はアマレコTVのプレビュー設定でソフトウエアデインターレースを使う場合に限り行われます。デインターレースを行わなかったり、ハードウエアデインターレースを使う場合はタイミング調整は行われません(今のところ必要ないので)。

【注意】 ビデオキャプチャカードのタイミングを観察するときはアマレコTVのタイミング調整が影響してしまうので「iWaitDeliver」を0にしてタイミング調整しない状態で観察してください。

 

■テスト環境
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
SoftwareアマレコTV Ver2.20c
AmDeinterlace.ax Ver2.20d
Capture CardGV-USB2 S端子Driver:1.1.0.93.5, 2010.06.28
SD-USB2CAP4 S端子Driver:5.2009.917.0
SC-500N1/DVI コンポーネント端子Driver:1.1.0.108.0, 2011.08.09

PlayStation2本体でPS1のゲーム「雷電プロジェクトの雷電II」を使用。
このゲームのビデオ信号は擬似NTSC(240p 60fps)になります。
雷電ラインダブラー



■GV-USB2の結果
wait_recv\GV-USB2.PNG 

各行にデータを受け取った時刻とステータスが記録されています。
赤枠の部分は一つ前のデータからの経過時間(インターバルタイム)でビデオキャプチャカードのタイミングを観察できます(今回注目する値)。
IdleはアマレコTVのデータ処理が終わり次のデータが届くまでの暇な時間(アイドルタイム)。この時間が少ないと遅延している(急いでデータが送られてきている)可能性があります。
IdleCountはIdleが小さい時にカウントが増えます。一定値に達すると遅延を回復するため意図的にプレビューの画像をドロップします。
Sizeは受け取ったデータ量。上記では720 x 480 x 2=691,200バイトになります。
SP、Pl、DcはDirectShowフィルターのステータス。
行の最後にはインターバルタイムを“#”の個数で表示しています。#ひとつが5msです。

GV-USB2の場合、擬似NTSCのビデオ信号を秒間30フレームのデータ(インターレースのようにインターリーブされたデータ)として送ってきますので、正常なインターバルタイムは33msとなります。
しかし、ところどころ約64msになっており33msより大きく遅れているのがわかります。 その後、数フレームを33msより早いタイミングで送ることで平均的に見て33msとなるよう動作しています。
背景が青くなっている23フレーム分(約0.8秒)が一つのサイクルになっているようです。


■SD-USB2CAP4の結果
wait_recv\SD-USB2CAP4.PNG

SD-USB2CAP4も秒間30フレームのデータとして送ってきますので正常なインターバルタイムは33msです。
GV-USB2の時と同様インターバルタイムが33msより遅くなることがありますが約40msとGV-USB2より遅れは少なくなっています。
こちらも青くした6フレーム(約0.2秒)を1サイクルとして平均33msになるよう動作しています。


■SC500N1/DVIの結果
wait_recv\SC500.PNG

SC500では擬似NTSCのビデオ信号を720 x 240プログレッシブ 60fps(59.94fps)でキャプチャするため正常なインターバルタイムは16.6msです。
テスト結果から約16.7msで安定しているのがわかります。
これは、アマレコTVでタイミング調整することなく滑らかなプレビューができるだけでなく遅延も少ない事を意味します。


■遅延に付いて
遅延に付いて語るのは難しいのですが、今回の結果からビデオキャプチャカードにより生じる遅延の最小値(最低でもこれだけは遅延すると言う値)は次のようになります。

ビデオキャプチャカード遅延(最小値)
GV-USB2約64ms
SD-USB2CAP4約40ms
SC500N1/DVI約17ms

※ この他に、ビデオレンダラーによる遅延とビデオカードによる遅延が生じます(両方あわせて約17ms)。また、Windows7でデスクトップコンポジションを行う場合はデスクトップコンポジションによる遅延も生じます。


■最後に
GV-USB2とSD-USB2CAP4でタイミングがばらつく原因は判りませんが、 もうすこしタイミングが安定されると良いなと思います。あと擬似NTSCがキャプチャできるだけでも有難いけど、SC500の様に240pでキャプチャできればパソコンの画面を見ながらゲームしやすくなると思うので、そういった商品も今後出てくると良いなと思います。


テーマ : PC周辺機器     ジャンル : コンピュータ
 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

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

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



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

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