当前位置: 代码迷 >> VB Dotnet >> 在视频上画图,该怎么处理
  详细解决方案

在视频上画图,该怎么处理

热度:83   发布时间:2016-04-25 02:16:06.0
在视频上画图
有一个函数,视频的帧走一下就调用一下, 这个函数的目的是在每一帧上画图:
void Player_OnNewFrame(sender as Object, e as FrameBitmapEventArgs)
{
// draw something
}

draw something 做了很多事情, 因此导致视频播放的时候视频变慢

怎么办???
------解决方案--------------------
引用:
Quote: 引用:

求楼主用的这个player

最近正在搞类似的很需要,谢谢!


visioforge

visioforge.com


可以考虑并行化画图,这样速度会快很多,用parallel类可以很轻松地遍历图像
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

求楼主用的这个player

最近正在搞类似的很需要,谢谢!


visioforge

visioforge.com


可以考虑并行化画图,这样速度会快很多,用parallel类可以很轻松地遍历图像


谢谢

作图已经用了thread了,问题在于:帧是固定的,频率相对而言还是高,因为这一帧过来的时候,必须显示与这一帧所对应的已经画好的图,是这个画图的过程需要的时间太长
我是这样做的:
void Player_OnNewFrame(sender as Object, e as FrameBitmapEventArgs)
{
// draw something      //问题是这里执行的时间太长
repaint()
}

dim threadRepaint
dim needRepaint = false

void repaint()
{
if threadRepaint is nothing
{
//new threadRepaint and start-----(addressof draw())
}
if not threadRepaint is Nothing and threadRepaint is alive
{
needRepaint = true;
}
}

void draw()
{
do
{
needRepaint = false;
//do something
loop until Not needRepaint
}
}

风格有点乱。。。。
那个注释提到“执行时间长”的部分,没办法用thread,因为每一帧必须对应它的图像

目前我们团队没什么好办法。。。。。

不知道你说的用thread和parallel类是不是类似我这样的  如果不是还请指教


如果你是把图拿出来显示这一步的时间太长的话,那我觉得只能换一个控件了

我试过WPF比win32的性能高很多

你也可以换其他的比如SDL这种
  相关解决方案