功能

将NV12的视频序列转换至I420格式

代码

#include<iostream>
#include<stdint.h>int main(int argc, char* argv[]) {char const* input;char const* output;input = argv[1];//输入NV12序列路径int num_frame = atoi(argv[2]);//处理帧数uint64_t w = atoi(argv[3]);//宽uint64_t h = atoi(argv[4]);//高output = argv[5];//输出I420序列路径int i = 1;uint8_t* buffer[3];buffer[0] = (uint8_t*)malloc(w * h);buffer[1] = (uint8_t*)malloc((w >> 1) * (h >> 1));buffer[2] = (uint8_t*)malloc((w >> 1) * (h >> 1));FILE* fp;fopen_s(&fp, input, "rb+");FILE* fp1;fopen_s(&fp1, output, "wb+");while (i <= num_frame) {fread(buffer[0], 1, w * h, fp);for (int i = 0; i < (h >> 1); i++) {for (int j = 0; j < (w >> 1); j++) {fread(&buffer[1][i * (w >> 1) + j], 1, 1, fp);fread(&buffer[2][i * (w >> 1) + j], 1, 1, fp);}}fwrite(buffer[0], 1, w * h, fp1);fwrite(buffer[1], 1, (w >> 1) * (h >> 1), fp1);fwrite(buffer[2], 1, (w >> 1) * (h >> 1), fp1);i++;}fclose(fp1);fclose(fp);free(buffer);return 0;
}

使用方法

1、利用VS生成exe可执行文件。
2、利用bat文件调用exe,在bat文件中按顺序输入相关参数,参数之间用空格分开

bat文件示例

NV12to420.exe D:\4K_NV12\nightLab_3840x2160_iso3200_8bit_30fps_850f_nv12.yuv 850 3840 2160 D:\4K_I420\nightLab_3840x2160_iso3200_8bit_30fps_850f_I420.yuv

C实现NV12转I420相关推荐

  1. yv12转nv12,nv12转I420

    yv12跟I420区别其实就是u.v顺序不一样,是平面格式,内存中u.v在连续的一块,nv12是打包格式,u.v交叉. yv12转nv12: void swapYV12toNV12(byte[] yv ...

  2. yuv420格式nv12,nv21,I420,YV12互转

    YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...

  3. 视频存储格式YUV420 NV12 NV21 i420 YV12

    1)YUV简介 YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式 ...

  4. 视频存储格式YUV420 NV12 NV21 i420 YV12详解

    1.YUV简介 YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式 ...

  5. android nv21 nv12,視頻存儲格式YUV420 NV12 NV21 i420 YV12

    1)YUV簡介 YUV格式有兩大類:planar和packed. 對於planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨后是所有像素點的V. 對於packed的YUV格式 ...

  6. yv12、I420、nv12、nv21相互转换

    YUV420P,Y,U,V三个分量都是平面格式,分为I420和YV12.I420格式和YV12格式的不同处在U平面和V平面的位置不同.在I420格式中,U平面紧跟在Y平面之后,然后才是V平面(即:YU ...

  7. 常用视频格式转换nv12,i420,i444,p010

    文章目录 视频存储格式 NV12转I420 NV12转I444 P010转I420 视频存储格式 P010格式与NV12格式一样,区别就是两个字节存一个像素值. Y Y Y Y Y Y Y Y Y Y ...

  8. 基于 WebRTC 实现自定义编码分辨率发送

    导读:2020年如果问什么技术领域最火?毫无疑问:音视频.2020年远程办公和在线教育的强势发展,都离不开音视频的身影,视频会议.在线教学.娱乐直播等都是音视频的典型应用场景. 文|何敬敬 网易云信客 ...

  9. 如何从开发小白到音视频专家

    如何从开发小白到音视频专家 原文地址:http://blog.csdn.net/dev_csdn/article/details/78738806 作者:卢俊,七牛云客户端团队技术负责人.拥有丰富的音 ...

  10. (转)从开发小白到音视频专家

    从开发小白到音视频专家 转载:https://blog.csdn.net/zhangbijun1230/article/details/83658012 本文整理自卢俊的演讲,目标读者是对音视频开发感 ...

最新文章

  1. Android studio 开发工具,试图预览工具不见了找会设置
  2. 使用HttpOnly提升Cookie安全性
  3. Packet Tracer 5.0配置cisco路由器详细说明
  4. [转]SQL Server 2005链接字符串
  5. 如何有效利用SD-WAN改善网络性能?
  6. Ubuntu环境下挂载新硬盘 --硬盘要挂载在某个文件夹下面
  7. rubymine 调试 redmine
  8. MySQL 基础———— UNION 联合查询
  9. 操作系统之进程管理:7、进程同步、进程互斥
  10. 微信小程序启动、更新机制
  11. 从数据仓库到大数据平台再到数据中台(内附13张架构图)
  12. 项目管理沙龙第十一次聚会纪要--当敏捷没有共识的时候
  13. 判断日期是否是合法的:
  14. hash hmac java_认证加密算法php hash_hmac和java hmacSha1的问题
  15. jdk优先级队列、延迟队列原理
  16. Bitwise Operators
  17. 如何安装Mac 下的markman破解版
  18. ipad/iphone内存管理二
  19. 如何在分割视频的基础上,分离视频中的音频
  20. kindle paperwhite 使用体验

热门文章

  1. 想要在工作中脱颖而出?这几款优秀的PC软件能够帮你
  2. 【Web前端】自制精简版的思源黑体ttf(728kb) - 包含2630个常用汉字+字母+数字+常用符号
  3. Chrome浏览器去广告插件 —— (Adblock Plus)
  4. Chrome浏览器历史版本下载
  5. 数字证书、ssl、sasl(GSSAPI,Kerberos)、jaas简单解释
  6. XX系统性能测试报告模板
  7. Ubuntu16.04 安装Caffe教程
  8. JSONObject.fromObject 找不到这个方法或是报错
  9. keeplive安装部署
  10. Xmind模板文档分享——生活计划(3)