首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#:使用aforge.net进行视频压缩

C#:使用aforge.net进行视频压缩
EN

Stack Overflow用户
提问于 2013-05-20 21:25:48
回答 1查看 3.9K关注 0票数 4

我的应用程序从外部设备接收速率为30fps的图像序列(BitmapImage)。我使用Aforge.net库将接收到的流保存到.avi文件中。我使用了以下代码来初始化AVIWriter:

代码语言:javascript
复制
AVIWriter writer;
writer = new AVIWriter("wmv3");
writer.FrameRate = 30;
writer.Open("test.avi", 320, 240);

对于接收到的每一帧,我将其添加到视频流中,代码行如下:

代码语言:javascript
复制
writer.AddFrame(ResizeBitmap(BitmapImage2Bitmap(e.ColorFrame.BitmapImage),320,240));

但是生成的文件太重了。(10秒相当于大约3Mb)。

我也试着设置低水平的writer.Quality,但结果似乎是一样的(只减少了5-7% )。

所以,我需要一个更有效的压缩。

Aforge.net支持哪些压缩?为了减轻保存文件的重量,我应该使用什么压缩方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 23:25:58

我怀疑AVIWriter中没有使用帧间压缩(但我可能是错的)。您可以尝试使用Aforge.Video.FFMPEG中的VideoFileWriter:

代码语言:javascript
复制
var writer = new VideoFileWriter();
writer.Open("test.mpg", 320, 240, 30, VideoCodec.Default, 1000);
// add your frame
writer.WriteVideoFrame(frame);

记住将AForge压缩包中外部变量/ffmpeg/bin中的dll放到输出目录中。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16650589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档