Я пытаюсь записать видео с веб-камеры. Для этого я использую Aforge и Accord. Я строю его с формами windows. Источником видео и записью видео являются:
private AForge.Video.DirectShow.VideoCaptureDevice videoCaptureDevice = null;
private Accord.Video.FFMPEG.VideoFileWriter _writer;
Я вызываю Открыть на писателе следующим образом:
var w = (int)Math.Round((double)pic.Width, 0);
var h = (int)Math.Round((double)pic.Height, 0);
_writer.Open(dialog.FileName, w, h,25,VideoCodec.MPEG4);
В событии NewFrame объекта videoCaptureDevice Я делаю:
Bitmap b = (Bitmap)eventArgs.Frame.Clone();
if (recording)
{
if (firstFrameTime.HasValue)
{
_writer.WriteVideoFrame(b, DateTime.Now - firstFrameTime.Value);
}
else
{
_writer.WriteVideoFrame(b);
firstFrameTime = DateTime.Now;
}
}
Я также пробовал
_writer.WriteVideoFrame((Bitmap)eventArgs.Frame.Clone())
и
_writer.WriteVideoFrame(eventArgs.Frame)
, но продолжаю получать исключение: Параметр не действительный
Есть идеи, что я здесь делаю не так?
tnx