【发布时间】:2020-11-24 12:27:34
【问题描述】:
我正在尝试从我的网络摄像头录制视频。为此,我正在使用 Aforge 和 Accord。
我正在用 Windows 窗体构建它。
视频源和视频作者是:
private AForge.Video.DirectShow.VideoCaptureDevice videoCaptureDevice = null;
private Accord.Video.FFMPEG.VideoFileWriter _writer;
我像这样对作者调用 Open :
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);
在 videoCaptureDevice 的 NewFrame 事件中,我正在做:
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
【问题讨论】:
标签: c# .net winforms aforge accord.net