本文记录SDL播放视频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D,这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。因为SDL的编写目的就是简化视音频播放的开发难度,所以使用SDL播放视频(YUV/RGB)和音频(PCM)数据非常的容易。下文记录...
分类:
其他好文 时间:
2014-10-29 02:02:02
阅读次数:
342
本文记录OpenGL播放视频的技术。上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式。但是那还不是OpenGL显示视频技术的精髓。和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture)。本文介绍OpenGL通过纹理的方式显示视频的技术。 OpenGL中纹理和Direct3D纹理的不同OpenGL中的纹理的坐标和Direct3D中的坐标是不一样的。在Dir...
分类:
其他好文 时间:
2014-10-28 00:48:14
阅读次数:
216
我们如果是在在RGB视频上画图(直线,矩形等),一般采用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,但是我们知道用RGB显示视频都是使用GDI进行渲染,这样很耗CPU,那么我们能不能在YUV上进行视频渲染呢,答案是肯定的,使用ddraw直接显示yuv就ok了,可以...
分类:
其他好文 时间:
2014-10-28 00:42:38
阅读次数:
340
原因是:DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应...
分类:
其他好文 时间:
2014-10-28 00:25:39
阅读次数:
242
本文记录OpenGL播放视频的技术。OpenGL是一个和Direct3D同一层面的技术。相比于Direct3D,OpenGL具有跨平台的优势。尽管在游戏领域,DirectX的影响力已渐渐超越OpenGL并被大多数PC游戏开发商所采用,但在专业高端绘图领域,OpenGL因为色彩准确,仍然是不能被取代的主角。OpenGL简介从网上搜集了一些有关OpenGL简介方面的知识,在这里列出来。开放图形库(英语...
分类:
其他好文 时间:
2014-10-27 12:43:47
阅读次数:
201
最近工作,有个需求需要将YUV的整个文件读入内存,然后处理这些YUV数据,一种比较有效的方法如下:#include #include int main (){ FILE * pFile; long lSize; char * buffer; size_t result; ...
分类:
其他好文 时间:
2014-10-26 21:11:17
阅读次数:
175
()高斯理论简介()()代码实现四 使用高斯滤波器进行图像的平滑()高斯简介http://www.zwbk.org/MyLemmaShow.aspx?lid=126233 中文百科独特解释http://academic.mu.edu/phys/matthysd/web226/Lab02.htmhtt...
分类:
其他好文 时间:
2014-10-22 06:23:46
阅读次数:
282
上一篇中,我是用一个RGB格式的纹理来存储每一帧的画面,其中纹理为m_FrameWidth * m_FrameHeight大小,这样,在内存中,就必须要先对YUV的数据进行排序,然后才能当做RGB的数据格式传给纹理内存。我们发现对一个很大帧的图片进行数据重新排序会花费很多时间,为了减少这个时间,当....
分类:
其他好文 时间:
2014-10-22 06:21:17
阅读次数:
324
YUV格式解析1(播放器——project2)根据板卡api设计实现yuv420格式的视频播放器打开*.mp4;*.264类型的文件,实现其播放。使用的视频格式是YUV420格式YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组中,通常是几个...
分类:
其他好文 时间:
2014-10-22 06:19:14
阅读次数:
321
上一篇文章记录了GDI播放视频的技术。打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术。Direct3D应该Windows下最常用的播放视频的技术。实际上视频播放只是Direct3D的“副业”,它主要用于3D游戏制作。当前主流的游戏几乎都是使用Direct3D制作的,例如《地下城与勇士》,《穿越火线》,《英雄联盟》,《魔兽世界》,《QQ飞车》等等。使用Direct3D可以用两种...
分类:
其他好文 时间:
2014-10-21 01:04:51
阅读次数:
359