首页 > 解决方案 > 渲染解码帧的最佳方法是什么?

问题描述

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

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;

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

标签: c#ffmpegbitmapdecode

解决方案


推荐阅读