Я совершенно новичок в области ввода видео и только начал работать с AForge несколько дней назад.Работать с живым видео удобно, но мне нужно что-то сделать с файлами для проекта.
При использовании кодека Windows Media Video 9 VCM сохранение не было проблемой.Выходной файл работает нормально с каждым моим плеером, но моя программа всегда воспроизводит его примерно с удвоенной частотой кадров.Это особенно странно, поскольку нет никаких указаний на то, что частота кадров изменяется: и значение по умолчанию, с которым видео было сохранено, и новый проигрыватель указывают, что частота кадров составляет 25 кадров в секунду.
Единственные предложения, которые я нашелизменить частоту кадров до захвата видео, но это, похоже, ничего не делает.
Оглядываясь в документации 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();
}
}
Буду признателен за любые другие предложения.Спасибо за ваше время.