安卓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. 软件测试面试必看,资深测试工程师面试题集锦 全网首发

    全网首发,最牛的全套软件测试  ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...

  2. r7c刷机android6.0,奇兔刷机全网首发OPPO R7c(电信4G)刷机包 独家支持一键刷机

    OPPO R7c(电信4G)作为R系列的最新机型,集合了市面上几乎所有手机的流行元素,凭借高颜值的全金属机身,良好的拍照体验以及VOOC闪充功能,取得了单月销量过百万的成绩.近日,奇兔刷机已全网首发O ...

  3. 红米3s android6.0,奇兔刷机全网首发红米3S (Redmi 3S) MIUI8 ROM 独家支持一键刷机

    小米6月14通过官网直接发布了红米3S (Redmi 3S)手机,作为红米3的升级版,红米3S配备了高通骁龙430八核处理器,配备4100毫安时电池,MUUI的优化获得很好的续航能力.小巧轻薄的机身拥 ...

  4. MediaCodec 完成PCM编码成AAC

    安卓MediaCodec支持的音视频格式 视频格式 public static final String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8& ...

  5. 十分钟完成安卓MediaCodec视频解码

    码字辛苦!转载请注明出处! 0.前言 MediaCodec是安卓自带的视频编解码工具,由于使用的是硬解码,其效率相对FFMPEG高出来不少. 但由于部分厂商的解码器的设计,在某些手机上,H.264解码 ...

  6. 使用MediaCodeC将图片集编码为视频

    原文地址 原创文章,转载请联系作者 绿生莺啼春正浓,钗头青杏小,绿成丛. 玉船风动酒鳞红.歌声咽,相见几时重? 提要 这是MediaCodeC系列的第三章,主题是如何使用MediaCodeC将图片集编 ...

  7. [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. [Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  10. PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))

    题目描述: 我们知道平凡的栈有几个操作: push(value) 将 value 压入栈 pop() 将栈顶元素弹出, 并返回这个弹出的元素. 现在我们想要在平凡栈的基础上实现以下几个操作: push ...

最新文章

  1. Laravel 上使用 phpexcel的两种方式
  2. Synchronize读脏
  3. Python-面向对象的编程语言
  4. Ubuntu16.04下tensorflow安装
  5. Counting 4-Cliques
  6. Knowing is not enough; we must apply. Willing is not enough; we must do.
  7. android 图层绘画分析,Android绘图技巧使用详解
  8. java语法让反编译报错_java 反编译
  9. 私塾在线java设计模式综合项目实战
  10. H5游戏开发-Egret引擎
  11. 谷歌(Chrome)浏览器丨插件安装教程
  12. 初创网络游戏公司运维遇到问题
  13. 给入门程序员找培训班的一些建议
  14. Python ffmpeg视频处理
  15. WebRTC[53] - WebRTC回声问题定位的一般方法
  16. 猿创征文 | 项目整合KafkaStream实现文章热度实时计算
  17. 使用Let's Encrypt申请永久免费通配符证书
  18. redis学习之集群部署
  19. (转载)建设高效团队的七十五条原则
  20. 计算机网络对那些方面产生了影响,物联网对计算机网络技术发展影响

热门文章

  1. 悬挂缩进 java,WORD上机练习题目
  2. abb工业机器人电压不稳_ABB工业机器人常见故障及解决方法,想要提升自己的就赶紧保存下来吧...
  3. yii2 init初始化脚本分析
  4. php array函数 array_keys返回数组的键值
  5. nginx 配置虚拟机实例
  6. ./configure --prefix --with解释
  7. SQL Server 2005系列教学(12) 导入导出服务
  8. win10 安装 framework3.5
  9. 【ES】学习2-搜索
  10. 6年专注,只因热爱——方创广告设计