DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ビデオのメモリー読み込みと再生の方法

環境/言語:[VS2005-C#]
分類:[.NET]

avi拡張子のビデオをメモリーに読み込んで再生したいのですが
良い方法はないでしょうか。

TIPSを参考に以下のようにも考えたのですがうまくいきません。
//ハードディスク上のビデオファイル名を指定
string resourceName = "./tmp.avi";
//ビデオファイルをメモリへ読み込み(不明)
System.IO.MemoryStream strm = (resourceName);
//メモリ上のディレクトリ含むファイル名指定(不明)
・・・
string targetName = ・・・ // 仮にメモリ上のファイル名をtargetName
//----------------------------
// 後はDirectShowを使って再生
//----------------------------
・・・
result = this.captureGraphBuilder.SetOutputFileName(DirectShowLib.MediaSubType.Avi, targetName
, out muxFilter, out sinkFilter);

・・・

やりたいことは
ビデオファイルをハードディスクからフレーム毎に読み出して?再生する
のではなく、一旦、ファイルを全てメモリーにコピーしてから
再生したいと思っています。

よろしくお願いします。
■No18681に返信(レンダさんの記事)
> avi拡張子のビデオをメモリーに読み込んで再生したいのですが
> 良い方法はないでしょうか。

  メモリに読み込ませる理由は?
  HDDから読んでいたら、遅いので再生がカクカクするとか
  でしょうか?

  AVIファイルがオンメモリに乗るサイズであるならば、RAMDISKと
  言う手もあろうかと。

  簡単に実現するならばよいように思いますが。

※ 因みに、RAMDISKのドライバーは探せば結構フリーで出てますよ。

以上。
オショウ 様
ご回答ありがとうございます。
メモリーに読み込ませる理由はご指摘の通りハードディスクやCPUのパフォーマンスが低いと
動きがカクカクしてしまうからなのです。
メモリーはなるべくパソコン内のメモリーをそのまま使えればと思っています。
ビデオサイズも数Mバイト程度なので、RAMDISKを付け足すほどでもありませんので、
なんとか工夫してやりたいと思っております。
> メモリーはなるべくパソコン内のメモリーをそのまま使えればと思っています。
> ビデオサイズも数Mバイト程度なので、RAMDISKを付け足すほどでもありませんので、
> なんとか工夫してやりたいと思っております。

  ハードウェアを追加するRAMDISKと勘違いされているようですが、ソフト
  ウェアのみで搭載されるメモリからRAMDISKにできます。

  数メガなら、8MBとか、16MB割り当てればできると思いますが・・・

以上。
ご回答ありがとうございます。
外付けのRAMDISKと勘違いしました。
ソフトウェアでRAMDISKを作成する方法を調べてみましたが
MemoryStream class
ではないかと思いましたがディレクトリとかファイル名を指定して
保存はできないように思います。
もし他の方法をご存知であればご教授いただければ幸いです。
> ソフトウェアでRAMDISKを作成する方法を調べてみましたが
> MemoryStream class
> ではないかと思いましたがディレクトリとかファイル名を指定して
> 保存はできないように思います。
> もし他の方法をご存知であればご教授いただければ幸いです。

  検索サイトで検索したら、有償・無償商品ワンサカヒットしますが・・・

  まずマイクロソフト純正ならば・・・
  http://journal.mycom.co.jp/column/winxp/088/

  ただし、WinXP では、問題があるようで・・・
  http://support.microsoft.com/default.aspx/kb/257405/ja

  この内容に従えば使えます。が、若干問題も?

  他にもいろいろありますが・・・

  次に有償商品
  http://www.intercom.co.jp/ramdisk/index.html

  ※ 私はインターコムの回し者ではありません。あしからず。

  シェアウェアでも多数ありますので・・・

  ご自身でよさそうなのを導入されては?

以上。
> ビデオサイズも数Mバイト程度なので、RAMDISKを付け足すほどでもありませんので、

それくらいのサイズなら、今時ディスクキャッシュに全部入っちゃうんじゃないですか?

それでもなお「カクカク」するとしたら、余程PCのスペックと不釣合いに高品質 and or 高度に圧縮された動画を再生しようとしてるのではないでしょうか。
オショウ様
渋木宏明 様
連絡遅れました。
ご回答ありがとうございました。
RAMディスク試してみました。
最終目標はC#から全ての設定ができるようにすることですので、
ご紹介いただきました方法と
TIPSを参考に考えてみようと思います。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板