渲染解码帧的最佳方法是什么?

时间:2019-04-16 04:01:26

标签: c# ffmpeg bitmap decode

解码并到达一帧后,我需要知道渲染它的最佳方法。我为此目的使用位图,但是每次必须创建一个新的位图时,每一帧都需要一个位图。也许这不是最佳方法,因为会消耗大量内存,并且重建位图可能需要一些时间。为了澄清,我给出代码:

ret = FFmpegInvoke.sws_scale(
    convertContext,
    &frame->data_0,
    frame->linesize,
    0,
    frame->height,
    &convertedFrame->data_0,
    convertedFrame->linesize);
Debug.Assert(ret >= 0);
var bmp = new Bitmap(dest_width, dest_height,
    convertedFrame->linesize[0], PixelFormat.Format32bppPArgb,
    new IntPtr(convertedFrame->data_0));
pictureBox1.Image = bmp;

我已经在窗体中添加了图片框控件。我根据每个经过解码和转换的帧的数据创建一个位图,然后将图片框的图像设置为该位图。 找到最佳方法,并知道我是否做得正确之后,我需要知道为什么我在表单中放入的后台工作者有问题。显然并发访问位图对象会导致异常。没关系,首先我需要确保这一点。

0 个答案:

没有答案