FFMPEG入门[通俗易懂]

FFMPEG入门[通俗易懂]本文转自 http://blog.csdn.net/leixiaohua1020/article/details/15811977

大家好,又见面了,我是你们的朋友全栈君。

本文转自 http://blog.csdn.net/leixiaohua1020/article/details/15811977

1、分离YUV420P像素数据中的Y、U、V分量

/** 
 * Split Y, U, V planes in YUV420P file. 
 * @param url  Location of Input YUV file. 
 * @param w    Width of Input YUV file. 
 * @param h    Height of Input YUV file. 
 * @param num  Number of frames to process. 
 * 
 */  
// simplest_yuv420_split("test_yuv420p.yuv",256,256,1);
int simplest_yuv420_split(char *url, int w, int h,int num){  
    FILE *fp=fopen(url,"rb+");  
    FILE *fp1=fopen("output_420_y.y","wb+");  
    FILE *fp2=fopen("output_420_u.y","wb+");  
    FILE *fp3=fopen("output_420_v.y","wb+");  
  
    unsigned char *pic=(unsigned char *)malloc(w*h*3/2);  
  
    for(int i=0;i<num;i++){  
  
        fread(pic,1,w*h*3/2,fp);  
        //Y  
        fwrite(pic,1,w*h,fp1);  
        //U  
        fwrite(pic+w*h,1,w*h/4,fp2);  
        //V  
        fwrite(pic+w*h*5/4,1,w*h/4,fp3);  
    }  
  
    free(pic);  
    fclose(fp);  
    fclose(fp1);  
    fclose(fp2);  
    fclose(fp3);  
  
    return 0;  
}  

从代码中可以看出,如果视频帧的宽和高分别为w和h,那么一帧YUV420P像素数据一共占用w*h*3/2 Byte的数据。其中
前 w*h Byte存储Y,接着的w*h/4 Byte存储U,最后w*h/4 Byte存储V。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153387.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月26日 上午6:16
下一篇 2022年6月26日 上午6:36


相关推荐

  • pycharm双击打不开,没有反应,下列方法亲测有用!

    pycharm双击打不开,没有反应,下列方法亲测有用!关于这个问题,刚好我朋友安装的pycharm出现了同样地问题,激活成功教程安装一段时间后就突然打不开了,网上有许多的解决办法,我都试了一遍还是无果,后来自己发现了问题所在,首先给大家科普一下网上的方法,再放上我的,请大家耐心读完。亲测有效!!!第一种:1.打开C:\Windows\System32;以管理员身份运行cmd.exe;2.在打开的cmd窗口中,输入netshwinsockreset,按回车键;3.重启电脑;4.重启后,双击pycharm图标就能打开了!第二种:在Pycha

    2022年8月25日
    9
  • 【VC++、OpenCV3.4】矩阵掩模mask

    【VC++、OpenCV3.4】矩阵掩模mask这一节主要讲图像在像素级上的操作 掩模 包括获取图像的像素指针 掩模的解释 1 获取图像像素的指针 Mat pt 得到 Mat 对象之后可以由对象获取对象的指针 Mat ptr lt uchar gt inti 0 获取像素矩阵的指针 索引 i 表示第几行 从 0 开始计数 获得当前行的指针 constuchar current myimage ptr lt uchar gt row

    2026年3月18日
    2
  • Oracle Sequence Cache 参数说明[通俗易懂]

    Oracle Sequence Cache 参数说明[通俗易懂]之前整理的一篇文章:   ORACLESEQUENCE介绍http://blog.csdn.net/tianlesoftware/archive/2009/10/30/4745039.aspx 之前整理的一篇文章。那是还是写blog初期的作品。2009年10月份的。转眼一年,写Blog也比以前成熟了很多。 一.理论知识先看一个创建Sequence的语句:SQL>creates

    2022年10月9日
    6
  • Anaconda创建环境、删除环境、激活环境、退出环境

    Anaconda创建环境、删除环境、激活环境、退出环境Anaconda 创建环境 下面是创建 python 3 6 版本的环境 取名叫 py36condacre npy36python 3 6 删除环境 不要乱删啊啊啊 condaremove npy36all 激活环境 下面这个 py36 是个环境名 sourceactiva conda4 的是 condaactiva

    2026年3月18日
    2
  • 关于向量的叉乘右手定则判方向

    关于向量的叉乘右手定则判方向本文转载自 https zhidao baidu com question 528267710 htmla b 的方向 四指由 a 开始 指向 b 拇指的指向就是 a dub 的方向 zhi 垂直于 a 和 b 所在的平面 b a 的方向 四指由 b 开始 dao 指向 a 拇指的指向就是 b a 的方向 垂直于 b 和 a 所在的平面 a b 的方向与 b a 的方向是相反的 且有 a b b a 注 向量积 向量的积 向量的积一般指点乘 一定要清晰地区分开向量积 矢积 与数量积 标积 扩展资料 叉乘满足的基本的性质如下 向量 a

    2026年3月26日
    1
  • 最小二乘法推导以及理解[通俗易懂]

    最小二乘法推导以及理解[通俗易懂]我在网上发现了两种推导方式,于是自己跟着推导了一遍。。。。。(一)(高数式推导): [参考博客](https://blog.csdn.net/MarsJohn/article/details/54911788) 这里先引入两个提前推得出的结论: ![两个结论](https://img-blog.csdnimg.cn/20190907195440348.jpg?x-oss-proce…

    2022年5月17日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号