在c#中怎么样把连续帧的图片数据压缩后转成视频

.Net技术 码拜 4年前 (2016-09-27) 913次浏览
从摄像头采集到的每一帧的图片数据是数组格式的,例如160*90的一帧图片,数据为一个长度为160*90的一维数组,每个元素表示的是图片对应位置的argb颜色数据。
数据采集时发现未经过压缩数据太大了,一分多钟就有1.5g。
现在想做的是:
1.怎么样把每一帧的图片快速保存下来呢?使用了SetPixel,发现效率太低了。
2.想把图片连成视频,是压缩图片后再做成视频,还是做成视频后再压缩呢?
3.边压缩边连成视频能否会占用过多资源?
4.有没有高手推荐下好的方法呀?ffmpeg或是aforge.net可以实现吗
解决方案

20

create a source and install Accord.Video.FFMPEG from nuget library.

20

timer1 = new Timer();
timer1.Interval = 20;
timer1.Tick += timer1_Tick;
vf = new VideoFileWriter();
vf.Open(“Exported_Video.avi”, 800, 600, 25, VideoCodec.MPEG4, 1000000);

20

private void timer1_Tick(object sender, EventArgs e)
{
bp = new Bitmap(800, 600);
gr = Graphics.FromImage(bp);
gr.CopyFromScreen(0, 0, 0, 0, new Size(bp.Width, bp.Height));
pictureBox1.Image = bp;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
vf.WriteVideoFrame(bp);
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在c#中怎么样把连续帧的图片数据压缩后转成视频
喜欢 (1)
[1034331897@qq.com]
分享 (0)