当前位置: 首页 > news >正文

Android FFMPEG-播放器画面适配

单位矩阵

在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。

根据单位矩阵的特点,任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特性在高等数学中也有广泛应用。

假设A 是矩阵 或者向量| 1 0 0 0 |  | 0 1 0 0 | 
A * | 0 0 1 0 |  = A | 0 0 0 1 |  

利用这个单位矩阵 我们OpenGL 中的 顶点坐标 是 4维向量 如果 跟这个矩阵 进行相乘计算

attribute vec4 av_Position;
(x, y, z, w)     

改变对角线的值 跟我们的这个4维向量乘法, 其实就可以对x,y 的坐标 进行处理

 | x*s_x |   | s_x  0   0   0 |   | x || y*s_y | = |  0  s_y  0   0 | * | y || z*s_z |   |  0  0   s_z  0 |   | z || 1     |   |  0   0   0   1 |   | 1 |

openGL 中如何增加矩阵

我们可以在顶点shader 中增加一个变量用来传入矩阵的值

attribute vec4 av_Position;
attribute vec2 af_Position;
varying vec2 v_texPosition;
uniform mat4 u_Matrix; //mat4 代表 4x4 的矩阵 
void main() {v_texPosition = af_Position;gl_Position = av_Position * u_Matrix; //在这里 opengl 会进行矩阵计算
}

所以我们只需要根据视频的尺寸 计算出对应的矩阵就可以 , openGl 提供这样的api (正交投影矩阵)

android.opengl.Matrix.orthoM(float[] m, int mOffset,float left, float right, float bottom, float top,float near, float far) 

这里的 left right top bottom 是定义了一个视景体的一个范围 , near 和 far 是近平面 和远平面到视点的距离

假如我们left right top bottom 传入 -2f, 2f , -2f, 2f , 那么 我们的顶点范围经过矩阵计算就变成在中心画面的一半区域 。相当于上下左右 都缩小了一半

更多详情哔哩哔哩_bilibili
有想学习 音视频相关的兄弟可以去看一下哔哩哔哩_bilibili

http://www.dtcms.com/a/292434.html

相关文章:

  • 深入理解程序链接机制:静态链接、ELF加载与动态库实现原理
  • 三步构建智能办公体系
  • 330米地标背后的“智慧神经” —— 越秀国际金融汇电力系统案例解析
  • spring boot 集成netty,及其一些基本概念
  • 黑马点评练习题-给店铺类型查询业务添加缓存(String和List实现)
  • android模拟器手机打开本地网页
  • 科技向善,银发向暖:智慧养老与经济共筑适老未来
  • 如何给手机充电才不伤电池?
  • 未来趋势:LeafletJS 与 Web3/AI 的融合
  • ArcGIS水文及空间分析与SWMM融合协同在城市排水防涝领域中的应用
  • STM32项目分享:智能洗碗机
  • Java并发编程:JUC核心组件全解析
  • 牛客NC16625 [NOIP2009]分数线划定(排序)
  • 矿用支架电液控配件3针3孔钢丝编织橡胶护套连接器
  • 基于深度学习的语音情感识别系统的设计与实现【BiLSTM、多层感知神经网络、Emotion2Vec、与CustomFeature】
  • 对随机生成的html文件做标签简析
  • RPA软件机器人如何提高工作效率?
  • python 中什么是作用域(Scope)?为什么函数内部的变量在外部无法访问?
  • 【华为机试】547. 省份数量
  • How script location, CWD, and relative imports interact
  • TIM定时中断
  • 操作系统:系统调用(System Calls)
  • 风险识别清单:构建动态化的风险管理体系
  • 从 0 到 1 搞定 Intel 核显推流:硬件视频编码环境安装完整学习笔记
  • UE5 UI 水平框
  • GoLand 部署第一个项目
  • 智慧制造合同解决方案
  • 外网访问内部私有局域网方案,解决运营商只分配内网IP不给公网IP问题
  • 【Docker】Docker的初步认识以及Ubuntu下的Docker环境安装、配置
  • iOS加固工具有哪些?从零源码到深度混淆的全景解读