EasyPusher手机直播编码推送之图像旋转90度后画面重复的问题
本文转自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度后画面重复的问题相关推荐
- EasyPusher手机直播图像旋转90度后画面重复的问题
本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...
- textureview 旋转90度后平铺_C++初级编程NOIP题:11H1537: 图像旋转
时间限制: 1 Sec 内存限制: 128 MB 题目描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n ...
- java canvas旋转_在HTML5 Canvas上将图像旋转90度
我无法使用HTML5画布旋转图像 . 我想我的数学错误,并希望得到任何帮助 . 在移动设备上,我在150px x 558px画布上捕获用户签名 . 我试图创建一个558像素×150像素的图像,这只是旋 ...
- android墓碑机制推送,工信部放大招,又一手机品牌加入推送联盟,安卓流畅度有救了...
安卓手机发展已经有很多年了,尤其是硬件方面安卓手机不断的堆料,导致很多表示现在性能早已经过剩了.但与此同时我们发现,即便再怎么堆料,安卓手机也做不到像iOS那样流畅.这到底是为什么呢?其实跟两者的推送 ...
- android opencv 图像旋转90度,使用OpenCV转换图像( 旋转 90度)的简单方法?
以下是我的EmguCV ( OpenCV的C# 端口) 解决方案:public static Image Rotate90(this Image img) where TColor : struct, ...
- java图像旋转90度_旋转图像90度在java
使用此方法. /** * Rotates an image. Actually rotates a new copy of the image. * * @param img The image to ...
- 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题
html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...
- 用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 ...
- EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用
本文转自EasyDarwin开源团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/52651194 由于Android 5.0提供了捕获 ...
最新文章
- 蚌埠智慧城市建设跻身全国22强 让数据替群众“跑腿”
- golang 文件服务器 实现
- Windows下Memcached的安装与配置
- Explore Nonprofit Cloud Case Management
- 图片资源 php,php URL图片资源传参生成对应尺寸图片
- [转] 64位windows下添加postgreSQL odbc数据源
- 蓝桥杯第八届省赛JAVA真题----迷宫
- 转 shell awk 使用详解
- android+4.3+usb存储模式,点点点:点出来安卓4.3的USB调试
- 韩顺平的java入门到精通中serversql笔记(包括emp表和dept表,linux的mysql版)
- smbclient用法
- IntelliJ IDEA多项目共用一个Tomcat
- Siemens M65...
- (ensp)华为USG6000v防火墙双机热备份的配置
- 不已0开头的数字正则
- php revel,Revel 概念
- 区块链中的交易是什么意思
- 几个例子理解博弈论与纳什均衡
- 微信开发:微信公众号给粉丝推送通知消息(模板消息)
- 盘点:文本内容安全领域 深度学习的六个主流应用方法
热门文章
- 网站运维应该做些什么?
- 网约车2.0时代,首汽约车让AI实时“听懂”打车服务
- 联合利华营销||轻扬是如何突出重围做到无懈可击的?
- 2021-11-15----韩顺平Java入门第九天
- 创业日志(十二) 关于怠惰
- ASUS华硕飞行堡垒fx80gd怎么用Fn+F5功能控制风扇转速
- 格创东智亮相高端制造业CIO上海论坛,助推制造业智慧建设
- php 5.3.1 preg_quote
- 100以内的三连加减法JAVA_100以内加减法三连算练习题.doc
- 网赚最忌讳的行为5个行为,新人必读!