写了一个图片导成avi的程序,用的是aforge的dll,在压缩那里报错了

.Net技术 码拜 9年前 (2015-05-10) 1344次浏览 0个评论
 

报的错误是:“AForge.Video.VideoException”类型的未经处理的异常在 AForge.Video.VFW.dll 中发生 
其他信息: Failed creating compressed stream
写了一个图片导成avi的程序,用的是aforge的dll,在压缩那里报错了
代码就几句

using System;
using System.Collections.Generic;
//using System.Linq;
//using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Drawing.Imaging;
using System.Collections;
using WindowsFormsApplication2;
using System.IO;
using AForge.Video.VFW;

namespace WindowsFormsApplication2
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            DirectoryInfo dir = new DirectoryInfo(@"D:\Image");
            DirectoryInfo[] listdir = dir.GetDirectories();
            FileInfo[] listfile = dir.GetFiles();

            AVIWriter avi = new AVIWriter("wmv3");
            //AVIWriter avi = new AVIWriter();
            qavi.Open(@"d:"+System.DateTime.Now.ToString("yyyyMMMddhhmmss")+".avi", 358, 472);

            foreach (FileInfo s in listfile)
            {
                //获得图像
                Bitmap img = new Bitmap(@"D:\Image" + s.Name);
                //载入图像
                avi.AddFrame(img);
            }
            ////释放资源
            avi.Close();
        }
    }
    
}

这个是我参考的网站:http://blog.csdn.net/halen0820/article/details/6897144
http://www.verydemo.com/demo_c116_i10097.html

关键代码是这个:AVIWriter avi = new AVIWriter(“wmv3”);为什么不能用压缩呢?
148M的图片不压缩的话出来有800+M,但加上压缩代码就报错,知道的麻烦高度下

AVIWriter avi = new AVIWriter(“wmv3”);
这是什么格式,没见过,不是应该wmv么

你不敢跟例子一样,用
AVIWriter aviWriter = new AVIWriter(“MPG4”);???
非要自己创造一种格式出来

我是参考那个教程帖写的,若要压缩,请参考以下网站 http://www.fourcc.org/codecs.php 选择要压缩的格式编码

先换成MPG4试试
然后WMV大写试试,有可能小写不认识
直接用ffmpeg压压就好了。
引用 3 楼 Z65443344 的回复:

先换成MPG4试试
然后WMV大写试试,有可能小写不认识

试了,还是报那个错误啊

引用 4 楼 yuwenge 的回复:

直接用ffmpeg压压就好了。

那个怎么压啊?有没有相关资料啊?

引用 4 楼 yuwenge 的回复:

直接用ffmpeg压压就好了。

那个可能没用,因为我是要把功能做到项目里面的,不能引入外部exe

40分
压缩,要有对应的压缩编码库。
你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。
我把源码传上去了,知道的麻烦看下啊
链接: http://pan.baidu.com/s/1c0vlcuW 密码: 2pvg
引用 8 楼 mjp1234airen4385 的回复:

压缩,要有对应的压缩编码库。
你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。

好像是这个原因啊,谢谢哈,我找找看

引用 8 楼 mjp1234airen4385 的回复:

压缩,要有对应的压缩编码库。
你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。

果然是这个原因,下一个xvoid就可以了,谢谢

引用 11 楼 youyifirst 的回复:
Quote: 引用 8 楼 mjp1234airen4385 的回复:

压缩,要有对应的压缩编码库。
你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。

果然是这个原因,下一个xvoid就可以了,谢谢

应该是Xvid。

我想问下,xvoid那个exe文件,安装后,怎么使用啊,      AVIWriter aviWriter = new AVIWriter(“MPG4”);加了“MPG4”后运行还是出错

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明写了一个图片导成avi的程序,用的是aforge的dll,在压缩那里报错了
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!