yv12跟I420区别其实就是u、v顺序不一样,是平面格式,内存中u、v在连续的一块,nv12是打包格式,u、v交叉。

yv12转nv12:

void swapYV12toNV12(byte[] yv12bytes, byte[] nv12bytes, int width,int height) {

int nLenY = width * height;
int nLenU = nLenY / 4;

System.arraycopy(yv12bytes, 0, nv12bytes, 0, width * height);
for (int i = 0; i < nLenU; i++) {
nv12bytes[nLenY + 2 * i] = yv12bytes[nLenY + i];
nv12bytes[nLenY + 2 * i + 1] = yv12bytes[nLenY + nLenU + i];
}
}

nv12转I420:

void swapNV12toI420(byte[] nv12bytes, byte[] i420bytes, int width,int height) {

int nLenY = width * height;
int nLenU = nLenY / 4;

System.arraycopy(nv12bytes, 0, i420bytes, 0, width * height);
for (int i = 0; i < nLenU; i++) {
i420bytes[nLenY + i] = nv12bytes[nLenY + 2 * i + 1];
i420bytes[nLenY + nLenU + i] = nv12bytes[nLenY + 2 * i];
}
}

转换后如果发现颜色不对,u、v顺序换一下。

yv12转nv12,nv12转I420相关推荐

  1. 音视频数据处理入门:原始视频格式YUV,NV12,NV21,YV12,YU12(I420)

    我们知道,在Camera中设置Preview的回调函数onPreviewFrame时谷歌推荐我们使用NV21,YV12两种格式,因为这两种格式几乎在所有的设备里都通用.然而,视频的格式远远不止这俩种, ...

  2. I420、YV12、NV12、NV21等常见的YUV420存储格式

    今天要讲的,主流的采样格式YUV420,它的存储格式通常就有四种:I420.YV12.NV12.NV21. 1.  I420.YV12.NV12.NV21的存储格式 简单来讲,它们的存储格式分别为: ...

  3. YV12toI420 yuv420、NV12、YV12相互转换

    在录像时设置了YV12要保存图片时 YUV420P.I420.NV12.YV12格式转NV12保存图片 GLSurfaceView implements SurfaceHolder.Callback, ...

  4. YV12 and NV12异同,

    用videoCapture和IAMStreamConfig拿到的支持的格式列表. 发现支持2中图像格式,YV12和NV12. 具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 ...

  5. 【转】YV12 and NV12

    用videoCapture和IAMStreamConfig拿到的支持的格式列表. 发现支持2中图像格式,YV12和NV12. 具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 ...

  6. 基于libyuv库的NV12格式图片的缩放

    网上关于使用libyuv库在Linux下对NV12格式进行缩放的教程是在太少了,对于博主这种菜鸡来说简直就是煎熬,因为本人阅读源码的能力实在很差啊!!!但不管怎么样,把这几天所得写下来,希望对大家有帮 ...

  7. YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片

    音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践 ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器 android全平台编译ffm ...

  8. 【nv12 格式转换】不同图像数据格式之间转换代码实操

    文章目录 1 问题先行 2 nv12介绍 2.1 YUV格式 2.2 NV12排布 3 不同数据格式之间转换实操 4 参考链接 1 问题先行 nv12是什么格式?和常见的rgb/bgr有什么关系吗?他 ...

  9. yuv420,yuv420p,yuv420sp,nv12,nv21,I420,YV12概念区别

    yuv420有yuv420p和yuv420sp两种.如果不加特别说明,yuv420指的就是yuv420p.而yuv420p又可分为I420与YV12,yuv420sp也可分为NV12和NV21.它们的 ...

最新文章

  1. 编写一个公司员工类(Java)
  2. 微信小程序拼团后端接口设计规范
  3. shrio初体验(2)Realm
  4. 梯度下降法与牛顿法的比较
  5. android -自定义view
  6. java http服务端例子_简单的用 Java Socket 编写的 HTTP 服务器应用
  7. Map+Model+ModelMap介绍
  8. python 输入框查询_Element输入框带历史查询记录
  9. Linux下如何安装.cer证书
  10. JSON 格式化 显示到页面中
  11. c语言全缓冲,C语言缓冲区 - osc_8b4n157m的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. android.jar 位置,Android 导入jar包 so模块--导入放置的目录
  13. VScode中文注释乱码问题解决
  14. 斐讯N1强制刷机-免拆版
  15. Android开发前景如何?2021年,Android开发者的前行方向
  16. 什么是 GC,有什么作用?
  17. Git vs GitHub –什么是版本控制及其工作方式?
  18. USYD悉尼大学DATA1002 详细作业解析Module7(全新讲解)
  19. IRC(Internet Relay Chat)(因特网中继聊天)协议——RFC1459文档要点总结
  20. 这是关于淘宝的一条重磅消息

热门文章

  1. 未能正确加载“ProviderPackage”包。
  2. 机器学习--支持向量机(六)径向基核函数(RBF)详解
  3. php数据的导出到excel,php 数据的导出到excel表格-怎么将php数据导出excel
  4. visual studio 代码提示插件_程序员请收好:10个非常有用的Visual Studio Code插件
  5. python爬取抖音评论_爬取抖音299w用户数据后的分析
  6. 移动端ajax分页,移动端分页加载 - 花乐天的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. SpringBoot项目的mybatis逆向工程
  8. 函数WaitForMultipleObjects
  9. C#调用天气查询服务
  10. Chapter 1 First Sight——37