スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« デスクトップの方はもう一日 | トップページ | 更に改良した »

少し変更して完成

今は、Windows用AmuseGraphicsの開発フェーズで、今日は、AG-デスクトップレコーダーにも、AG-Webカメラレコーダーに加えたのと同様の変更を行った。これで、仕様的には完成なのだが、変更量が多いので、後1週間くらいは、仕上げと使いこみに必要だ。

今日は、AG-デスクトップレコーダーにも、長時間録画用にAG-Webカメラレコーダーに追加した機能を追加したのだが、録画中のAGM形式動画ファイルの出力機能については、AG-Webカメラレコーダーのソレも含めて見直しを行った。

具体的には、出力機能は削除して、代わりに、データのフラッシュ機能を用意した。

これは何故なのかというと、元々のAGM形式動画の出力機能では、極力、録画中の映像をドロップさせない様にしていたのだが、何となく、木を見て森を見ず、みたいな気がしたからだ。

つまり、元々の出力機能では、書き込み中のファイルをとりあえず別ファイルにコピーし、コピーしたファイルを現行版にもある修復機能に近い機能を使って視聴可能にする感じだった訳だ。

上記の様にすると、コピー開始時点のインデックス位置だけを把握しておけば、録画タスクを停止する必要なく、コピー後のファイル修復が行えるので、ストレージネックにならなければ、映像のドロップは発生しない訳だ。

しかし、この機能は、24時間連続で録画している状況で、12時間前の映像が見たい、なんて時に利用する事を想定している訳なので、コピーするファイルのサイズは数十GBあっても不思議ではない訳だ。

実際、昨日やっていたWebカメラレコーダーでの24時間録画中に、12時間経過した時点で、ファイル出力してみたのだが、ストレージにはHDDを使っていたので、書きこみとコピーが同時に走った場合、ランダムアクセスに近くなるので、それぞれが30MB/Sec程度しか出なかった訳だ。

そして、昨日書いた様に、録画ファイルは大きいので、コピーするのに10分くらいは平気でかかった訳だ。

と、いう事で、映像のドロップを発生させない、という点では、映像を別ファイルにコピーしてから処理した方が良いのだが、この機能はファイルサイズが大きい状況を想定している訳なので、使い勝手的に問題があった訳だ。

なので、この方式はヤメにして、代わりに、録画中のファイルに直接インデックス情報なんかを書きこんでしまう方式に変更した訳だ。

この方式の場合、インデックス情報の書き込み時には、通常の書き込みは行えないので、基本的はに、フラッシュ期間中の映像はドロップする事になる。

まあ、上記のドロップは、メモリを多用すれば防げるのだが、ストレージがHDDの場合、24時間くらいの録画ファイルをフラッシュしようとすると、10秒程度はかかる事を想定する必要がある訳だ。

その期間、映像録画をドロップさせない為に、書きこみデータをメモリに蓄えておく事にすると、例えば、1920x1080@30fpsの映像データの10秒分は1920x1080x4x30x10=約2.4GBになるので、最悪、それだけのメモリを消費する訳だ。

更に、ストレージが別アプリでも使われていたりすると、前述の10秒でも足りないかもしれない事を鑑みれば、フラッシュ期間中の映像データをメモリに蓄えておく、というのは、一般用途では危なっかしすぎる訳だ。

当然の事ながら、メモリの上限を予め決めておけば、危険性は減るのだが、実際の所、昨日のテストでは、フラッシュに5秒程度はかかっていたので、実力的にも1GB程度のメモリは必要になる。

と、いう事で、作者的には、用途を鑑みれば、そこまでメモリを多用してドロップを抑える努力をするよりは、フラッシュ中の映像は普通にドロップさせた方が良い、と、判断した訳だ。

なので、フラッシュさせると、その期間の映像データはドロップするのだが、音声データはキューイングされ続けるので、途切れないし、当然の事ながら、音ズレも発生しない様になっている。

ちなみに、上記の様な方式に変更しても、普通なら、書きこみ中のファイルを再生できるのか、という問題が残るのだが、AGM形式動画の場合、一般的なプレイヤーではなく、AGMPlayerとAG-ムービーカッターが使えるので、問題はない。

つまり、今日は、上記の様な運用形態が望ましいなあ、という気になったので、それを実現するために、上記の2つで、書きこみ中のAGMファイルを再生可能にした訳だ。

なので、データフラッシュ機能を使っても、Windows Media Player等の一般プレイヤーで再生したい場合には、どの道、書き込み中のファイルは再生してくれないので、ファイルのコピーを作成する必要が生じる。

このため、作者的には一般プレイヤーを使う事は推奨しないのだが、使う場合には、どの道コピーが入るので、データフラッシュはせず、書きこみ中のファイルをそのままコピーし、AGMPlayer/AG-ムービーカッターの修復機能を使って修復したファイルを再生した方がオリジナルファイルでドロップが発生しないかもしれないので、望ましいかもしれない。

と、いう事で、逆に、最悪、そういう形にすれば、録画映像をドロップさせない運用も可能なので、新機能としては、元々の出力機能は削除して、データフラッシュ機能を提供しておく事にした訳だ。

« デスクトップの方はもう一日 | トップページ | 更に改良した »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66078404

この記事へのトラックバック一覧です: 少し変更して完成:

« デスクトップの方はもう一日 | トップページ | 更に改良した »

2018年7月
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