字节流动
-
OpenGL ES 文字渲染方式有几种?
在音视频或 OpenGL 开发中,文字渲染是一个高频使用的功能,比如制作一些酷炫的字幕、为视频添加水印、设置特殊字体等等. 实际上 OpenGL 并没有定义渲染文字的方式,所以我…
-
OpenGL ES 实现实时音频的可视化
可视化实时音频 1 音视频数据的采集 OpenGL 实现可视化实时音频的思路比较清晰,可以利用 Java 层的 API AudioRecorder 采集到未编码的音频裸数据(PCM…
-
详解YUV 图像的基本处理
YUV 图 1. YUV 的由来 YUV 是一种色彩编码模型,也叫做 YCbCr,其中 “Y” 表示明亮度(Luminance),“U” 和 “V” 分别表示色度(Chromina…
-
利用 OpenGL ES 给视频播放器做个字符画滤镜
不少朋友问,OpenGL ES 入门后怎么学习写一些滤镜 ?怎么学习 shader ? 最近请教了一些大佬,他们一致认为正确的做法就是“去模仿”。先去模仿别人的滤镜怎么实现的,比如…
-
Android OpenGL ES 实现相机预览
OpenGL ES 相机预览 OpenGL ES 相机预览 相机开发是 OpenGL ES 开发的重要应用,利用 OpenGL 可以很方便地实现相机美颜、滤镜、塑型以及一些动态特效…
-
视频图像处理中的错帧同步是怎么实现的?
1 什么是错帧同步? 一般 Android 系统相机的最高帧率在 30 FPS 左右,当帧率低于 20 FPS 时,用户可以明显感觉到相机画面卡顿和延迟。 我们在做相机预览和视频流…
-
ijkplayer框架深入剖析(ijkplayer框架介绍)
随着互联网技术的飞速发展,移动端播放视频的需求如日中天,由此也催生了一批开源/闭源的播放器。 但是无论这个播放器功能是否强大、兼容性是否优秀,它的基本模块通常都是由以下部分组成:事…
-
OpenGL ES 多目标渲染(MRT)
OpenGL ES 多目标渲染 OpenGL ES 多目标渲染(MRT),即多重渲染目标,是 OpenGL ES 3.0 新特性,它允许应用程序一次渲染到多个缓冲区。 利用 MRT…
-
OpenGL ES 帧缓冲区位块传送
前文 OpenGL ES 多目标渲染(MRT)中我们了解了利用 MRT 技术可以一次渲染到多个缓冲区,本文将利用帧缓冲区位块传送实现高性能缓冲区之间的像素拷贝。 OpenGL ES…
-
Android NDK 开发中快速定位 Crash 问题
在 Android NDK 开发中,排查问题遇到的最熟悉的关键字非 backtrace 莫属,Linux 系统中进程 crash 后通过 backtrace 输出堆栈信息,开发者就…
-
视频处理中的错帧同步是怎么实现的?
1 什么是错帧同步? 一般 Android 系统相机的最高帧率在 30 FPS 左右,当帧率低于 20 FPS 时,用户可以明显感觉到相机画面卡顿和延迟。 我们在做相机预览和视频流…
-
视频解码之软解与硬解
硬解和软解 硬解:从字面意思上理解就是用硬件来进行解码,通过显卡的视频加速功能对高清视频进行解码,很明显就是一个专门的电路板(这样好理解…)来进行视频的解码,是依靠显卡…
-
Android OpenGL 渲染图像读取哪家强?
glReadPixels glReadPixels 是 OpenGL ES 的 API ,OpenGL ES 2.0 和 3.0 均支持。使用非常方便,下面一行代码即可搞定,但是效…
-
OpenGL ES 如何一次性渲染到多个纹理(opengles渲染到纹理)
OpenGL ES 多目标渲染 OpenGL ES 多目标渲染(MRT),即多重渲染目标,是 OpenGL ES 3.0 新特性,它允许应用程序一次渲染到多个缓冲区。 利用 MRT…
-
OpenGL ES 如何绘制贝塞尔曲线
最近要求为图像设计流线型曲线边框,想着可以用 OpenGL 绘制贝塞尔曲线,再加上模板测试来实现,趁机尝试一波。 基于贝塞尔曲线的曲边扇形 什么是贝塞尔曲线 运用贝塞尔曲线设计的汽…
-
零基础读懂视频播放器控制原理: ffplay 播放器源代码分析
视频播放器原理其实大抵相同,都是对音视频帧序列的控制。只是一些播放器在音视频同步上可能做了更为复杂的帧预测技术,来保证音频和视频有更好的同步性。 ffplay 是 FFMpeg 自…
-
Android FFmpeg + MediaCodec 实现视频硬解码
本文将利用 FFmpeg+ MediaCodec 做一个播放器,实现视频的硬解码和音视频同步等功能。 MediaCodec 介绍 MediaCodec 是 Android 提供的用…
-
OpenGL ES 实现多种“马赛克滤镜”效果
“⻢赛克效果”就是把图⽚的⼀个相当⼤⼩的区域⽤同⼀个点的颜⾊来表示,可以认为是⼤规模的降低图像的分辨率,⽽让图像的⼀些细节隐藏起来。 无马赛克滤镜 “无滤镜”效果的实现准备工作的代…
-
你还不知道 OpenGL ES 和 EGL 的关系?
什么是 EGL EGL 是 OpenGL ES 和本地窗口系统(Native Window System)之间的通信接口,它的主要作用: 与设备的原生窗口系统通信; 查询绘图表面的…
-
OpenGL ES 3.0 FBO 离屏渲染
什么是 FBO FBO(Frame Buffer Object)即帧缓冲区对象,实际上是一个可添加缓冲区的容器,可以为其添加纹理或渲染缓冲区对象(RBO)。 FBO 本身不能用于渲…