全网首发:使用安卓MediaCodec Encoder进行编码时的方向问题
安卓MediaCodec Encoder进行编码,会发现方向总是差90度。怎么办?网上通常说的两种方法,是不行的:
- setDisplayOrientation()。这个是预览画面使用的,不影响收到的数据。
- KEY_ROTATE。这个是解码输出用的,编码无效。
那么怎么办?先旋转,再编码。具体做法是:
- 初始化的判断
public AndroidVideoEncoder(int width, int height, int rotate, int framerate, int bitrate){mRotate = rotate;if (mRotate == 90 || mRotate == 270){int temp = height;height = width;width = temp;}super.initParams(null, width, height);}
- NV21旋转
注意宽高的对换。
if (mRotate == 90){MediaCodecKit.NV21_rotate_to_90 (mDataArray, rotateBuffer, mHeight, mWidth);}else if (mRotate == 180){MediaCodecKit.NV21_rotate_to_180(mDataArray, rotateBuffer, mWidth, mHeight);}else if (mRotate == 270){MediaCodecKit.NV21_rotate_to_270(mDataArray, rotateBuffer, mHeight, mWidth);}else{return;}System.arraycopy(rotateBuffer, 0, mDataArray, 0, mDataSize);
- 旋转代码参考
https://blog.csdn.net/quantum7/article/details/79762714
- 封装源码
吾已将源码进行了封装,简单好用。具体位置:
https://github.com/quantum6/Quantum6-CameraCodec-Android
全网首发:使用安卓MediaCodec Encoder进行编码时的方向问题相关推荐
- 软件测试面试必看,资深测试工程师面试题集锦 全网首发
全网首发,最牛的全套软件测试 ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...
- r7c刷机android6.0,奇兔刷机全网首发OPPO R7c(电信4G)刷机包 独家支持一键刷机
OPPO R7c(电信4G)作为R系列的最新机型,集合了市面上几乎所有手机的流行元素,凭借高颜值的全金属机身,良好的拍照体验以及VOOC闪充功能,取得了单月销量过百万的成绩.近日,奇兔刷机已全网首发O ...
- 红米3s android6.0,奇兔刷机全网首发红米3S (Redmi 3S) MIUI8 ROM 独家支持一键刷机
小米6月14通过官网直接发布了红米3S (Redmi 3S)手机,作为红米3的升级版,红米3S配备了高通骁龙430八核处理器,配备4100毫安时电池,MUUI的优化获得很好的续航能力.小巧轻薄的机身拥 ...
- MediaCodec 完成PCM编码成AAC
安卓MediaCodec支持的音视频格式 视频格式 public static final String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8& ...
- 十分钟完成安卓MediaCodec视频解码
码字辛苦!转载请注明出处! 0.前言 MediaCodec是安卓自带的视频编解码工具,由于使用的是硬解码,其效率相对FFMPEG高出来不少. 但由于部分厂商的解码器的设计,在某些手机上,H.264解码 ...
- 使用MediaCodeC将图片集编码为视频
原文地址 原创文章,转载请联系作者 绿生莺啼春正浓,钗头青杏小,绿成丛. 玉船风动酒鳞红.歌声咽,相见几时重? 提要 这是MediaCodeC系列的第三章,主题是如何使用MediaCodeC将图片集编 ...
- [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))
题目描述: 我们知道平凡的栈有几个操作: push(value) 将 value 压入栈 pop() 将栈顶元素弹出, 并返回这个弹出的元素. 现在我们想要在平凡栈的基础上实现以下几个操作: push ...
最新文章
- Laravel 上使用 phpexcel的两种方式
- Synchronize读脏
- Python-面向对象的编程语言
- Ubuntu16.04下tensorflow安装
- Counting 4-Cliques
- Knowing is not enough; we must apply. Willing is not enough; we must do.
- android 图层绘画分析,Android绘图技巧使用详解
- java语法让反编译报错_java 反编译
- 私塾在线java设计模式综合项目实战
- H5游戏开发-Egret引擎
- 谷歌(Chrome)浏览器丨插件安装教程
- 初创网络游戏公司运维遇到问题
- 给入门程序员找培训班的一些建议
- Python ffmpeg视频处理
- WebRTC[53] - WebRTC回声问题定位的一般方法
- 猿创征文 | 项目整合KafkaStream实现文章热度实时计算
- 使用Let's Encrypt申请永久免费通配符证书
- redis学习之集群部署
- (转载)建设高效团队的七十五条原则
- 计算机网络对那些方面产生了影响,物联网对计算机网络技术发展影响
热门文章
- 悬挂缩进 java,WORD上机练习题目
- abb工业机器人电压不稳_ABB工业机器人常见故障及解决方法,想要提升自己的就赶紧保存下来吧...
- yii2 init初始化脚本分析
- php array函数 array_keys返回数组的键值
- nginx 配置虚拟机实例
- ./configure --prefix --with解释
- SQL Server 2005系列教学(12) 导入导出服务
- win10 安装 framework3.5
- 【ES】学习2-搜索
- 6年专注,只因热爱——方创广告设计