<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在进行YUV文件操作时,经常会遇到需要选取YUV源文件中的一部分帧,这就需要对源文件进行裁剪。实现的原理就是根据帧大小读取源文件,然后保存需要的帧。下面的代码给出实现的主要过程:</span> <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="cpp">int cutYUV(char* filename,int width,int height,int startFrame,int endFrame,int pixfmt) { int len=0; int ret = 0; int FrameNum = 0,frameCount = 0; long int ysize,uvsize; long int framesize; char dstfilename[256]="\0"; char startF_c[40], endF_c[10]; FILE* srcFile, *cutFile; char* frameBuffer; srcFile = fopen(filename, "rb");/*open source file*/ if (!srcFile) { printf("No such file\n"); return -1; } /*get destination