将png图像转换为视频

时间:2016-06-21 22:28:47

标签: c# windows video-processing aforge

我试图将给定目录中的所有png图像转换为avi文件但我的内存不足。我现在目录中没有超过20张图片,一台4GB的RAM。但我仍然得到这个错误。我错过了什么?

这是我目前的代码:

var item = (Invitation)e.ClickedItem;
this.Frame.Navigate(typeof(MainPage), item.Id);

2 个答案:

答案 0 :(得分:2)

在aForget.net论坛上,它说需要处理位图。

访问:http://www.aforgenet.com/forum/viewtopic.php?f=2&t=2912

using (var frame = BitmapImage2Bitmap(e.ColorFrame.BitmapImage))
    using (var thumb = ResizeBitmap(frame, 320, 240))
    {
         writer.WriteVideoFrame(thumb);
    }
}

尝试:

using (var writer = new VideoFileWriter())
{
    // create new video file
    writer.Open(Path.Combine(dest_path, "output.avi"), width, height, frameRate, VideoCodec.Raw);

    foreach (string file in Directory.EnumerateFiles(dest_path))
    {
        using(var img = (Bitmap) Image.FromFile(file)) {
            writer.WriteVideoFrame(img);
        }
    }
    writer.Close();
}

答案 1 :(得分:1)

Directory.EnumerateFiles是延迟评估的。您正在将源视频所在的文件夹中的视频文件写入。这意味着您的输出文件也将被枚举。这将导致视频文件传递给图像加载器。

尝试通过扩展名输出到不同的文件夹或过滤文件。