今週末にオンラインヘルプを作って一般公開する予定でしたが、もう少し頑張ろうと思う部分が出てきたので2週間程延期することにしました。それまではベータ版をお試し頂ければと思います。不具合などありましたらご報告いただけると助かります。今のところ不具合も見つかっていないですし、不具合報告もゼロなので、このままベータ版を正式版として一般公開するつもりでいました。ところが、ファイナルファンタジー14(FF14ベンチ)やストリートファイター4(SF4ベンチ)などのベンチマークソフトを使って他のキャプチャソフトと比較していたところ、アマレココ4が1番(ShadowPlayを除く)と言える条件がある一方で、トップスコアのキャプチャソフトから10%程度離されてしまう条件もありました。そこで、全ての環境で一番は無理にしても、不利な条件でも僅差と言えるレベルまで持っていけないか延長戦に突入します。GTX1070とか1080までいくと、ほぼアマレココ4はトップ(ShadowPlayを除く)かトップクラスのスコアになると思います。逆にGPUの性能が低くなるとCPUの性能とのバランスでアマレココ4の優位性が変わってきます。i7-4770)は、かなり悪いスコアとなる場合がありました。■アマレココ4はFF14ベンチが苦手でSF4ベンチは得意GPUの性能が良ければどちらもいい結果が出るのですが、先のようにGPUの性能が悪くCPUが良い場合は、FF14ベンチのスコアが他のキャプチャソフトと比べとても悪くなりました。推測になりますが、ゲーム側の処理が60fpsを維持できなくなると、アマレココ4のスコアが悪くなる印象です。SF4ベンチの方はこの条件でもゲーム側の処理が60fpsを維持できており、アマレココ4はトップレベルのスコアとなります。i7-4770のような環境ではコーデックに処理の早いAMV4を使おうが、滅茶苦茶処理の遅いx264を使おうが、FF14ベンチ、SF4ベンチ共にベンチマークのスコアという形で差異は見て取れませんでした。それぐらいゲーム側の処理がGPUに依存しておりCPUによる処理は完全に無関係な状態でのテストと言えます。この条件でアマレココ4やAMV4を使ってもスコア面の優位性はありません。API系が総じて有利と思われます)。逆にDirectX系のキャプチャソフトがそろって上位を占めたのがGPUの性能が悪くCPUの性能が良い場合のFF14ベンチでした。同じFF14ベンチでもGPUの性能が良い場合はキャプチャ方式の違いによる傾向は見て取れませんでした。CPUで処理する分部(主にコーデックの処理)で優劣が決まるものと思われます。■キャプチャ時のカラーフォーマットによる違い細かい差異になりますが、ビデオメモリからシステムメモリへ画像を転送する際のカラーフォーマットもベンチマークスコアにかかわってきます。12bitを採用しているようです。12bit相当のフォーマットとなりますので妥当な選択です。16bitなのでこの点でやや不利となってしまいます。GPUの性能が悪く、CPUの性能が良い環境ではこの差が絶対に超えられない差となりアマレココ4は僅差ですがどう足掻いてもトップに立てません。ShadowPlayにおいては圧縮したデータを転送するので、この点において、ShadowPlayと他のキャプチャソフトの間には超えられない壁があると思います。80Mbpsで録画するように設定した場合の理論上の転送量は10MBとなりますので、他のキャプチャソフトの10分の1以下です。これに加えCPUを使ってエンコード処理をしなくていいのですから、ベンチマークのスコアで評価する限りShadowPlayを超えるキャプチャソフトというのはあり得ないのではないでしょうか。JPEGやQSVを使った方がスコア面では有利と思います。下記の記事でBandicamのスコアが低いのもNVENCを使ってテストしているからではないでしょうか。ベータ版公開お待たせいたしました、アマレココ4のベータ版を公開します。オンラインヘルプはまだなので、少々のことは自力でやりくりできる方が対象となります。64bit版専用となります。・32bit版のOSでは実行できません。APIが非対応なので使えません。・SSE4.1に対応したCPUが必須となります。・DirectX11に対応したGPUが必須となります。・シェアウエア(有料)のAMV4ビデオコーデックが必要です。・AMV4ビデオコーデックのライセンス登録が済んでいない場合は録画時にAMV4のロゴが入ります。Windows10で私は使えていますが、最終的に使えるかどうかはあなた次第です。アマレココ4が原因でうまく動作しないケースは今のところありません。これはアマレコTV4にも言えることですが、Windows10でアマレコTV4が使えないという人も居るようなので、やはり使えるかどうかはあなた次第です。アマレコTV4がWindows10に対応していないから使えないという認識だと一生使えないかもしれませんよ。Windows10でAVIファイルを再生していると途中でエラーになる人は、Windows10のアップデートをちゃんとやって最新の状態にすれば改善されるかもしれません。私のところではWindows10でAVIファイルの再生(3時間程度のAVIファイルの再生)も問題なくできるようになりました。(以前はこの記事「Windows10のWMPでAVIファイルが再生できない」のようにWindows10でAVIファイルを再生していると数分でエラーが出ました。不具合などありましたら、この記事のコメント欄に書き込んでいただけると助かります。ベンチマークを使ってアマレココ4の性能をテストします。ベンチと異なりCPU負荷だけでなくゲームプログラムへ与える影響も分かります。ストIVベンチを1600x900のウインドウモードで実行し、録画していない場合と、アマレココ4+AMV4(YUV:DY3)でデスクトップ全体(1920x1080)を59.94fpsで録画した場合を比較します。CPUは4コア、8スレッド、HTT対応、AVX2対応。BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。fps平均FPSが約13フレーム低下となりました。4%程度増えています。続いて、フレームの取りこぼしについても検証してみました。4.フレーム取りこぼし検証方法PC1でストIVベンチを実行してアマレココ4でデスクトップ全体を録画。そのPC1のモニター出力(ビデオカードのHDMI出力)をPC2でビデオキャプチャカード(キャプチャボード)を使って録画。PC1のアマレココ4で録画したビデオファイルとPC2のビデオキャプチャカードで録画したビデオファイルを比較して検証。アマレココ4およびビデオキャプチャカードの双方に取りこぼしがなければ理屈の上では同じフレームが映っているので両映像を引き算したとき、ほぼ真っ黒な映像となるはずです。5.検証動画の編集まずAviUtlでPC2のビデオキャプチャカードで録画したファイルを読み込みます。次に、PC1のアマレココ4で録画したファイルを拡張編集のLayer1へ読み込みます。Y座標を一時的に下にずらして2つの映像を見えるようにします。拡張編集の操作で似たシーンになるまで動画の再生位置を(大雑把に)調整します。拡張編集の動画ファイルの画面から1フレーム単位の微調整をおこない、完全に同じフレームになるようにします。シーンチェンジや一瞬光るエフェクトを目印に合わせるといいと思います。最後にY座標をゼロに戻し、合成モードから「減算」を選択して完了です。2つの動画の内容がほぼ一致する場合、引き算した値もほぼゼロとなるため真っ黒な映像となります。取りこぼしなどフレーム単位で映像に食い違いが生じると下図のように異なる部分が一瞬見えます。6.検証動画アマレココ4のフレーム取りこぼしテスト(YouTube)終始真っ黒となるためこの録画テストの間、アマレココ4とビデオキャプチャカードによる取りこぼしは双方とも無かったと言えます。ちなみに取りこぼしがある場合は次のようになります。取りこぼしがある場合の例(YouTube)■注意事項ビデオ信号とビデオキャプチャカードの仕様が適合している必要があります。ビデオ信号(モニター出力のリフレッシュレート)が60Hzでキャプチャカードが59.94fpsだと調整が入り一致しなくなります。ビデオキャプチャカードのビデオキャプチャソフトにアマレコTV4を使い映像のドロップがないことを確認すること。ステータス欄で(+)や(-)のドロップがカウントされている場合は当然その部分で一致しなくなります。録画が終わった後ドロップがゼロであることを確認してください。同様にアマレココ4もドロップステータスを表示してゼロであることが前提となります。長時間録画すると必ず(+)(-)の調整が入りますのでこの検証ができるはせいぜい数分です。DirectXタイプのキャプチャソフトの場合は取りこぼしが無くても一致しない可能性があります。これは、1秒間にモニターに出力する画像枚数と、ゲーム内でレンダリングされる画像枚数に食い違いがあるためです。ゲームのFPSが70fpsで録画FPSが60の場合、70枚の画像を60枚に間引くことになりますが、その間引き方が画面表示と異なる場合があるためです。APIの場合はゲームが70fpsでも得られる画像は60枚なので画面表示と一致するようです。ゲーム側の処理がモニターのリフレッシュレートを下回る場合は一致しない可能性が高いです。ゲームのFPSが50fpsで録画FPSが60fpsの場合、50枚の画像を60枚に水増ししますが、その水増しの仕方が画面表示とキャプチャソフトの処理で異なるためです。APIの場合も得られる画像は50枚なので一致しない可能性が高いです。ベータ版を先行公開します。正式版の公開はホームページで来週を予定しています。使い方(起動オプションそのた)1.録画範囲(取り込み枠)・ウインドウキャプチャはありません。すべてデスクトップキャプチャとなります。・ルーペ機能は廃止しました。・録画フレームレートやマウスカーソルの設定は設定画面で行います。取り込み枠は録画範囲に関する設定のみとなります。メモ帳で編集すれば任意のキャプチャサイズをリストへ登録できます。2.起動オプション-recアマレココ4が起動してすぐに録画を開始します。録画を停止するとアマレココ4は終了します。録画していないときにアマレココ4によるCPU(GPU)負荷を完全にゼロとしたい場合に次のように使います。・デスクトップにアマレココ4のショートカットを作って、そのショートカットにOSのホットキーを割り当てる。・ゲーム中など録画したい場面になったらショートカットのホットキーでアマレココ4を起動(と同時に録画が開始されます)。その後アマレココ4は自動的に終了します。このオプションが指定されている場合は設定画面の内容など殆どの項目で設定値が保存されません(設定の変更はできますが、次回起動時、元に戻る)。-safe各デバイスへアクセスする前に設定画面を表示します。実行してもセーフモードで起動します。明らかに使えない項目を選択してしまい、起動と同時にエラー落ちするような場合に使います。削除して、設定を初期化してください。3.録音について録音する場合のサンプリングレートは録音デバイスの設定値(OS側の設定)になります。チャンネル数が2chを超える場合は2chへダウンミックスして録音します。ビット深度は16bitのみ対応します。スピーカーの音を録音する場合、スピーカーが96kHzならアマレココ4で作られる動画ファイルも96kHzになります。4.録画エンジンについてアマレコTV4の録画エンジンを採用していますので、以下の特徴がそのまま適用されます。音ズレ対策についてはアマレココ4に合わせたタイムベースの処理に変更しています。アマレコTV4ではキャプチャカードから送られてくるタイムスタンプが狂っているのでタイムベースでの処理を採用できませんでしたが、アマレココ4では画像と音声を取得した時刻を完全に把握できるので、音ズレ処理をシンプルにすることができました。基本的に時刻が正確であれば音ズレすることはありません。起こるとすれば動画の最初から最後まで一定のズレとなります。これは録音設定の遅延で調整してください。5.そのほか・RGB・YUV変換はBT.601、リミテッドレンジ、色のサンプリングは左側の画素となります。・マルチモニターの場合は録画範囲の中心点が属するモニターの映像のみが録画されます。録画およびスクリーンショットに関する設定です。プレビューを表示するかどうかやプログラムの優先順位などはメイン画面のメニューに設定項目があります。設定画面では主に動画ファイルの保存先やファイル名フレームレートなど色のついている部分を設定してください。色が付いていない部分は好みや環境に合わせて設定してください。録画詳細設定は内容をよく理解したうえで変更してください。■ビデオ設定:フレームレート「Monitor」を選択すると録画対象となるモニターのリフレッシュレート(通常60Hz)で録画します。モニターが60Hzの場合に録画フレームレートを29.97に設定すると、約33秒に1枚画像を意図的にドロップ(ステータス欄のドロップ(-)がカウントされる)しながら録画します。■ビデオ設定:AMV4コーデックカラーフォーマットでRGBを選んだ場合はAMV4ビデオコーデックの設定がDY2やDY3(RGBをYUVに変換して圧縮する)になっていても、RGBで録画(圧縮)します。DY2に設定されている場合はDR2として、DY3に設定されている場合はDY3として動作します。■ビデオ設定:その他のコーデックリストに表示されるコーデックが全て使えるわけではありません。使えないコーデックや使おうとするとアマレココ4を巻き込んでエラー落ちするコーデックもありますので、他のコーデックを使う場合は良く内容を理解したうえで選択してください。本来、使えるかどうかチェックしてから、使えるコーデックのみリストに表示するようにしたいところですが、使えるかどうか確認する段階でエラー落ちするコーデックがあるので、それもできません。そのためシステムに登録されているFourCCを全て表示するようになっています。■オーディオ設定:デバイス「Auto」を選択すると既定の再生オーディオデバイス(通常はスピーカーまたはHDMIモニター)の音を録音します。録画した動画に対し映像と音声を意図的にずらします。遅延の数値を大きくするほど音が遅れた動画となります。遅延をマイナスにすると音声を進めた(映像が遅れた)動画となります。動画の最初から、最後まで一定のズレがある場合に効果を発揮しますが、動画の初めは合っていて、動画の後の方になるにつれ音ズレするようなケースについては対応できません。試して、それでも改善されない場合は最大±500ms程度を目安に100ms単位で調整してみてください。",■オーディオ設定:録音テスト「録音テスト」ボタンを押すとリストで選択したオーディオデバイスを使って録音テストします。録音できる場合は録音フォーマット(動画ファイルのオーディオ形式)が表示されます。4ch以上の場合は2chにダウンミックスして録音します。動画のサンプリングレートはオーディオデバイスのサンプリングレート(OS側の設定)と同じになります。■録画詳細設定:ダミーピクセルを使う画像の取りこぼし(同じ画が動画に記録されてしまう)を極力減らすために使います。録画対象がリフレッシュレートに合わせて、常に画像を更新している場合は安定した(取りこぼしの少ない)録画が可能ですが、60Hzのモニターで30fpsの動画を再生するなどリフレッシュレート未満の更新になってしまう場合に取りこぼす可能性がでてきます。いった場合にダミーピクセルをonにすることで取りこぼしを軽減します。ダミーピクセルは録画対象となるモニターの左上に8x8の四角を表示して、モニターのリフレッシュレートに合わせて常に表示を更新します。ダミーピクセルは透明なので見た目には見えません。ダミーピクセルが働くのは録画中のみです。害がない場合はonで使うことを推奨します。60Hzのモニターでゲーム画面を録画する場合についてゲームプログラムが常に60fpsを維持できる場合はダミーピクセルをoffにしてもかまいません。ゲームプログラムが常に30fpsで動作する場合はダミーピクセルをonにしないと取りこぼしが生じます。ゲームプログラムのフレームレートが不安定な場合はどのみちきっちり録画できないのでダミーピクセルは好みとなります(onにした方が無難かな)。モニターが120Hzでゲームプログラムが60fpsの場合はダミーピクセルをonにしないと取りこぼすと思いますが、60Hzを超えるモニターでテストしていないので、そもそもアマレココ4がまともに動くかどうか不明です。基本的な使い方は録画範囲を設定して「スタート」ボタンで録画を開始するだけです。新しい機能としては録画範囲ボタンから直接ドラッグ&ドロップして録画範囲を設定できるようになりました。左D&Dでウインドウ全体、右D&Dでクライアント領域を録画範囲に設定します。現在の状況が表示されます。異常を検出した場合は警告やエラーメッセージを表示します。右側は主に録画処理に関する詳細情報が表示されます。2.1.録画処理に関する詳細情報メニューから「フレームレート」、「ドロップフレーム」、「HDD」を選択できます。■フレームレート(FPS)(R)録画中は録画処理(エンコードなど)を1秒間に何回行ったかを表示します。通常、ビデオ設定のフレームレートの値と同じになります。録画を行っていない場合は、プレビュー処理のFPSを表示します。プレビューのFPSは、通常、録画対象となるモニターのリフレッシュレートと同じになります。録画もプレビューもされていない場合はゼロとなります。(C)1秒間に何回デスクトップ画像をキャプチャしたか表示します。モニターのリフレッシュレートが60Hzでもデスクトップが40回しか更新されていなければ40となります。ダミーピクセルがONの場合は常にモニターのリフレッシュレートと同じ値で安定するはずです。録画もプレビューもされていない場合はゼロとなります。■ドロップフレーム(D)リングバッファなどに空きが無く(処理する前に)データを捨てた回数を表示します。通常この値はゼロとなります。(+)音データに対し映像データが少ないと判断した際に水増ししたフレーム数をカウントします。(-)音データに対し映像が多いと判断した際に捨てたフレーム数をカウントします。音ズレを防ぐため(+)か(-)のどちらかが必ず生じます。これは異常ではありません。(D)が1以上となる場合は慢性的なスペック不足の可能性が高いです。■HDD1秒間に何バイトHDD等へ書き出そうとしているかと、書込みバッファの使用率を表示します。使用率は通常10%以下です。使用率が100%になると録画は停止します。録画を行っていない場合は録画先ドライブの空き容量を表示します。録画中に異常を検出した場合は左側にメッセージが表示されます。録画の継続ができるうちは警告メッセージを点滅しながら録画を続けます。録画の継続が困難な場合はエラーメッセージを表示して録画を止めます。スペック不足ビデオコーデックによるエンコード処理に時間がかかり過ぎた場合に表示されます。エンコードの処理時間が録画FPSにおける平均フレーム持続時間の半分より大きい場合に警告が出ます。例:60fpsで録画する場合は平均フレーム持続時間が約16msなので、エンコードに約8ms以上かかったら警告を表示します。・RGBで録画している場合はYUVで録画する。・ハーフサイズをONにする。・ビデオコーデックの設定で処理速度の早いものにする。・録画フレームレートを下げる。・録画範囲を小さくする。・ANV4ビデオコーデックを使う。書込みバッファの使用率が50%を超えた場合に表示されます。設定で書込みバッファを大きくすれば、軽減できる場合もありますが、根本的にはHDDなどのスペック不足です。・RGBで録画している場合はYUVで録画する。・ハーフサイズをONにする。・ビデオコーデックの設定で圧縮効果を上げる。・録画フレームレートを下げる。・録画範囲を小さくする。・圧縮効果の高いビデオコーデック(非可逆圧縮)を使う。・録画先のドライブを変更する。frames(D)がカウントされた場合に表示されます。・録画詳細設定のリングバッファサイズを大きくする。録画処理に必要なメモリーを確保できないなど、録画処理そのものを開始できない。保存先のドライブの空き容量が足りない。書込みバッファの使用率が100%に達した。録音のためのリングバッファがいっぱいになった。■[エラー]録画エラーその他、もろもろのエラーにより録画を停止した。0あまラボへようこそこのブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。