2

Delphi 2010 内で TFilterGraph と TVideoWindow を使用して、ファイル システムからビデオをレンダリングできます。ファイル システムから直接ではなく、MemoryStream からビデオをレンダリングしたいと考えています。コンセプトは次のとおりです。

  1. ビデオをデータベース blob フィールドに保存します。
  2. blob (ビデオ) を MemoryStream に読み込みます。
  3. DSPack を使用してブロブ (ビデオ) をレンダリングします。

ファイルの代わりに MemoryStream を使用するように FilterGraph に指示するにはどうすればよいですか?

4

1 に答える 1

2

あなたの質問の最後の部分に答える Ciuly の Web コーナーで公開されている実用的なデモがあります: http://www.ciuly.com/delphi/multimedia/using-directshow-with-dspack-play-multimedia-content-from-stream/

他の 2 つの部分については、データベース blob フィールドへの読み込みと読み込みです。

//add a file stream to a blob field
MemoryStream:= TMemoryStream.Create;
try
  MemoryStream.LoadFromFile(VideoFileName);
  MemoryStream.Position:= 0;
  ClientDataSet1.Edit;
  ClientDataSet1YOURBLOBFIELD.LoadFromStream(MemoryStream);
  ClientDataSet1.Post;
finally
  MemoryStream.Free;
end;

//read a memory stream from a blob field
MemoryStream:= TMemoryStream.Create;
try
  ClientDataSet1YOURBLOBFIELD.SaveToStream(MemoryStream);
  MemoryStream.Position:= 0;
  //do your magic with the memory stream here
finally
  MemoryStream.Free;
end; 
于 2013-01-06T20:47:47.073 に答える