スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 本質部分の改良をしようかと | トップページ | かなり期待できそうだ »

とりあえず、作業を開始

今はAmuseGraphics Ver1.4.1の開発フェーズで、既に、AGMPlayerとAG-ムービーカッターに引き続き、AG-デスクトップレコーダーの開発に移ったのだが、今回の目玉は、Mirror-DTCで言うところの「ECOモード」の追加、という事になりそうだ。

Mirror-DTCのECOモードというのは、結構、重要な機能で、画面変化が無い場合には、画面キャプチャーの頻度を落とす機能、という事になる。

もっとも、当然の事ながら、画面をキャプチャーしない事には、画面変化があるかどうかが判らないので、キャプチャー頻度を落としている状況で、キーボード入力なんかが行われると、それに伴う画面変化をキャプチャーしそこなう危険性があるので、キーボード入力やマウスボタン操作があった場合には、通常のキャプチャー頻度に戻す処理も入れている。

なので、Mirror-DTCの場合、ECOモードを適用していると、デスクトップ上で何も操作をしておらず、かつ、動画表示なんかも行われていない場合には、自動的に画面キャプチャーの頻度が落ちるので、処理負荷は下がる訳だ。

そして、エディタへのテキスト入力やウインドウのドラッグやボタンを押す操作なんかには、通常は、キー入力やマウスボタン操作が伴うので、そういう操作が発生するタイミングでキャプチャー抜けが発生する事もないので、通常のデスクトップ操作時に、クライアント側の画面が操作に合わせて変化せずにイライラさせられる、という事もない訳だ。

もっとも、上記の通りなので、PCでこのブログを見ていれば、左側のスペースに表示されている筈のアニメーションGIF画像なんかは、数秒間隔で自動的に画像が切り替わる様になっているので、こういう画像変化に対しては、キャプチャー遅延(最大0.2秒)が発生する事になる。

と、いう事で、ECOモードを適用すると、キャプチャー画像に若干の遅延が発生する場合もあるのだが、Mirror-DTCというのは、画面描画が異常に遅い場合もあるVNC、なんかと同類のリモートデスクトップソフトになるので、キャプチャー画像が若干遅延する場合がある、といっても、画面描画が遅いVNCなんかと比べれば、全く問題にならない程度の遅れにしかならないので、デフォルト設定で有効にしている。

しかし、AG-デスクトップレコーダーというのは、画面上に見えている映像をそのまま録画できるのが普通のキャプチャーソフトの世界に属するソフトなので、流石に、Mirror-DTCと同様のECOモードを搭載するのはマズいか、と、思ったりもしていたのだが、実際の所、Mirror-DTCサーバーを動作させ、クライアントから接続して映像をクライアントに転送していても、通常のデスクトップ操作をしている状況では、PCが熱を持つ事すら殆ど無いのに対し、AG-デスクトップレコーダーで全画面録画していると、熱を持つ事になる。

つまり、例えば、今現在、YouTubeのTV東京公式 TV TOKYOで公開されている、「【公式】侵略!イカ娘 」 みたいなYouTube動画を録画して自前コレクション化したい様な場合には、少しでもフレーム落ちすると我慢できない、みたいな所はあるかもしれないのだが、何か作業をする時に、間違った事をやっていなかったか等の確認を後から出来る様に、とりあえず録画しておきたい、みたいな場合には、現行版で録画していると、PCが熱を持ってしまうので、あまり気安く録画は出来ないかもしれないのだが、ECOモードを適用できれば、何時間録画を続けていても、現行版ほどには熱は持たない事になる筈だ。

と、いう事なので、Ver1.4.1では、よりラフな録画用に、上記の様なECOモードも適用可能にしようかなあ、と、考えているのだが、Mirror-DTCサーバーのエンコード負荷がAG-デスクトップレコーダーよりも軽い理由はもう一つある。

具体的には、Mirror-DTCでは、画面変化の有無を最初に検出し、変化がない領域についてはエンコードを行っていないので、通常のデスクトップ操作時には、画面の殆どに変化がない為に、画面解像度分の通常のエンコードを行う場合と比べると、エンコード負荷は大幅に軽くなっている訳だ。

上記の様な事が行えるのは、Mirror-DTCでは、一般的な動画用のエンコード形式ではなく、自前のエンコード形式を使っているからなのだが、AG-デスクトップレコーダーでも、デフォルトのエンコード形式は自前のAGM形式になる訳だ。

なので、AGM形式でのエンコード時には、Mirror-DTCと同様の処理を追加する事も可能なので、画面変化が少ない、通常のデスクトップ操作時のエンコード負荷は、上記とは違って録画品質を落とす事も無く、大幅に軽減する事が可能だ。

もっとも、前述の様な、YouTube動画をキャプチャーする、みたいな場合には、殆どのフレームで画面変化はあるので、画面変化の有無を確認する処理を追加する分、処理負荷が増える可能性まであるのだが、そういう場合には、このモードは使わければ良いし、AG-デスクトップレコーダーでは、どの道、Mirror-DTCと全く同じ処理にする事は出来ないので、負荷が増える場合には処理をスキップする、みたいな処理も追加できない話でもない。

と、いう事で、まだ、実装はこれからなのだが、大体は、どんな感じにするのかは見えてきたので、AG-デスクトップレコーダー Ver1.4.1の開発についても、とりあえず、作業を開始した今日この頃だ。

ちなみに、AG-デスクトップレコーダーの次には、AG-Webカメラレコーダーの開発を行うのだが、こちらについても、既に、普通に使う分には十分な機能・性能があるので、改良ネタが無い、という点については、同様なので、こちらについても、似たような機能を追加しようかと考え始めている。

具体的には、AG-Webカメラレコーダーについては、PC内蔵かそれに追加したUSBカメラを監視カメラ代わりに使う為に使っている、という人も人もいるかもしれない。

その場合、AG-Webカメラレコーダーはフレームレートを落とせるので、落としておく、という人もいるかもしれないのだが、イザという時に、フレームレートが1FPSだと心許ない、みたいな場合もあるかもしれない。

なので、AG-Webカメラレコーダーについては、画面変化が殆どない場合には、自動的にフレームレートを1FPS程度に落とし、何か変化があった場合には、規定のフレームレートで録画する、みたいな感じに出来る機能を追加しようかと思い始めた訳だ。

もっとも、AG-デスクトップレコーダーの場合、録画対象がデスクトップなので、変化が無い、というのは、完全に変化が無いモノとして扱えるのだが、AG-Webカメラレコーダーの場合、対象はノイズが含まれるのが普通のWebカメラ映像になる。

なので、変化のあるなしの判定が難しいかもしれないのだが、その辺はユーザー設定可能にしておけば、逆に、何となく高度な機能が追加された感じになるので、プレゼンテーション的には良いのかもしれない。

« 本質部分の改良をしようかと | トップページ | かなり期待できそうだ »

2019年12月
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        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google