Android上用OpenGLES来显示YUV图像,之所以这样做,是因为:1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的;2.YUV手动转RGB会占用大量的CPU资源,如果以这样的形式播放视频,手机会很热,所以我们尽量让GPU来做这件事;3.OpenGLES是Android集成到自身框架里的第三方库,它有很多的可取之处。 博主的C/C++不是很好,所以整个过
转载 2024-01-03 06:44:33
51阅读
  先放demo源码地址:https://github.com/xxxzhou/aoce 06_mediaplayer  效果图:    主要几个点:用ffmpeg打开rtmp流。使用vulkan Compute shader处理yuv420P/yuv422P数据格式成rgba.初始化android surface为vulkan的交换链,把如上结果复制到交换链上显示。如果是opengle
转载 2023-07-26 22:07:14
494阅读
效果 实现 使用openGL ES 2.0,分别画出三棱锥的4个面(包括底面),分别给4个面涂上纹理。 着色器 顶点着色器: private final String mVertexShaderWithTexture= "attribute vec3 aPosition;\n" +"uniform mat4 uMvp;\n"
转载 9月前
30阅读
由于项目需要把  Camera HAL 层的部分算法移植到 APK 的 native 用 OpenGL ES 增加特效和渲染预览。需要两个步骤:从 APK 传输数据到 native 在 native 层处理相机的 YUV 数据,并使用 OpenGL ES 增加特效和渲染预览。 本代码需要在 android O 源码环境中编译。重点是 OpenGL ES 顶点着色器和片
# Android OpenGL 渲染 YUV 图像 在现代图像处理和显示技术中,YUV格式是一种常用的图像色彩空间,特别是在视频编解码和流媒体传输中。当我们在Android应用中需要渲染YUV格式的图像时,利用OpenGL可以实现高效的渲染效果。本文将介绍如何在Android中使用OpenGL来渲染YUV图像,并提供相应的代码示例。 ## YUV 格式简介 YUV格式将颜色信息分为亮度(Y
原创 8月前
114阅读
我想了解一下上面提到的东西,大体上指什么? DirectX、Vulkan和OpenGL是什么?什么是图形API?_哔哩哔哩图形API:图形化的应用程序编程接口Vulkan和OpenGL都是图形API。OpenGL:开源,跨平台采用了相对较高级别的抽象设计,更易于学习和使用,但增加了额外的驱动开销。OpenGL的函数调用需要经过多个软件层级(应用程序,OpenGL库,驱动程序)的处理,这会
转载 7月前
19阅读
之前写过一篇 Android YUV图像转换算法和检测工具,里面实现YUV420的四种格式的相互转换,和与RGB之间的转换。因为是直接用CPU计算的,所以对CPU有一定的消耗和占用。这里我们用OpenGL实现GPU转换。我们用相机作为YUV420图像输入,上一篇 Android OpenGLES3绘图 - 使用CameraX 中实现了用OpenGL的OES纹理直接显示相机的SurfaceText
转载 2024-01-04 18:21:00
51阅读
OpenGL 3D 效果这一次主要说说3D效果吧,主要是纹理映射、光照和事件、混合颜色。通过上一次的介绍,3D空间创建对象的方法应该没问题啦。但是只有一些基本的集合体和一些颜色组成,大家看起来肯定不爽吧,所以我们可以将纹理映射到立方体上去,可以加上光照效果,也可以在纹理的基础上加上混合,使它看起来具有透明的效果。期待吧。。首先来看看MainActivity, public class MainA
转载 2024-09-01 14:50:31
39阅读
这个播放是通过renderer的方式,iOS版的是通过EAGLContext的方式,总体流程是一样的:需要这么几个步骤:编写shader->编译shader->链成gpu程序(代码中的program)->分别创建yuv纹理对象->找到yuv纹理对象对应的显卡插槽(也就是要给gpu中运行的纹理对象传数据的地址)->给yuv纹理对象绑定数据->绘图。 因此i
转载 2024-04-19 18:35:42
285阅读
楼主收到这样的任务,在Android上用OpenGLES来显示YUV图像,之所以这样做,是因为:1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的;2.YUV手动转RGB会占用大量的CPU资源,如果以这样的形式播放视频,手机会很热,所以我们尽量让GPU来做这件事;3.OpenGLES是Android集成到自身框架里的第三方库,它有很多的可取之处。一、首先我先说一下这个解决方
转载 2024-08-05 21:27:21
15阅读
【ZeloEngine】OpenGL升级VulkanVulkan的资料有很多,这里以GDC2016中nvidia的slide作为讨论的基础Vulkan: the essentialsVulkan - 高性能渲染 - 知乎 // 结果发现是文刀秋二做的talk,这就是大佬把还有一本基础书《Learning Vulkan》这本书和大部分Packt的书一样有一个问题,有很多流水账一样的线性流程代码下文中
转载 2024-02-04 16:39:35
183阅读
渲染导言 在之前的教程中,屏幕上什么也没显示。本教程将说明如何设置你的OpenGL ES窗口开始简单的绘图。如果您使用GLUT|ES, 请咨询 GLUT 如何设置一个OpenGL程序渲染窗口,程序代码是类似的。另外,您可以下载此页面底部的示例源代码 。当我们在屏幕上绘图时我们使用双缓冲区技术。当你绘图时,你会画在后面的缓冲区上,一旦所有的信息都被画好了后,交换缓冲区,然后开始在另一个缓冲
输入是一个正方形vr四棱锥变换后的视频,目的是手机上反映射播放全景视频。app的demo基于native-media进行改动,因为大部分都是针对opengl ES的改动,所以主要修改文件为MyGLSurfaceView.java。其他改动都是些界面或者按钮的改动,这里不赘述了。这里主要讲解一下opengl这部分的流程。对应opengl函数请参考网上的文档https://www.khronos.or
转载 2024-07-10 08:02:33
70阅读
# Android Java OpenGL 渲染 YUV 格式视频数据 在现代应用程序开发中,视频处理已成为一项必备的技能。尤其是安卓平台,YUV格式作为视频的常见存储方式,其渲染技术尤为重要。本文将介绍如何在Android中使用Java和OpenGL来渲染YUV格式的视频数据。 ## YUV 数据概述 YUV是一种颜色编码方法,通常用于视频压缩与传输。Y代表亮度信息,U和V则分别代表色度信
原创 2024-10-23 04:37:16
88阅读
# 使用OpenGL ES渲染YUV图像 在Android开发中,有时候我们需要使用OpenGL ES来进行图像的渲染,而当我们需要处理YUV格式的图像时,就需要进行一些特殊的处理。本文将介绍如何在Android中使用OpenGL ES来渲染YUV图像,并附上相应的代码示例。 ## YUV图像格式 YUV是一种广泛应用于视频处理领域的图像格式,它将亮度(Y)和色度(U、V)分离开来,相比于R
原创 2024-05-07 07:44:21
302阅读
目录简单插值二次线性插值简单插值如图,我们想把一张小图缩放成一张大图,自然的想法就是按照它们的长宽比例进行缩放(zoomX)。但是问题也显而易见,在缩放的过程中,小图的像素并不能一一映射到大图的每一个像素中,会导致失真,也就是说大图中的像素与像素之间并不是原图像素的连续。开始动手,我们在Image.h中添加方法: 实现如下:通过简单的设置缩放比例来实现对像素的操作Image* Image
OpenGL播放yuv数据流(着色器SHADER)-android(一)可以参考:这篇文章很有帮助。这个和windows还有ios略有不同,下面将步骤整理一下以做记录:1:在avtivity_main.xml中添加用于显示的GLsurfaceView<android.opengl.GLSurfaceView android:id="@+id/lvsPlaySurfaceVie
转载 2024-07-01 13:52:16
31阅读
# 使用Java实现OpenGL ES渲染YUV ## 引言 在本文中,我将指导你如何使用Java实现OpenGL ES渲染YUV图像。在开始之前,确保你已经对Java编程有一定了解,并且熟悉OpenGL ES的基本概念和使用方法。 ## 整体流程 下面是实现过程的一个简要概述,我将在后续的步骤中详细解释每一步需要做什么。 1. 初始化OpenGL ES上下文和渲染表面。 2. 加载YUV
原创 2024-02-12 09:30:48
154阅读
OpenGL的替代者——VulkanVulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯(Khronos)组织在2015年游戏开发者大会(GDC)上发表。旨在替代OpenGL,提高图形性能。基于OpenGL的图形引擎性能瓶颈基于OpenGL的图形引擎,其渲染过程粗略可分为 主机端资源准备,设备端数据交互与管线准备 及 每帧循环的渲染 三个部分。 资源加载这一过程跟GPU没有
转载 2024-08-11 11:59:16
108阅读
文章目录一、Texture2D1.纹理加载2.设置纹理属性3.纹理绑定到GPU4.纹理与shader中的sampler2D绑定5.析构二、立方体贴图1. 创建立方体贴图类QOpenGLTexture的实例2.加载图片3.设置为立方体贴图第一步、设置纹理尺寸size第二步、设置纹理格式Format第三步、给服务器端分配内存第四步、向内存中添加数据3. 设置立方体VAO,VBO数据绑定数据到VAO4
转载 2024-07-02 20:35:47
101阅读
  • 1
  • 2
  • 3
  • 4
  • 5