最近在对接WebRTC到安卓手机上,有个需求就是手机横屏时将对方图像进行旋转,研究了WebRTC video_render的代码后发现远端的视频渲染使用opengles20或surfaceview实现,其中opengles20使用硬件渲染,因此性能更好,所以只需将video_render_opengles20.h中的VideoRenderOpenGles20类加上旋转接口即可。

opengles20和opengles相比取消了glRotatex等操作函数,旋转操作改为由shader的顶点渲染实现,改写的shader代码如下:

  

uniform mat4 uMVPMatrix; //总变换矩阵
attribute vec4 aPosition;  //顶点位置
attribute vec2 aTextureCoord;
varying vec2 vTextureCoord;
void main()
{                                   gl_Position = uMVPMatrix * aPosition; //根据总变换矩阵计算此次绘制此顶点位置vTextureCoord = aTextureCoord;//将接收的颜色传递给片元着色器
}

  

 注意添加了变换矩阵uMVPMatrix,在绘制前调用:

int muMVPMatrixHandle = glGetUniformLocation(mProgram, "uMVPMatrix");

mMMatrix.setRotate(rotate);

glUniformMatrix4fv(muMVPMatrixHandle, 1false, (float*)mMMatrix);

转载于:https://www.cnblogs.com/zentel/p/4957467.html

Android WebRTC视频旋转问题相关推荐

  1. android webrtc 视频旋转

    libjingle_peerconnection中的SurfaceViewRenderer是视频绘制类,在自己的项目中定义一个新的SurfaceViewRenderer类,把代码都拷贝过来, 然后加入 ...

  2. Android WebRtc 桌面投屏、视频源码

    Android WebRtc 桌面投屏.视频源码 Android/iOS/PC/Web 四大平台,可以说Android/Web得天独厚,几乎被Google给完全封装,C端只需建立好信令,架设好webs ...

  3. Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输

    Android WebRTC 入门教程(一) – 使用相机 Android WebRTC 入门教程(二) – 模拟p2p本地视频传输 源码工程: https://github.com/LillteZh ...

  4. android videoview,旋转 视频 orientation,rotation 等

    最近一直在研究android编程中有关 视频的旋转的操作,目前仍然没有完成目标: 在某一个界面中的某个小区域中的videoview,想让这个videoview中的视频旋转90度. 尝试的方法有: 1, ...

  5. 视频教程-Android WebRTC 实现1V1实时音视频通信-Android

    Android WebRTC 实现1V1实时音视频通信 从2012年开始从事移动互联网方面的开发工作,曾担任去哪儿网开发工程师,搜狗高级开发工程师,拥有多年一线实战开发经验. 擅长语言:Object- ...

  6. android webrtc学习五(webrtc视频数据传递和切换摄像头问题处理)

    android webrtc学习五(webrtc视频数据传递和切换摄像头问题处理) Android webrtc摄像头流程分析 1.打开摄像头 2.获取流数据 摄像头切换 问题场景:在使用华为手机(忘 ...

  7. Android WebRTC 音视频开发总结(一)

    2014-03-03 13:51 by Blacker, 5464 阅读, 7 评论, 收藏, 编辑 接触Android WebRTC有一段时间了,现在将研究过程中的一些经验和知识总结出来,希望大家有 ...

  8. Android 视频旋转、缩放与回弹动效实现(二)

    文章目录 Android 视频旋转.缩放与回弹动效实现(二) 功能需求 实现思路 1. 旋转识别 旋转识别:RotateGestureDetector 2. 旋转处理 旋转处理:VideoTouchR ...

  9. Android 音视频开发入门指南

    最近收到很多网友通过邮件或者留言说想学习音视频开发,该如何入门,我今天专门写篇文章统一回复下吧. 音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整 ...

最新文章

  1. SQL学习教程:基础教程高级教程
  2. java服务器错误怎么解决_如何解决java.lang.IllegalStateException:服务器处于错误状态异常...
  3. iOS高级音频的设置项
  4. 如何防御DDoS攻击
  5. .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
  6. 免费图标下载:100个手绘的PSD图标
  7. 活动目录实战系列五(更改域名)
  8. RabbitMQ事务和Confirm发送方消息确认——深入解读
  9. c++利用windows api遍历指定文件夹及其子文件夹中的文件
  10. leetcode-337-打家劫舍三*
  11. Xilinx Artix-7 Aurora调试过程中遇到的问题
  12. 周志华机器学习西瓜书速记第一章绪论
  13. java编写一个测试类_java写一个类,并测试它
  14. 合宙Air105|Socket|UDP |TCP/IP|W5500|Serial 串口|透传|DTU|网络测试助手|双机互联|内网测试|官方demo|学习(8-3):Socket网络接口-双机互联透传
  15. 人工智能资料库:第37辑(20170220)
  16. 完整的网络端口表《二》
  17. 【洛谷】P1067 多项式输出【模拟】
  18. 注意力机制的详细理解
  19. toString方法重写
  20. 记忆存储程序使得计算机能够实现,2016年职称计算机考试模块综合试题及答案(4)...

热门文章

  1. Ubuntu18.04 给整个目录及子目录赋权限
  2. kibana操作elasticsearch:创建索引库
  3. python3 随机数函数
  4. MySQL最后一次查询耗时查询
  5. 华为故事,李一男,任正非
  6. python(numpy,pandas7)——pandas的数据选择
  7. Model Explorer中变量Scope属性的意义
  8. git 使用_git使用指南
  9. php-箭头r含义,php中-箭头的用法和意义
  10. 元宵节快乐 | 启明云端邀您一起猜灯谜了