私はビデオ入力に関してまったくの初心者で、数日前に AForge を使い始めたばかりです。ライブ ビデオの操作は快適ですが、プロジェクト用のファイルを操作する必要があります。
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();
}
}
他の提案は大歓迎です。お時間をいただきありがとうございます。