如何将视频文件中的数据保存到数组中

问题描述:

这是我的解析文件视频文件



Here is mine to parse the file video file

int parsingmain1(char *Filepath){
	 FILE* infile;

    uint8_t* buf = (uint8_t*)malloc(BUFSIZE );

    h264_stream_t* h = h264_new();

    /*if (argc < 2) { usage(); return EXIT_FAILURE; }*/
	 infile = fopen(Filepath, "rb");



    if (infile == NULL) { fprintf( stderr, "!! Error: could not open file: %s \n", strerror(errno)); exit(EXIT_FAILURE); }
	h264_dbgfile = fopen ("C:\\myfile.txt","w");
   /* if (h264_dbgfile == NULL) { h264_dbgfile = stdout; }*/
    int opt_verbose = 1;
    int opt_probe = 0;
	 size_t rsz = 0;
    size_t sz = 0;
    int64_t off = 0;
    uint8_t* p = buf;

    int nal_start, nal_end;
	   while (1)
    {
        rsz = fread(buf + sz, 1, BUFSIZE - sz, infile);
        if (rsz == 0)
        {
            if (ferror(infile)) { fprintf( stderr, "!! Error: read failed: %s \n", strerror(errno)); break; }
            break;  // if (feof(infile)) 
        }

        sz += rsz;

        while (find_nal_unit(p, sz, &nal_start, &nal_end) > 0)
        {
            //here i want to save the data from the file of which i have given the path into an array(2d or 1d) of length specified by nal_start and nal_end
        }
    }
return 0;
}





请提供伪码



Please provide the pseudo code

您需要将存储类型视频设为:

You need to make the storage type video as:
{
string name;
string location;
}

依旧...



因此,如果您的对象存储为字节数组,那么它将是:



and so on...

So if your object is stored as a byte array it would be:

video[] Video = new video[255]; 





这将提供256个视频。我还建议使用列表而不是数组,但这就是你想要的。



This would give 256 videos. I would also recommend using lists not arrays but this is what you wanted.