私はビデオ入力を全く新しくして、数日前にAForgeで作業を始めました。ライブビデオの操作は快適ですが、私はプロジェクトのためにファイルを使って何かをする必要があります。AForgeのAVIファイルのフレームレートを減らす
Windows Media Video 9 VCMコーデックを使用すると、保存に問題はありません。出力ファイルは、私が持っているすべてのプレーヤーで正常に動作しますが、私のプログラムは常にフレームレートの約2倍で再生します。これは、フレームレートが変更されたことが全くないため、特に奇妙です。ビデオが保存されたデフォルトと新しいプレーヤーは、フレームレートが25 fpsであることを示しています。
私が見つけた唯一の提案は、ビデオがキャプチャされる前にフレームレートを変更することですが、これは何もしないようです。
AVIFileVideoSourceのドキュメントを見て、FrameIntervalFromSourceプロパティとFrameIntervalプロパティを見つけましたが、探している結果が表示されるはずですが、それを動作させることはできません。他のすべては終わりであり、私はアイデアがありません。ファイルを読み取るために使用しているコードは次のとおりです。
public partial class Form1 : Form
{
AVIReader input = new AVIReader();
AVIFileVideoSource source = new AVIFileVideoSource("test.avi");
public Form1()
{
InitializeComponent();
}
public void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
input.Open("test.avi");
for (int i = 0; i < input.Length; i++)
{
pictureBox1.Image = input.GetNextFrame();
}
source.Stop();
input.Close();
}
private void button1_Click(object sender, EventArgs e)
{
source.NewFrame += new NewFrameEventHandler(cam_NewFrame);
source.Start();
}
private void button2_Click(object sender, EventArgs e)
{
source.Stop();
input.Close();
}
}
その他のご意見をいただければ幸いです。あなたの時間をありがとう。