AForge FileVideoSource类视频文件问题

时间:2016-10-12 07:28:37

标签: c# aforge

我在AForge nuget中遇到FileVideoSource类的问题。 我目前能够从笔记本电脑摄像头捕捉视觉并检测其上的运动。 现在我想做同样的事情,但是使用文件中的视频,但我甚至无法访问视频并显示它。

我有以下代码:

...
private void button1_Click(object sender, EventArgs e)
{
   // var existTest = File.Exists("test.avi");
   var videoFile = new FileVideoSource("test.avi");
   videoFile.NewFrame += new NewFrameEventHandler(video_NewFrame);
   videoFile.Start();
}

private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
   var img = eventArgs.Frame;
   pictureBox1.Image = img;
}

调试后我确保自己找到了文件(用File.Exists()方法检查),但之后几乎没有发生任何事情。我试图在video_NewFrame FrameEventHandler中设置断点,但它永远不会到达。

我还尝试过.mpg文件而不是.avi。同样的情况。我可以用WMP播放这两个视频文件,所以我认为这不是编解码器问题。两个视频文件都存储在我的输出Debug文件夹中。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。原来,编解码器是罪魁祸首。尝试从https://www.codecguide.com/download_k-lite_codec_pack_mega.htm

下载它们

我的第一步(不是很第一步)是捕获视频错误:

fileVideo.VideoSourceError += new VideoSourceErrorEventHandler(videoSource_Error);

        private void videoSource_Error(object sender, VideoSourceErrorEventArgs eventArgs)
        {
            Console.WriteLine(eventArgs.Description);
        }

我收到“在给定的源中找不到可接受的输出视频引​​脚”,然后安装了编解码器,现在正在播放视频。