本文转自EasyDarwin开源团队开发Holo的博客:http://blog.csdn.net/holo_easydarwin

最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送直播画面到EasyDarwin然后通过播放器播放视频画面就会逆时针旋转90度,如图:

手机横屏的时候不会旋转,这个问题思路其实很简单,在推送给服务器之前把图片数据旋转90度之后就可以了,然后就做了一次顺时针旋转的,结果画面变成如下样子:

很明显图片顺时针旋转了90度,但是还不如不旋转!我就想当然的以为旋转的算法出错了,然后开始寻求谷歌度娘,然并卵,然后就自己开始了解学习YUV420SP、YUV420P,并且自己写旋转算法,结果还是这样。其实着就有个结论了,旋转算法没问题!那是哪儿除了问题了呢?一次聊天提到宽和高是不是有问题,一语点醒梦中人。我在编码的时候使用MediaCodec,编码的时候设置宽为640高480:

mediaFormat = MediaFormat.createVideoFormat("video/avc", width,height);
  • 1
  • 1

而旋转90度之后宽和高就颠倒了啊,再这样编码肯定有问题,于是在将编码器的宽和高颠倒:

mediaFormat = MediaFormat.createVideoFormat("video/avc", height, width);
  • 1
  • 1

这次果然出现奇迹了,画面终于正常了:

其实就是简单的颠倒一下width和height的位置,这个问题困扰了好几天,终于解决了

关于代码可见:https://github.com/EasyDarwin/EasyPusher

EasyPusher手机直播编码推送之图像旋转90度后画面重复的问题相关推荐

  1. EasyPusher手机直播图像旋转90度后画面重复的问题

    本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...

  2. textureview 旋转90度后平铺_C++初级编程NOIP题:11H1537: 图像旋转

    时间限制: 1 Sec 内存限制: 128 MB 题目描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n ...

  3. java canvas旋转_在HTML5 Canvas上将图像旋转90度

    我无法使用HTML5画布旋转图像 . 我想我的数学错误,并希望得到任何帮助 . 在移动设备上,我在150px x 558px画布上捕获用户签名 . 我试图创建一个558像素×150像素的图像,这只是旋 ...

  4. android墓碑机制推送,工信部放大招,又一手机品牌加入推送联盟,安卓流畅度有救了...

    安卓手机发展已经有很多年了,尤其是硬件方面安卓手机不断的堆料,导致很多表示现在性能早已经过剩了.但与此同时我们发现,即便再怎么堆料,安卓手机也做不到像iOS那样流畅.这到底是为什么呢?其实跟两者的推送 ...

  5. android opencv 图像旋转90度,使用OpenCV转换图像( 旋转 90度)的简单方法?

    以下是我的EmguCV ( OpenCV的C# 端口) 解决方案:public static Image Rotate90(this Image img) where TColor : struct, ...

  6. java图像旋转90度_旋转图像90度在java

    使用此方法. /** * Rotates an image. Actually rotates a new copy of the image. * * @param img The image to ...

  7. 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  8. 用C语言简单实现图像的旋转90度

    CCF里面有一道题,让你把图像旋转90度,我用C语言可以简单实现. 样例输入 2 3 1 5 3 3 2 4 样例输出 3 4 5 2 1 3 样例输入 2 3 1 5 3 3 2 4 样例输出 3  ...

  9. EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用

    本文转自EasyDarwin开源团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/52651194 由于Android 5.0提供了捕获 ...

最新文章

  1. 蚌埠智慧城市建设跻身全国22强 让数据替群众“跑腿”
  2. golang 文件服务器 实现
  3. Windows下Memcached的安装与配置
  4. Explore Nonprofit Cloud Case Management
  5. 图片资源 php,php URL图片资源传参生成对应尺寸图片
  6. [转] 64位windows下添加postgreSQL odbc数据源
  7. 蓝桥杯第八届省赛JAVA真题----迷宫
  8. 转 shell awk 使用详解
  9. android+4.3+usb存储模式,点点点:点出来安卓4.3的USB调试
  10. 韩顺平的java入门到精通中serversql笔记(包括emp表和dept表,linux的mysql版)
  11. smbclient用法
  12. IntelliJ IDEA多项目共用一个Tomcat
  13. Siemens M65...
  14. (ensp)华为USG6000v防火墙双机热备份的配置
  15. 不已0开头的数字正则
  16. php revel,Revel 概念
  17. 区块链中的交易是什么意思
  18. 几个例子理解博弈论与纳什均衡
  19. 微信开发:微信公众号给粉丝推送通知消息(模板消息)
  20. 盘点:文本内容安全领域 深度学习的六个主流应用方法

热门文章

  1. 网站运维应该做些什么?
  2. 网约车2.0时代,首汽约车让AI实时“听懂”打车服务
  3. 联合利华营销||轻扬是如何突出重围做到无懈可击的?
  4. 2021-11-15----韩顺平Java入门第九天
  5. 创业日志(十二) 关于怠惰
  6. ASUS华硕飞行堡垒fx80gd怎么用Fn+F5功能控制风扇转速
  7. 格创东智亮相高端制造业CIO上海论坛,助推制造业智慧建设
  8. php 5.3.1 preg_quote
  9. 100以内的三连加减法JAVA_100以内加减法三连算练习题.doc
  10. 网赚最忌讳的行为5个行为,新人必读!