
音视频#OpenGL ES
文章平均质量分 68
TYYJ-洪伟
移动端技术主管、优快云博客专家。个人微信:tyyj89
展开
-
OpenGL ES 画中画(PIP)预览+录制
上一节提到画中画实现,实际上就是将两个视频纹理绘制到 FBO,那么预览、录制,其实就是将 FBO 绘制到预览界面,并共享 egl 将数据同时绘制到编码器 Surface 一份就可以了。下图是整个架构的大体流程。先来建立一个用来绘制预览和录制的 Drawer,重点看片段着色器的代码,输入的纹理类型是 sampler2D,这是 FBO 输出的纹理类型。其中录制 surface 是 MediaCodec 提供的,录制界面绘制共享了预览用的 egl(mPreviewEGLContext)。/** * au原创 2021-08-29 17:26:17 · 1066 阅读 · 21 评论 -
OpenGL ES 画中画(PIP)实现
视频画中画实际就是两张纹理叠加,其中之一为前景,另外一个为背景。前景通常是一个小窗口叠加在背景上。在 Android 应用中,通常视频源来自 Camera 或者其他经过硬解码(MediaCodec)而来的视频流。我们知道不论是 Camera 还是硬解码后的视频流都是可以直接送显到 Surface 上的(存在相应的 API 直接调用),所以可以通过 OpenGL ES 生成对应的纹理,然后包装成 Surface 交给对应的视频源去输出。需要注意的是,片段着色器中需要声明为 GL_OES_EGL_image_原创 2021-08-22 16:48:55 · 1674 阅读 · 0 评论 -
OpenGL ES 送显 YUV NV12
先来了解 YUV NV12 组成,再来实现 OpenGL ES 送显 YUV NV12。一、YUV NV12YUV 是编译 true-color 颜色空间(color space)的种类,Y’UV、YUV、 YCbCr、YPbPr 等专有名词都可以称为 YUV,彼此有重叠。Y 表示明亮度(Luminance 或 Luma),也就是灰阶值,U 和 V 表示的则是色度(Chrominance 或 Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV 格式分成两种:紧缩格式(packed原创 2021-08-22 15:59:23 · 3160 阅读 · 4 评论 -
OpenGL ES 与原生窗口之间的接口——EGL
OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA 和游戏主机等嵌入式设备而设计。该 API 由 Khronos 集团定义推广,Khronos 是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当原创 2021-08-12 15:02:00 · 1853 阅读 · 0 评论