在视频上画图,该怎么处理
在视频上画图
有一个函数,视频的帧走一下就调用一下, 这个函数的目的是在每一帧上画图:
void Player_OnNewFrame(sender as Object, e as FrameBitmapEventArgs)
{
// draw something
}
draw something 做了很多事情, 因此导致视频播放的时候视频变慢
怎么办???
------解决方案--------------------
可以考虑并行化画图,这样速度会快很多,用parallel类可以很轻松地遍历图像
------解决方案--------------------
如果你是把图拿出来显示这一步的时间太长的话,那我觉得只能换一个控件了
我试过WPF比win32的性能高很多
你也可以换其他的比如SDL这种
有一个函数,视频的帧走一下就调用一下, 这个函数的目的是在每一帧上画图:
void Player_OnNewFrame(sender as Object, e as FrameBitmapEventArgs)
{
// draw something
}
draw something 做了很多事情, 因此导致视频播放的时候视频变慢
怎么办???
------解决方案--------------------
可以考虑并行化画图,这样速度会快很多,用parallel类可以很轻松地遍历图像
------解决方案--------------------
求楼主用的这个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这种