高手看看,用 双缓冲 能不能消除以下的画面闪烁?一个对话框程序,把接收而来的摄像视频画面播放出来,播放方式是调用摄像机内部封装的API。现在要在这个实时画面上用TextOut或drawtext加上一些视频描述文字。由于画面是一直播放的,所以这些文字闪烁的厉害。我试着用 双缓冲 方式,但因为实时视频画面是不能够画进内存的(或许也能,请高手指点),所以只能够把那些文字画进内存、再贴出来。但这样一来文字贴在视频画面上照样会闪烁。我的问题是:用 双缓冲 的方法,是不是必须把文字连同视频画面一齐画进内存中再贴出来,才能够让文字不闪???

解决方案 »

  1.   

    这个“摄像机内部封装的API” 是什么样子的?如果需要传入一个hdc就好办了,直接给他传你的缓冲dc
      

  2.   

    1楼 摄像机内部的API不能够传hDC我主要想问的是,如果不能够把视频画面一起画到内存dc中,而只用双缓冲把文字画到内存再贴到实时视频上,是不是文字一样会闪烁?????(因为文字是图片而视频不是)
      

  3.   

    不能传hdc的话总要传个什么东西吧,比如窗口句柄什么的,不然他怎么知道往那儿画视频。
    印象中一般摄像头视频其实也就是往dc上画,只是封装好了而已,如果传的是窗口句柄那么你也可以创建一个“缓冲窗口”进去,然后再拿这个缓冲窗口的dc当缓冲dc最好能将封装api的原型贴出来,不然我们猜怎么猜得出来
      

  4.   

    >>在视频上TextOut或drawtext加上一些视频描述文字
    是不是用视频编辑软件对视频进行重新处理比较合适呢,也可以加字幕
    等等
      

  5.   

    楼主貌似不行的
    视频播放一般不通过gdi的 直接操作显存
    所有你通过dc 怕是不行