如何在OpenGL中渲染多个视频

程序使用win32开发,视频使用ffmpeg进行帧的截取,然后贴到OpenGL纹理中,渲染一个视频的话不用使用到多线程,处理能力足够快,但是现在需要渲染多个视频,不可能在主线程完成,两三个视频基本上窗口就卡死了。后来改用多线程,建立了两个OpenGL的上下文环境,一个线程负责更新纹理,主线程负责渲染,但是更新纹理的线程依然是照着视频一个个照顺序截,截完再通知主线程画出来,本来以为这样的结构应该没问题,结果渲染速度依然达不到要求,现在想问问有什么办法做到各个视频同步渲染呢,就是说视频的渲染是独立的。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenGL在MFC中的使用总结(三)——离屏渲染
有些时候直接创建OpenGL窗口不适合,或者根本不允许再创建窗口,就像我现在的这个项目,创建的窗口显示不出来,被主框架限定,而我只能在ActiveX控件的子类里做一些相关工作,那只能用到OpenGL的离屏渲染技术了~即不直接绘制到窗口上,而是绘制到一张位图上,然后再次调用这张位图实现后续的工作。 下面就总结怎么使用所谓的“离屏渲染”。 const int WIDTH = 500;
Android OpenGL渲染双视频
前言想做的有很多,奈何能力实在有限,所以只能一步一步来,将自己做出来的尽量用简单易懂的语言描述出来,希望自己总结的对阅读这篇文章的同学有所帮助。在上一篇文章中讲述了怎样在GLSurfaceView上预览Camera的视频数据,在本章中打算实现一个类似微信视频通话的效果,微信视频通话主要有大小两个视频数据渲染(自己的视频和对端的视频),手指点击小视频,可以切换大视频和小视频的位置,可以拖动小视频。第一
用jni实现基于opengl的yuv格式的视频渲染
由于最近接了一个xi
OpenGL ES总结(四)OpenGL 渲染视频画面
渲染视频和图片不同,视频需要不断地刷新,每当有新的一帧来时,我们都应该更新纹理,然后重新绘制。我们使用SurfaceTexture来设置MediaPlayer的setSurface.创建一个纹理视频的每一帧都可以看成图片,也就是要不断的更新纹理主要的原因是,MediaPlayer的输出往往不是RGB格式(一般是YUV),而GLSurfaceView需要RGB格式才能正常显示,另外,获取每一帧的数据并没有
视频学习笔记:Android OpenGL渲染YUV420P图像
背景Android 开发中,当得到一张yuv图需要显示时,之前的做法是利用ffmpeg自带的方法将其转换为RGB565或者RGBA,然后将RGB数据拷贝到aNativeWindow的图像缓冲区,达到显示的目的。这样做比较耗CPU, 最近在阅读ijkplayer源码时,整理了一下OpenGL直接渲染YUV420P相关流程,参考网上一些代码,总结了一个最简单的小例子。例子下载地址 http://dow
视频实时OpenGL渲染并保存渲染结果合成MP4
这是一个能实时播放多个视频、图片在一个GL容器里的控件,通过这个控件,可以在一个view中绘制固定坐标、自由随机滚动的视频和图片,然后从该view中截取数据帧,实时保存成YUV格式的文件,最后合成MP4。
opengl 如何渲染视频流
opengl 如何渲染视频流. void render(void)    {  DWORD wait_result = dsvl_vs->WaitForNextSample(100/60);  //if(wait_result == WAIT_OBJECT_0)  {   #ifdef _DEBUG   frame_counter++;   #endif      //dsvl
OPenGL 文字渲染
https://learnopengl-cn.readthedocs.io/zh/latest/06%20In%20Practice/02%20Text%20Rendering/ 文字渲染 原文 Text Rendering 作者 JoeyDeVries 翻译 Geequlim 校对 gjy_
iOS中OpenGL-ES渲染YUV视频
OpenGL播放yuv视频(http://www.cocoachina.com/bbs/read.php?tid=100908) 在iOS上使用OpenGL ES渲染YUV (http://blog.csdn.net/cpluser/article/details/41720431)  最简单的视音频播放示例5:OpenGL播放RGB/YUV (http://blog.csdn.net/lei
openGL ES进阶教程(四)用openGL ES+MediaPlayer 渲染播放视频+滤镜效果
之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频 ,今天再给大家来一篇openGL ES+MediaPlayer来播放视频。。。。当年也曾呆过camera开发组近一年时间,可惜那时候没写博客的意识,没能给自己给大家留下多少干货分享。。。上个效果图吧:用openGL着色器实现黑白(灰度图)效果
camera2 opengl实现滤镜效果录制视频 二 双SurfaceView渲染
上一篇用到了EGLUtils这个类,initEGL函数有个EGLContext参数,这篇将用到 public void initEGL(EGLContext eglContext, Surface surface) 双SurfaceView渲染其实很简单,只要两个线程,个跑个的的就OK了 不过有时候会有特殊需求比如
基于 qt 的 Opengl 渲染 YUV
运行环境:Ubuntu 14.04、Qt 5.6.1 qt opengl 渲染 显示 yuv yv12 nv12
openGL ES进阶教程(五)制作一个简单的VR播放器,播放全景视频
之前写过全景(VR)图片,和用openGL ES+MediaPlayer 渲染播放视频+滤镜效果这一篇就在之前的基础上实现一个最简单的VR播放器,播放全景视频。概述:全景视频是一种用3D摄像机进行全方位360度进行拍摄的视频,用户在观看视频的时候,可以随意调节视频上下左右进行观看。展示:“身临其境的枪战” 可见晃动手机,视图也跟着转! 原理:1.用OpenGL绘制一个球。 2.MediaPl
基于Surface的视频编解码与OpenGL ES渲染
1. 概述这篇文章所做的事情是这样的: 1. 从一个.mp4文件中解码视频流到surface上 2. 利用OpenGL ES渲染改变视频流中每一帧的内容 3. 将改变后的视频流重新编码输出到一个新的.mp4文件所有代码可在此处下载:https://github.com/GH-HOME/DecodeEncodeMP42. 数据流图像的数据流按照以下方式传递。 3. 工作流1. 初始化Media
利用Qt + OpenGL 渲染 YUV数据,播放视频 mac版
最近利用Qt渲染YUV数据,折腾了很久,最开始使用FFmpeg将YUV数据转换成RGB数据后在用qt绘制,很快得到了成功,但是cpu占用率太大,最后放弃了。 在这先感谢来自文章http://blog.csdn.net/su_vast/article/details/52214642的作者,使用他的代码我实现了Windows上的YUV数据渲染。但是移植到mac上渲染不出来,经过折腾及对OpenGL
VS2012下基于Glut OpenGL GL_QUAD_STRIP示例程序:
OpenGL连续点通过GL_QUAD_STRIP生成四边形规则如下图所示: 演示程序效果如下图所示: 源代码如下所示: // GlutQuadStripDemo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include //圆周率宏 #define GL_PI 3.1415f //获取屏幕的宽度 GLint
Android使用MediaCodec解码视频并用OpenGL ES进行渲染的思路
in Android 4.1 (API 16) and above, MediaCodec is introduced by Android. By using MediaCodec, we can easily decode video without using Android NDK, like creating video playback application, etc. In ga
OpenGL3.0教程 第十四课:渲染到纹理
作者:  时间: April 10, 2014  分类: OpenGL ES OpenGL3.0教程 原文链接:http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-12-opengl-extensions/ 原译文链接:https://github.com/cybercser/OpenGL_3_3_
qt 使用opengl显示yuv实时视频流
    我使用的是ffmpeg拉取实时流,并解码为yuv420p。然后用opengl转成rgb32渲染到qt中显示。用ffmpeg解码实时流和网上一样。参考:https://blog.csdn.net/su_vast/article/details/52214642 进行修改和增加。 av_register_all(); avformat_network_init(); AV...
qt采用opengl显示yuv视频数据
作者:  使徒保罗 邮箱:  297329588szh@163.com 声明:  欢迎交流学习,如有任何疑问,请通过邮箱联系本人 应用场景:qt opengl渲染yuv420p数据 开发环境:win7 64位 qt-opensource-windows-x86-msvc2010-5.5.1.exe(即qt5.5.1 32位版本) 功能:      下面的核心代码都有详细注释,学术名词不清
yuv视频用opengl播放
// openGL_yuv.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #include "GL/glew.h" #include "GL/freeglut.h" #pragma
windows下用OPENGL播放视频
1.下载  http://glew.sourceforge.net/  微软自带的OPENGL32.DLL gl.h 太老了,好久没更新了 2.OPENGL 标准定义了基本的渲染API ,还定义了窗口系统的API ,WINDOWS 用wgl**,定义在 wingdi.h 3.本代码采用OPENGL 1.2 支持顶点着色 头文件 #pragma once #include "vi
GLSurfaceView - 最简单的jni OpenGL ES渲染
jni android OpenGL ES GLSurfaceView 最简单 渲染
opengl 视频纹理处理
使用OpenGL实现纹理播放视频技术,源代码,经调试后,可以直接运行
GPUImage中是如果保存OpenGL渲染后的视频的
http://blog.csdn.net/lvmaker/article/details/51508121 照片时间,是我个人开发的一款显示照片拍摄时间的应用,实用、免费、体积小。  http://itunes.apple.com/app/id571238224 最近做一个视频处理的项目(Rokk!),需要将opengl渲染后的特效保存为视频,由于使用了第三方库,所以不能直接
OpenGL ES 学习教程(十四) 帧缓冲区对象(FBO) 实现渲染到纹理(Render To Texture/RTT)
一般情况下,我们只需要系统提供的帧缓冲区作为绘图表面,但是又有些特殊情况,比如阴影贴图、动态反射、处理后特效等需要渲染到纹理(Render To Texture/RTT)操作的,如果使用系统提供的帧缓冲区,效率会比较低下。
【OpenGL】图片的像素和分辨率
文/刘付罗金20120912 图片的像素和分辨率  对于像素和分辨率这两个词,主要见于图片和显示设备上。只要你用到手机里的照相功能,你都要接触到这两个概念。只是大多数人都是一知半解,而更多的人却根本就不知道,白白浪费了手机里500万、800万像素的摄影头,却不知道如何调节使用。  像素是组成图象的最基本单元要素:点。分辨率是指在长和宽的两个方向上各拥有的像素个数。一个像素有多大呢?主
iOS中OpenGL是如何将帧缓冲(frameBuffer)渲染到屏幕上的? OpenGL iOS端渲染流程
iOS中OpenGL是如何将帧缓冲(frameBuffer)渲染到屏幕上的? 对于iOS平台当使用 CAEAGLLayer 来显示OpenGL最终的渲染内容时, OpenGL的内容时如何显示到屏幕上的? iOS如何使用Core Animation层绘制OpenGL ES内容?既通过CAEAGLLayer来显示OpenGL的内容 而不是通过类GLKViewController和GL
OpenGL着色器与Phong光照明模型
Phong光照明模型以及其实现
在iOS上使用OpenGL ES渲染YUV
转自:http://blog.csdn.net/cpluser/article/details/41720431 1)创建OpenGL context [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; 2)layer设置成不透明 _eaglLayer = (CAEAGLLayer*) self.lay
学习笔记1--在Qt5中利用OpenGL渲染一个立方体
上文介绍了如何在Qt5中嵌入一个widget来作为OpenGL的渲染窗口,本文将在上文的基础上再嵌入的OpenGL部件中进行简单的渲染,本例打算绘制一个彩色的立方体;在接下来的介绍中,我不打算介绍OpenGL和Qt的知识,假设读者有所了解,如果想详细学习OpenGL的知识,我推荐如下链接:https://learnopengl-cn.github.io/ 步骤: (1) 创建用来存放着色器、V
Android OpenGL离屏渲染
TODO
最简单的视音频播放示例5:OpenGL播放RGB/YUV
本文记录OpenGL播放视频的技术。OpenGL是一个和Direct3D同一层面的技术。相比于Direct3D,OpenGL具有跨平台的优势。尽管在游戏领域,DirectX的影响力已渐渐超越OpenGL并被大多数PC游戏开发商所采用,但在专业高端绘图领域,OpenGL因为色彩准确,仍然是不能被取代的主角。OpenGL简介从网上搜集了一些有关OpenGL简介方面的知识,在这里列出来。开放图形库(英语
虚幻4 渲染模块在哪里
\Engine\Source\Runtime\ 下有很多模块的代码。 RHI模块: \Engine\Source\Runtime\RHI 基类,D3D、OpenGL、Metal 的类都继承自RHI模块。 D3D11&D3D12: \Engine\Source\Runtime\Windows\ OpenGL: \Engine\Source\Runtime\OpenGL
最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)
本文记录OpenGL播放视频的技术。上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式。但是那还不是OpenGL显示视频技术的精髓。和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture)。本文介绍OpenGL通过纹理的方式显示视频的技术。 OpenGL中纹理和Direct3D纹理的不同OpenGL中的纹理的坐标和Direct3D中的坐标是不一样的。在Dir
终于搞定Direct3D中视频播放
     弄了好长一段时间,今天终于把自己录的测试视频在Direct3D中显示出来,发个图留念。     翻了好久DirectShow的Sample例子Texture3D9,还有就是看参考书>,实现过程中,发现自己需要的效果与书中讲的有些区别,中间在找一些测试方法,比如,把视频渲染出的结果先存在图片中,看DirectShow出来的结果对不对。这部分一开始还去找一些tga之类的无损压缩的图片格式
iOS中滤镜的使用(三)OpenGLES渲染
iOS中滤镜的使用(三)OpenGLES渲染首先,Open Graphics Library(OpenGL)用于二维和三维的可视化。而OpenGL for Embedded Systems(OpenGL ES)是OpenGL的一个简化版本,消除冗余的功能并提供一个库,非常容易学习,在移动装置上应用实践容易。 它直接运行的图形处理硬件上,也就是GPU,并不运行在CPU上,因此,对CPU的消耗非常的小
OpenGL 顶点数组与缓冲区对象进行渲染(含纹理贴图)
顶点数组可以有效地解决渲染过程中的数据冗余以及大量的tian
深度剖析OpenGL ES中的多线程和多窗口渲染技术
移动设备中的CPU和GPU已经变得很强大,到处都是配备一个或多个高分辨率屏幕的设备,需要使用带有图形驱动器的复杂交互也日益增加。在这篇博客文章中,我将讨论多线程和多窗口渲染对开发人员来讲意味着什么,同时我将介绍将这些技术应用您设计当中的条件和时机。 什么是多线程渲染? 传统上,OpenGL ES应用程序只从一个线程渲染到一个图层。然而,由于3D渲染引擎的复杂性有所增加,图形API操作的CP
Android opengl渲染yuv420例子
Android下使用OpenGL渲染yuv420p图像并显示。例子中提供了两种类型,一种使用GLSurfaceView在onDrawframe中调用native方法绘制,另外一种使用EGL,直接在native层完成渲染和显示功能。
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 如何在网页制作中插入视频 如何在网页制作中加入视频