EasyPlayer是一个RTSP专属的流媒体播放器,在GitHub上开源大部分源码其主要功能有播放、抓图、录制视频、实时静音/取消静音。
GDI和D3D两种视频渲染方式的区别
EasyPlayer-RTSP windows播放器支持D3D和GDI两种渲染方式。
D3D支持格式如下:
DISPLAY_FORMAT_YV12
DISPLAY_FORMAT_YUY2
DISPLAY_FORMAT_UYVY
DISPLAY_FORMAT_A8R8G8B8
DISPLAY_FORMAT_X8R8G8B8
DISPLAY_FORMAT_RGB565
DISPLAY_FORMAT_RGB555
GDI支持格式如下:
DISPLAY_FORMAT_RGB24_GDI
GDI渲染方式则是我们熟知的采用GDI进行图像绘制,其优势就是通用性强,只要是目前常用的windows操作系统基本上都支持;其劣势就是效率比较低下,也只支持RGB24一种色彩格式显示;
D3D渲染方式则刚好相反,其优势就是效率比较高,支持多种色彩格式进行渲染;劣势就是通用性较差,windows系统必须要支持D3D才可以使用,需要一定的硬件支撑。
GDI渲染格式界面选择如下:
D3D渲染格式界面选择如下:
从界面上可以看出GDI方式的OSD字幕叠加比D3D方式有明显的区别,从EasyPlayer渲染库FFRender的接口可以看出来两种方式虽然呈现方式类似,但是接口是完全不同的,这再渲染方式和OSD叠加的时候都可以看出明显的区别,这些区别再后文OSD叠加讲解的时候也会提到;
二者的性能比较如下:
EasyPlayer拉的同样的流,上图是GDI渲染方式,下图是D3D渲染方式;我们可以看出GDI方式所消耗的CPU和内存资源均比D3D方式要高;
综上所述,使用EasyPlayer选择渲染方式的时候,如果电脑的配置较低选择D3D会占用较低的资源,如果电脑不支持D3D渲染的话也只能选择GDI渲染方式;当然如果机器支持D3D也配置还可以的话两种方式都没有明显的区别。