在用MediaCodec编码的时候,如果设置颜色空间为YUV420SP,那么则需要转换一下,

NV21 颜色空间排列 :YYYYYYYY VUVU

YUV420SP颜色排列顺序为:YYYYYYY UVUV

YUV420 是与NV12对应的,但是5.0一下的安卓手机支持这个预览颜色的不多,则需要将VU顺序进行转换,具体算法如下:

void BGR2NV21( unsigned char *imgSrc, unsigned char *imgDst, int width, int height )
{int w, h;int shift = 14, offset1 = 8192, offset2 = 2105344;int C0 = 1868, C1 = 9617, C2 = 4899, C3 = 11682, C4 = 9241;int r1,r2,g1,g2,b1,b2;unsigned char * pRGB1 = imgSrc;unsigned char * pRGB2 = imgSrc+width*3;unsigned char * pDY1 = imgDst;unsigned char * pDY2 = imgDst+width;unsigned char * pDUV = imgDst+width*height;for ( h = 0; h < height; h += 2 ){for ( w = 0; w < width; w += 2 ){b1 = *pRGB1++;g1 = *pRGB1++;r1 = *pRGB1&

NV12转YUV420P相关推荐

  1. 【Android】直播必备之YUV使用总结 —— 常用的几种格式:NV21/NV12/YV12/YUV420P的区别

    转载自 gitzzp 的博客 [Android]直播必备之YUV使用总结 -- 常用的几种格式:NV21/NV12/YV12/YUV420P的区别 转自:http://www.cnblogs.com/ ...

  2. YUV格式学习:NV12和YUV420P格式互换

    NV12和YUV420的转换是在相同采样空间的转换,只是个别分量位置的调整,只要明白了Y.U.V分量的布置,就很容易写出来. 代码如下: /** yyyy yyyy uv uv -> yyyy ...

  3. java yuv420sp转nv21_Android图片格式NV12(YUV420SP)转YUV420P

    Android设备调用摄像头采集数据时,Camera对象通过setPreviewCallback (Camera.PreviewCallback callback)函数,在onPreviewFrame ...

  4. matlab公共函数之保存YUV数据

    matlab保存图像为YUV格式的脚本函数 % function flag = saveYUVData(filename,Y,U,V,format) % input params. % filenam ...

  5. RGBA、YUV色彩格式及libyuv的使用

    最近一段时间因为工作的需要,要使用到libyuv.因为之前写录制视频的时候,也要用到rgb转yuv,自己结合网上的资料做了个实现,记录了点笔记,现在索性一起整理下. 常用的色彩格式 常见的色彩格式主要 ...

  6. Android libyuv应用系列(二)libyuv在Android中的使用

    请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接: http://blog.csdn.net/zxccxzzxz/article/details/53982849 上篇文章Andro ...

  7. 【FFmpeg在Intel GPU上的硬件编解码实现】

    用于记录Intel CPU开发qsv硬件解码过程中遇到的一些问题及解决方案 以下文章是在开发过程中参考的比较有意义的文章,供大家学习和参考~~ https://zhuanlan.zhihu.com/p ...

  8. 利用ffmpeg+QSV进行视频处理

    引言 ffmpeg是一个视频处理领域的"瑞士军刀",在很多应用中都会用到,这里就不详细介绍它的使用啦,有需要的可以参考其官方文档和大量网上的资料. 这里着重介绍一下qsv这个东东, ...

  9. 基于 FFmpeg 的跨平台视频播放器简明教程(四):像素格式与格式转换

    系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG + Conan 环境集成 基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux) 基于 ...

最新文章

  1. 2022-2028年中国二次供水产业发展动态及投资战略规划报告
  2. 36 张图详解应用层协议:网络世界的最强王者
  3. 【Nginx】如何建立新连接
  4. CAS的核心类--unsafe类
  5. 【小白学习C++ 教程】三、C++用户输入、判断语句和switch
  6. 《网易编程题》计算糖果
  7. java去除字符串的html标签
  8. 在SAP Data Intelligence Modeler里测试data Generator graph
  9. python dicom图像分割_python读取DICOM头文件的实例
  10. Spring Cloud 入门 之 Hystrix 篇(四)
  11. 打开浏览器不是主页_浏览器首页被篡改!教你几个快速解决的方法
  12. shell 脚本初习
  13. 三菱gx works2安装教程(详细超安装方法步骤)
  14. 【MID音频读取和分析】基于matlab的MID音频文件读取和分析
  15. 电子政务概论-课程形成性考核册
  16. [Python GUI]Python内置图形界面tkinter Eye-Hand Coordination--游戏实战1
  17. matlab图像质量评价程序,图像质量评价指标之Matlab实现
  18. Windows蓝屏漏洞(利用多种途径与分析)
  19. 山西民生云认证工资_山西民生云养老资格认证手机版-山西民生云社会保险综合服务平台v2.2 最新版-007游戏网...
  20. 用labview设计jk触发器_编写数字电路JK触发器仿真程序

热门文章

  1. C语言零基础入门级 递归+回调+字符串函数+面试题全讲解【系统学习第六天】
  2. 第二十四次发博不知道用什么标题好
  3. 记录下用python撸了时代光华学习平台自动学习的程序(时代光华挂课程序篇一)
  4. 一张图看清客户价值-运用Tableau作RFM客户价值分析
  5. pay lip service to
  6. RW007 高速WIFI 模块 开启 BLE 功能说明
  7. java向数据库插入数据时的错误: Duplicate entry ‘‘ for key ‘PRIMARY‘ 问题解决
  8. oracle解决00302,oracle exp出现ORA-00302:必须说明SET_NO_OUTLINES 组件 解决办法
  9. linux内存水印,Linux图片批量加水印
  10. Android仿斗鱼领取鱼丸文字验证(一)