EasyPusher手机直播图像旋转90度后画面重复的问题
来源:互联网 发布:阿里云登录 编辑:程序博客网 时间:2024/06/06 08:37
最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送直播画面到EasyDarwin然后通过播放器播放视频画面就会逆时针旋转90度,如图:
手机横屏的时候不会旋转,这个问题思路其实很简单,在推送给服务器之前把图片数据旋转90度之后就可以了,然后就做了一次顺时针旋转的,结果画面变成如下样子:
很明显图片顺时针旋转了90度,但是还不如不旋转!我就想当然的以为旋转的算法出错了,然后开始寻求谷歌度娘,然并卵,然后就自己开始了解学习YUV420SP、YUV420P,并且自己写旋转算法,结果还是这样。其实着就有个结论了,旋转算法没问题!那是哪儿除了问题了呢?一次聊天提到宽和高是不是有问题,一语点醒梦中人。我在编码的时候使用MediaCodec,编码的时候设置宽为640高480:
mediaFormat = MediaFormat.createVideoFormat("video/avc", width,height);
而旋转90度之后宽和高就颠倒了啊,再这样编码肯定有问题,于是在将编码器的宽和高颠倒:
mediaFormat = MediaFormat.createVideoFormat("video/avc", height, width);
这次果然出现奇迹了,画面终于正常了:
其实就是简单的颠倒一下width和height的位置,这个问题困扰了好几天,终于解决了
关于代码可见:https://github.com/EasyDarwin/EasyPusher
0 0
- EasyPusher手机直播图像旋转90度后画面重复的问题
- EasyPusher手机直播图像旋转90度后画面重复的问题
- EasyPusher手机直播编码推送之图像旋转90度后画面重复的问题
- EasyPusher手机直播之SPS/PPS、关键帧的判断
- EasyPusher手机直播推送是如何实现后台直播推送的
- EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用
- EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用
- 基于EasyDarwin EasyPusher实现Android手机直播推送功能
- EasyPusher/EasyDarwin/EasyPlayer实现手机直播版本及效果整理
- EasyPusher/EasyDarwin/EasyPlayer实现手机直播版本及效果整理
- ios6下画面旋转的问题
- ios6下画面旋转的问题
- ios6下画面旋转的问题
- android手机拍照后上传图片被旋转的问题
- 图像旋转后的还原图像坐标
- 图像旋转后的还原图像坐标
- 画面倒置的实现(通过Bitmap图像旋转)
- OpenCV4Android中图像预览旋转90度的问题
- 九 种求和方法
- python_发送邮件
- CSS小叙
- .bashrc 大数据版个人配置
- 结构体赋值
- EasyPusher手机直播图像旋转90度后画面重复的问题
- 瞎扯淡1
- 寻找最大数
- jasig CAS客户端配置
- Win7 C盘空间越来越小、使用空间不够?教你如何清理C盘
- Python轻量级库web.py
- 杭州--4.13
- Two Sum(Java)
- (8)Java设计模式-代理模式(Proxy)