使用WriteableBitmap渲染视频会导致不稳定的动画

时间:2015-08-31 19:57:44

标签: wpf writeablebitmap

所以这是我的设置:

  • 相机图片以1920x1080 @ 25 FPS
  • 进入
  • 在UI线程上将图像数据写入WriteableBitmap(简单复制,无处理)
  • 两个不同监视器上两个不同窗口中的两个Image控件的Source属性设置为WriteableBitmap
  • 一些通用的UI内容覆盖了相机图像

这很好用,在旧笔记本电脑上使用大约4%的CPU(8个逻辑处理器)。视频尽可能顺畅。但是,我的UI有一些动画(东西四处移动)。当相机显示器运行时,这些动画会变得不连贯。

现在,相机图像采用Gray8格式,因此会被转换(我猜是在调用WritePixels时?)。我也尝试将其中一个动画强制为25 FPS,没有变化。

我应该从哪里开始解决这个问题?问题是我将位图锁定的时间过长,还是还有其他事情发生?从我所看到的锁定位图将导致渲染线程阻塞,所以将其移动到另一个线程似乎毫无意义。它确实感觉有点违背了{​​{1}}的目的。

1 个答案:

答案 0 :(得分:0)

这总是很棘手,因为你在25FPS时捕获,而WPF试图在60时更新。如果没有看到可测试的项目,很难提供任何有意义的建议,但我可能很难首先在CompositionTarget.Rendering handler进行更新。