IPカメラからビデオストリームを取得してそのビデオを表示するプログラムを書いています。
ビデオを作成するために、MJPEGストリームを要求し、データを解析し、WPFコントロールでフレームごとに表示します。
自分のプログラムを他のプログラムと比較したところ、フレームレートの表示は同じですが、自分のプログラムでは他のプログラムよりもビデオがスムーズに表示されないことがわかりました。
コントロールの画像を順番に更新して、WPFコントロールにビデオを表示しました。
私のプログラムがスムーズでない理由を誰かに教えてもらえますか?そしてそれを改善する方法。
アップデート:
@LearnedfromMistake:2つのスレッドがあります。スレッド#1は、カメラストリームからのデータを要求、解析し、フレームをキューに追加します。スレッド#2は、キューからフレームを取得して表示します。
これが私の擬似コードです。
Thread #1
{
while(true)
{
JpegFrame = ReadAFrameFromStream();
QUEUE.Append(JpegFrame);
}
}
Thread #2
{
while(true)
{
JpegFrame = QUEUE.GetFrame();
WPFControl.UpdateImage(JpegFrame); //Making video here
}
}