一种基于OpenGL渲染实时视频的方法及系统技术方案

技术编号:13491808 阅读:58 留言:0更新日期:2016-08-07 03:26
本发明专利技术涉及一种基于OpenGL渲染实时视频的方法及系统,其方法包括以下步骤:在GPU的操作系统中利用FFMPEG编写H264数据的解码库;初始化GPU中的YUV窗口的大小;将网络实时传递过来的H264数据在解码库中进行解码,将解码后的H264数据根据宏以及变量进行解压得到YUV数据,并将YUV数据传送至初始化后的YUV窗口中;通过调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据,并根据定义的视频帧在YUV窗口中的宽和高来显示YUV数据对应的视频帧。本发明专利技术降低了CPU的使用率,解决了智能设备发烫问题;同时由于是用OpenGL渲染,渲染一帧的时间比转化图片的时间快很多,所以长时间查看,延时不明显。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种基于OpenGL渲染实时视频的方法及系统,其方法包括以下步骤:在GPU的操作系统中利用FFMPEG编写H264数据的解码库;初始化GPU中的YUV窗口的大小;将网络实时传递过来的H264数据在解码库中进行解码,将解码后的H264数据根据宏以及变量进行解压得到YUV数据,并将YUV数据传送至初始化后的YUV窗口中;通过调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据,并根据定义的视频帧在YUV窗口中的宽和高来显示YUV数据对应的视频帧。本专利技术降低了CPU的使用率,解决了智能设备发烫问题;同时由于是用OpenGL渲染,渲染一帧的时间比转化图片的时间快很多,所以长时间查看,延时不明显。【专利说明】一种基于OpenGL渲染实时视频的方法及系统
本专利技术涉及一种视频渲染方法及系统,具体的涉及一种基于OpenGL渲染实时视频的方法及系统。
技术介绍
智能终端在性能、配置上不断提高,越来越多的人通过智能手机等移动终端随时随地的接入互联网来获取自己想要的信息,传统的基础性移动服务业务已无法满足人们的需求,以文字、图片、音频和视频为主的移动多媒体业务正在迅猛的发展,也必将成为移动互联网的发展趋势。随着宽带的普及,计算机技术的发展,图像处理技术的提高,视频监控正越来越广泛地渗透到教育、政府、娱乐、医疗、酒店、运动等其他各种领域。在智能终端上实时的查看视频监控信息已经成为一种需求。在早期的开发开发中,主要是把一帧数据解析成二进制,再把这个二进制转化成图片,频繁的刷新图片,来达到实时查看视频的目的。这样的话,就会有一个问题,频繁的把二进制转化为图片,是利用的CHJ来实现的,对CPU占有率比较高,时间长了智能设备会非常的热。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于OpenGL渲染实时视频的方法及系统,既能解决(PU的占有率问题,又能解决智能设备发烫的问题。本专利技术解决上述技术问题的技术方案如下:一种基于OpenGL清染实时视频的方法,包括以下步骤:SI,在GPU的操作系统中利用FFMPEG编写H264数据的解码库,并定义操作系统所需的宏以及变量;S2,初始化GPU中的YUV窗口的大小,并定义视频帧在YUV窗口中的宽和高;S3,将网络实时传递过来的H264数据在解码库中进行解码,将解码后的H264数据根据宏以及变量进行解压得到YUV数据,并将YUV数据传送至初始化后的YUV窗口中;S4,通过调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据,并根据定义的视频帧在YUV窗口中的宽和高来显示YUV数据对应的视频帧。本专利技术的有益效果是:本专利技术一种基于OpenGL渲染实时视频的方法通过利用智能设备的GHJ来渲染一帧数据,把收到的和H264数据转换成YUV数据,让后用OpenGL直接渲染,在查看实时视频时,降低了CPU的使用率,解决了智能设备发烫问题;同时由于是用OpenGL渲染,渲染一帧的时间比转化图片的时间快很多,所以长时间查看,延时不明显。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,操作系统所需的宏以及变量包括OpenGL绘图上下文、帧缓冲区、渲染缓冲区、着色器句柄、YUV纹理数组、视频宽度和视频高度。采用上述进一步方案的有益效果是:操作系统所需的宏以及变量作为H264数据解压的规则,可以批量操作,提高解压速度。进一步,所述操作系统为1S系统。进一步,所述操作系统为Android系统。采用上述进一步方案的有益效果是:本专利技术支持1S系统和Android系统,增加其使用的广泛性。进一步,在步骤S4中,调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据时,忽略屏幕显示的清晰度变化和/或网络传输速率的变化对渲染的影响。采用上述进一步方案的有益效果是:忽略屏幕显示的清晰度变化和/或网络传输速率的变化对渲染的影响,可以增加渲染速度,长时间查看,延时不明显。基于上述一种基于OpenGL清染实时视频的方法,本专利技术还提供一种基于OpenGL清染实时视频的系统。 一种基于OpenGL渲染实时视频的系统,包括定义模块、初始化模块、解压模块和渲染模块,所述定义模块,其用于在GPU的操作系统中利用FFMPEG编写H264数据的解码库,并定义操作系统所需的宏以及变量;所述初始化模块,其用于初始化GPU中的YUV窗口的大小,并定义视频帧在YUV窗口中的宽和高;所述解压模块,其用于将网络实时传递过来的H264数据在解码库中进行解码,将解码后的H264数据根据宏以及变量进行解压得到YUV数据,并将YUV数据传送至初始化后的YUV窗口中;所述渲染模块,其用于通过调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据,并根据定义的视频帧在YUV窗口中的宽和高来显示YUV数据对应的视频帧。本专利技术的有益效果是:本专利技术一种基于OpenGL渲染实时视频的系统通过利用智能设备的GHJ来渲染一帧数据,把收到的和H264数据转换成YUV数据,让后用OpenGL直接渲染,在查看实时视频时,降低了CPU的使用率,解决了智能设备发烫问题;同时由于是用OpenGL渲染,渲染一帧的时间比转化图片的时间快很多,所以长时间查看,延时不明显。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,操作系统所需的宏以及变量包括OpenGL绘图上下文、帧缓冲区、渲染缓冲区、着色器句柄、YUV纹理数组、视频宽度和视频高度。采用上述进一步方案的有益效果是:操作系统所需的宏以及变量作为H264数据解压的规则,可以批量操作,提高解压速度。进一步,所述操作系统为1S系统。进一步,所述操作系统为Android系统。采用上述进一步方案的有益效果是:本专利技术支持1S系统和Android系统,增加其使用的广泛性。进一步,在渲染模块中,调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据时,忽略屏幕显示的清晰度变化和/或网络传输速率的变化对渲染的影响。采用上述进一步方案的有益效果是:忽略屏幕显示的清晰度变化和/或网络传输速率的变化对渲染的影响,可以增加渲染速度,长时间查看,延时不明显。【附图说明】图1为本专利技术一种基于OpenGL渲染实时视频的方法的流程图;图2为本专利技术一种基于OpenGL渲染实时视频的系统的结构框图。【具体实施方式】以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,一种基于0penGL(0pen Graphics Library:是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口)渲染实时视频的方法,包括以下步骤:SI,在GPU的操作系统中利用FFMPEG(FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序)编写H264(H264是由ITU-T视频编码专家组和IS0/IEC动态图像专家组联合组成的联合视频组提出的高度压缩数字视频编解码器标准)数据的解码库,并定义操作系统所需的宏以及变量;操作系统所需的宏以及变量包括OpenGL绘图上下文、帧缓冲区、渲染缓冲区、着色器句柄、YUV(YUV是指亮度参量和色度参量分开表示的像素格式)纹理数组、视频宽度和视频高度等。S2,初始化GPU本文档来自技高网
...

【技术保护点】
一种基于OpenGL渲染实时视频的方法,其特征在于,包括以下步骤:S1,在GPU的操作系统中利用FFMPEG编写H264数据的解码库,并定义操作系统所需的宏以及变量;S2,初始化GPU中的YUV窗口的大小,并定义视频帧在YUV窗口中的宽和高;S3,将网络实时传递过来的H264数据在解码库中进行解码,将解码后的H264数据根据宏以及变量进行解压得到YUV数据,并将YUV数据传送至初始化后的YUV窗口中;S4,通过调用OpenGL在屏幕上来渲染初始化后的YUV窗口中的YUV数据,并根据定义的视频帧在YUV窗口中的宽和高来显示YUV数据对应的视频帧。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨虎
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1