yuv格式的视频,可能是由于拍摄设备的问题,发现其中相邻两帧完全一样,为了进行后续的处理,必须将冗余去除,即要得到偶数或奇数序列的帧组成的视频,因此,利用C实现了提取与重组。对于其他格式的文件方法基本类似。
#include<stdio.h>
char data[1382400]; //1382400是我提前计算好的每帧的大小 每帧像素个数为1280×720,且yuv每个像素占用1.5byte的像素空间。 //所以每帧大小为 1280*760*1.5=1382400
int main()
{
int nFrame,size;
FILE * in,*out;
//获取输入序列
in = fopen("F:\\vcTest\\Test\\1.yuv","rb+"); //rb+表示读写一个二进制的文件
out = fopen("F:\\vcTest\\Test\\ceshi.yuv","a"); //a表示以附加的方式打开只写文件,若指定位置没有该文件,则创建该文件,
//若存在该文件,则将要添加的内容放在在文件的末尾
if(in==NULL)
{
return -1;
}
fseek(in,0,SEEK_END); //将文件指针移到文件末尾
size=ftell(in); //得到文件尾相对于文件首的位移,即文件的总字节数
rew