c# - 渲染解码帧的最佳方法是什么?
问题描述
在解码并到达一帧之后,我需要知道渲染它的最佳方法。为此,我使用位图,但每次我必须创建一个新位图,每帧一个。也许这不是最好的方法,因为会消耗大量内存并且重建位图可能需要时间。为了澄清,我给出代码:
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;
我在表单中添加了一个图片框控件。我从每个解码和转换的帧数据创建一个位图,然后将图片框的图像设置为位图。在找到最佳方法并知道我是否做得正确之后,我需要知道为什么我在表单中输入的后台工作人员有问题。显然,对位图对象的并发访问会导致异常。没关系,首先我需要确定这个。
解决方案
推荐阅读
- django - 在 Django 中,创建新子实例时我无法通过 url 传递 pk 值
- laravel - VSCode 如何安装 Laravel 代码补全?
- html - 访问 Chrome 扩展 HTML 中的用户数
- c++ - 查找矩阵C++中每一列和每一行的最小和最大元素
- javascript - 如何正确解析 JSON 对象数组?
- r - 时间序列模型中反正弦函数的值
- reactjs - Webpack 不为 Kotlin 多平台 React-JS 应用程序提供服务
- assembly - LSL but updating right bits with 1 rather than 0
- python-3.7 - os.walk() 没有抛出任何错误,也没有在 python 中抛出结果
- php - 如何在保持相同键的多个数组中更新数组