由于项目需要,需要在android上面实现视频流的解码显示,综合考虑决定使用ffmpeg解码,opengl渲染视频。技术选型确定以后,开始写demo,不做不知道,一做才发现网上的东西太不靠谱了,基于jni实现的opengl不是直接渲染yuv格式的数据,都是yuv转rgb以后在显示的,有实现的资料都是在java层做的,我不是java出生,所以对那个不感冒,综合考虑之后决定自己通过jni来实现,由于以
OpenGL编程轻松入门(一) (由同事黄燕创作)   本文介绍了有关OpenGL的基本知识,主要涉及颜色、绘制几何体、坐标变换、堆栈操作、显示列表、光照和材质、纹理映射、特殊效果、曲面和曲线的绘制、二次几何体绘制、像素操作、如何绘制动画物体及菜单管理。通过对本文及本文中例子的理解消化,你可以较容易地进入OpenGL的世界。相信,再通过一段
# Android中的YUV420格式 在移动应用开发中,我们经常会遇到需要处理图像和视频的需求。而在Android开发中,YUV420格式是最常用的图像和视频格式之一。本文将介绍YUV420格式的概念、特点以及在Android开发中的使用方法。 ## 什么是YUV420格式? YUV是一种将彩色图像分解为亮度(Y)和色度(U、V)分量的颜色空间。Y表示图像的亮度信息,U和V则表示图像的色度
原创 2023-12-12 09:11:28
127阅读
Android开发中,使用OpenGL渲染YUV420格式的视频时,常常会遇到没有颜色的问题。这种现象主要是因为颜色空间的转换和OpenGL处理不当导致的。本博文将详细记录如何解决这一问题,涵盖版本对比、迁移指南、兼容性处理、实战案例、性能优化以及生态扩展等方面。 # 版本对比与兼容性分析 在不同版本的Android中,OpenGL的支持和表现有所不同。因此,及时了解版本的差异至关重要。以下是
原创 6月前
72阅读
##背景 Android 开发中,当得到一张yuv图需要显示时,之前的做法是利用ffmpeg自带的方法将其转换为RGB565或者RGBA,然后将RGB数据拷贝到aNativeWindow的图像缓冲区,达到显示的目的。这样做比较耗CPU, 最近在阅读ijkplayer源码时,整理了一下OpenGL直接渲染YUV420P相关流程,参考网上一些代码,总结了一个最简单的小例子。例子下载地址 ##流程 这里
转载 2023-09-21 11:56:48
133阅读
# Android 裁减 YUV420 教程 作为一名经验丰富的开发者,我很高兴能帮助刚入行的小白学习如何实现Android裁减YUV420YUV420是一种常用的视频编码格式,它将图像数据分为亮度(Y)和两个色度(U和V)分量。裁减YUV420通常用于视频编辑或图像处理中,以实现特定的视觉效果。 ## 裁减流程 以下是裁减YUV420的步骤: | 步骤 | 描述 | | --- | -
原创 2024-07-29 07:56:16
35阅读
# Android ImageProxy YUV420 实现教程 ## 一、整体流程 首先让我们来看一下实现“android ImageProxy YUV420”这个过程的整体流程。我们将整个流程分解为几个步骤,并用表格展示出来: ```mermaid flowchart TD A[获取ImageProxy] --> B[获取Image] B --> C[转换YUV420]
原创 2024-06-21 06:56:48
293阅读
关于YUV和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。RGB 是使
原创 2022-11-08 10:12:51
167阅读
OpenGL 渲染的基础大纲:1、CPU 和 GPU 2、计算机渲染原理 3、屏幕成像与卡顿情况  1、CPU 和 GPU1.1、CPU(Central Processing Unit)现代计算机整个系统的运算核心、控制核心。 处理依赖性非常高的事情 Control控制单元、ALU运算单元、Cache显存1.2、GPU(Graphics Processing Unit)可进行绘图运算工作
转载 2024-05-16 20:25:50
137阅读
# 安卓 Libyuv 裁剪 YUV420 的教程 在这一篇文章中,我们将为刚入门的小白详细讲解如何在 Android 项目中使用 Libyuv 库来裁剪 YUV420 格式的视频数据。Libyuv 是一个跨平台的 C++ 库,它用于处理 YUV 图像和视频,并提供了多种图像转换和操作的功能。我们将从流程、代码实现、最后到状态图等方面来详细探讨。 ## 整体流程 我们需要按照以下步骤来实现
原创 2024-08-16 06:35:46
257阅读
# Android图片转换为YUV420格式 在数字图像处理中,有各种各样的图像格式,其中YUV420是一种被广泛应用于视频编码和处理的格式。本文将详细介绍如何在Android应用中将图片转换为YUV420格式。我们将用代码实例来加深理解,并通过甘特图来展示项目的时间安排。 ## 什么是YUV420格式? YUV420是一种颜色空间表示,用于表示图像的亮度(Y)和色度信息(U、V)。与其他格
原创 2024-10-23 04:55:13
137阅读
# Android YUV420 Planar 获取详解 在现代图像处理和计算机视觉的领域,图像数据的格式非常重要。YUV420是一种常见的视频编码格式,特别是在移动设备上使用。本文将深入探讨YUV420格式,特别是YUV420 Planar的特点,并提供代码示例,帮助理解如何在Android中获取和处理这种格式的数据。 ## YUV420 Planar 格式解析 YUV420格式由三个分量
原创 8月前
59阅读
一、YUV420数据存储YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。以dm2的H263loopback例子程序为例,发送线程中,视频捕获后我们得到YUV422 planar数据,然后转化成YUV420 planar数据,再
转载 2011-09-29 14:07:00
532阅读
# 使用Python和OpenCV处理YUV420视频 在计算机视觉领域,YUV420格式的视频文件经常被使用。这种格式通过将色彩信息的分量分开,从而实现压缩,有助于节省存储空间。在本教程中,我们将学习如何使用Python和OpenCV来读取、处理和输出YUV420格式的视频。 ## 处理流程 在开始之前,我们需要明确整个流程。下面是处理YUV420视频的步骤: | 步骤
原创 2024-08-16 06:09:43
370阅读
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩
原创 2022-01-14 14:13:36
899阅读
前面使用dshow获取到了屏幕的截图,并且转换成了yuv420格式。、现在需要能获取截图的部分区域。 本来打算在dshow获取截图的时候直接裁剪获得某个区域的rgb图像,但发现这样做,有时候成功不了。因此只能选择获取完整的屏幕截图,转换成yuv后再进行裁剪:YUV420裁剪代码如下:#include "yuvcut.h"#includeYuvCut::YuvCut(){}void YuvCut::
原创 2022-01-14 14:38:10
822阅读
void RGB24ToYUV420(int Width,int Height,uint8_t* pRGBBu
原创 2022-08-16 16:19:05
223阅读
yuv420p格式详解
原创 2018-01-15 09:03:22
10000+阅读
前言 谈到Android的UI绘制,大家可能会想到onMeasure、onLayout、onDraw三大流程。但我们的View到底是如何一步一步显示到屏幕上的?onDraw之后到View显示到屏幕上,具体又做了哪些工作?带着这些问题,我们今天就深入学习一下Android渲染的流程吧,本文主包括以下内容:Android渲染的整体架构是怎样的?Android渲染的生产者包括哪些?Skia与OpenGl
YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,Y
转载 2016-09-30 18:07:00
352阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5