gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:53:23 27 4
gpt4 key购买 nike

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

AVIWriter writer;
writer = new AVIWriter("wmv3");
writer.FrameRate = 30;
writer.Open("test.avi", 320, 240);

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

writer.AddFrame(ResizeBitmap(BitmapImage2Bitmap(e.ColorFrame.BitmapImage),320,240));

但是生成的文件太重了。 (10 秒对应约 3Mb)。

我也尝试过将 writer.Quality 设置得较低,但结果似乎是一样的(只降低了 5-7%)。

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

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

最佳答案

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

var writer = new VideoFileWriter();
writer.Open("test.mpg", 320, 240, 30, VideoCodec.Default, 1000);
// add your frame
writer.WriteVideoFrame(frame);

请记住将 AForge zip 中的 Externals/ffmpeg/bin 中的 dll 放入您的输出目录。

关于C#:使用 aforge.net 进行视频压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16650589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com