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

youyifirst 2014-09-04 02:22:44
报的错误是:“AForge.Video.VideoException”类型的未经处理的异常在 AForge.Video.VFW.dll 中发生
其他信息: Failed creating compressed stream

代码就几句
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,但加上压缩代码就报错,知道的麻烦高度下
...全文
279 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
haozaiba 2016-05-19
  • 打赏
  • 举报
回复
我想想问视频压缩编码库怎么装上?拿到那个exe怎么用?
latermarch 2015-04-28
  • 打赏
  • 举报
回复
我想问下,xvoid那个exe文件,安装后,怎么使用啊, AVIWriter aviWriter = new AVIWriter("MPG4");加了“MPG4”后运行还是出错
mjp1234airen4385 2014-09-12
  • 打赏
  • 举报
回复
引用 11 楼 youyifirst 的回复:
[quote=引用 8 楼 mjp1234airen4385 的回复:] 压缩,要有对应的压缩编码库。 你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。
果然是这个原因,下一个xvoid就可以了,谢谢[/quote] 应该是Xvid。
youyifirst 2014-09-12
  • 打赏
  • 举报
回复
引用 8 楼 mjp1234airen4385 的回复:
压缩,要有对应的压缩编码库。 你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。
果然是这个原因,下一个xvoid就可以了,谢谢
youyifirst 2014-09-10
  • 打赏
  • 举报
回复
引用 8 楼 mjp1234airen4385 的回复:
压缩,要有对应的压缩编码库。 你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。
好像是这个原因啊,谢谢哈,我找找看
youyifirst 2014-09-10
  • 打赏
  • 举报
回复
我把源码传上去了,知道的麻烦看下啊 链接: http://pan.baidu.com/s/1c0vlcuW 密码: 2pvg
mjp1234airen4385 2014-09-10
  • 打赏
  • 举报
回复
压缩,要有对应的压缩编码库。 你的系统里也许就没有安装压缩编码库,你直接调用压缩编码当然是出错了。
youyifirst 2014-09-10
  • 打赏
  • 举报
回复
引用 4 楼 yuwenge 的回复:
直接用ffmpeg压压就好了。
那个可能没用,因为我是要把功能做到项目里面的,不能引入外部exe
youyifirst 2014-09-10
  • 打赏
  • 举报
回复
引用 4 楼 yuwenge 的回复:
直接用ffmpeg压压就好了。
那个怎么压啊?有没有相关资料啊?
youyifirst 2014-09-10
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
先换成MPG4试试 然后WMV大写试试,有可能小写不认识
试了,还是报那个错误啊
卧_槽 2014-09-05
  • 打赏
  • 举报
回复
直接用ffmpeg压压就好了。
於黾 2014-09-05
  • 打赏
  • 举报
回复
先换成MPG4试试 然后WMV大写试试,有可能小写不认识
youyifirst 2014-09-05
  • 打赏
  • 举报
回复
我是参考那个教程帖写的,若要压缩,请参考以下网站 http://www.fourcc.org/codecs.php 选择要压缩的格式编码
於黾 2014-09-04
  • 打赏
  • 举报
回复
AVIWriter avi = new AVIWriter("wmv3"); 这是什么格式,没见过,不是应该wmv么 你不敢跟例子一样,用 AVIWriter aviWriter = new AVIWriter("MPG4");??? 非要自己创造一种格式出来

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧