2

openCVSharpを使用してビットマップ画像のストリームを再生し、YUVからビットマップを生成しようとしています。しかし、私はそれをビデオとして表示することができません。

ここでAVIラッパーとして使用するためのリンクと、ここのようにハードディスクに保存するためのリンクをいくつか見つけました。FFMPEGはLINUXでうまく機能する可能性がありますが、Windowsではあまり良くありません。

次のコードを使って試してみました。ただし、シーケンスの最後のフレームが表示されるだけであり、ビットマップはプログラムによって生成されるため、MediaElementを使用するためのURIがありません。

image.source = ToBitmapSource(bitmapImage);

どこ

public static BitmapSource ToBitmapSource(System.Drawing.Bitmap bitmap){
    IntPtr ip = bitmap.GetHbitmap();
    BitmapSource bs = null;

    bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip,
    IntPtr.Zero, System.Windows.Int32Rect.Empty,
    System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());

    return bs;
}

コンピューターに保存せずにビデオを再生しようとしています(ストリーミングと同様)。これにはDirectShowが必須ですか?私は必死にあなたの助けが必要です、私の締め切りはすぐに近づいています!

4

1 に答える 1

-1

DispatcherTimer(Winformのタイマーに相当)を使用できます。

DispatcherTimer dt = new DispatcherTimer();
dt.Interval = 25;  //25 ms --> 50 frames per second
dt.Tick += delegate(object sender, EventArgs e){

             //get the image and display it

          }

dt.Start(); //to start record
于 2012-07-13T19:30:51.603 に答える