技术文章
-
什么是SDL? SDL安装及工程配置
SDL 是 “Simple DirectMedia Layer” 的缩写,它是一个跨平台的多媒体库,可以在 Mac、Windows、Linux 以及更多的系统上运行。 SDL 提供…
-
零基础读懂视频播放器控制原理: 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 本身不能用于渲…
-
OpenGL ES 3D 变换:模型,视图,投影与 Viewport
前言 本来打算直接写教程 04 的,但是想到3D 变换涉及的数学知识较多,往往是很多初学者的拦路虎(比如我自己)。 再加上OpenGL ES 2.0 不再提供 OpenGL ES …
-
给 Android WebRTC 增加美颜滤镜功能
视频采集渲染流程分析 在增加滤镜功能之前,需要对 WebRTC 视频采集的流程有一定了解。 WebRTC 中定义了 VideoCapture 接口类,其中定义了相机的初始化,预览,…
-
OpenGL ES 相机 LUT 滤镜
OpenGLES 相机 LUT 滤镜 左侧为 LUT 滤镜效果,右侧为原图 什么是 LUT ? LUT 是 Look Up Table 的简称,称作颜色查找表,是一种针对色彩空间的…
-
OpenGL ES 实现全景视频播放器
OpenGL ES学习实战(360全景视频播放器) 全景视频原理 一、拍摄设备 全景视频在拍摄时是多个摄像机同时在一个点向四面八方拍摄。下面在网上找了一个拍摄设备的图片。 摄像机 …
-
OpenGL ES 3.0 的 Transform Feedback 怎么用?
什么是 Transform Feedback Transform Feedback(变换反馈)是在 OpenGLES3.0 渲染管线中,顶点处理阶段结束之后,图元装配和光栅化之前的…
-
OpenGL ES 3D 模型的加载和渲染
OpenGL ES 3D 模型加载和渲染 3D 模型渲染 上一节简单介绍了常用的 3D 模型文件 Obj 的数据结构和模型加载库 Assimp 的编译,本节主要介绍如何使用 Ass…
-
OpenGL ES + MediaPlayer 渲染播放视频+滤镜效果
之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi 解码后SurfaceView播放视频 ,今天再给大家来一…
-
Android屏幕刷新机制—VSync、Choreographer 全面理解!
一、背景和疑问在Android中,当我们谈到 布局优化、卡顿优化 时,通常都知道 需要减少布局层级、减少主线程耗时操作,这样可以减少丢帧。如果丢帧比较严重,那么界面可能会有明显的卡…
-
OpenGL ES 如何传输一个超大数组给着色器程序
如何传输一个超大数组给着色器程序? 在 OpenGL ES 图形图像处理中,会经常遇到一种情况:如何将一个超大的数组传给着色器程序? 目前常用的有三种方式: 使用将数组加载到 2D…
-
Android 图形绘制的 6 种方式
图形绘制概述 Android平台提供丰富的官方控件给开发者实现界面UI开发,但在实际业务中经常会遇到各种各样的定制化需求,这必须由开发者通过自绘控件的方式来实现。通常Android…
-
OpenGL 屏幕成像和渲染原理解析
1.CPU与GPU CPU内部组成: GPU内部组成: ALU:算术逻辑单元,是能实现多组算术运算和逻辑运算的组合逻辑电路。 CPU和GPU因为设计之初需求就不一样,所以它们的组成…
-
MediaCodec 、x264、faac 实现音视频编码并通过 rtmp 协议实现推流
前言 咱们回顾一下前面 2 篇文章,主要讲解了如何搭建 rtmp 直播服务器,和如何开发一款具有拉流功能的 Android 播放器。那么现在有了播放端和直播服务器还缺少推流端。该篇…
-
语义Web,Web3流派一 ——Web3简析系列之(2)
语义网不是一个独立的网络,而是当前的这个网络的显示的数据的能力将会大大提高,这样语义网建设的进展就将有助于创造出引人注目的全新功能。
-
从Web1.0到Web2.0 ——Web3简析系列之(1)
一、前言 Web3.0概念自2021年第四季度突然火起来,如图1所示为Web3.0的搜索热度统计。然而,业界还远远没有到统一概念Web3.0的时候。对于Web3.0的概念、内涵,业…