请帮助提供点资料!

解决方案 »

  1.   

    在MPG文件中(VCD其实也是mpg文件,只不过它更特别,数据量是恒定的。)有很多特定的
    标志位,比如:
      00 00 01 ba   //VCD 桢开始
      00 00 01 bb   //系统序列开始
      00 00 01 b3   
      00 00 01 b8
      00 00 01 b7
      .........
    事实上有很多,每一个都很重要,都有其代表的含义。我们今天在这里解释的是000001bb
    这里包含的信息是什么,很难3言2语解释清楚,但是有一点,为了确保你所剪辑的最终文件
    能正常使用,我建议你将包含此信息的VCD桢也包含到你的目标文件中。这里有关于整个序列
    的解码所需要的部分信息。你在实际剪辑时不用经常判断当前的桢种是否有000001bb,因为在
    一个序列中,它将只出现一次,而一般一个文件也只有一个序列。
       为了,使得解说更加容易,我们下面以vcd为例讲解,
    在vcd中,你能经常找到000001ba,但是在它之前,你还能发现好多个字节,(不要问我几
    个我不记得了,自己找个文件看一下)。它们是几个近乎类似的字节,而且共有的12(13?
    ?)个字节是 00 ff ff ff ff ff ff ff ff ff ff ff 00 ,我们称它为vcd头吧,这里有
    解码器所需要的信息,如果是软件解压,他们不是必须的。紧跟其后的是时间戳,如果你
    够细心,你会发现每一桢得这几个字节是略微有点变化的,变化规律呢??仔细看看,好
    像跟时间有关啊,呵呵。如果,我们现在称以一个vcd头开始,终结于另一个
    vcd头之间的数据称为一桢,你会发现,vcd的每一桢的长度是固定的,是2352个字节。这
    很重要,记下吧。现在我告诉你关于时间的计算。对于vcd文件,影片时间的长度与文件的
    大小是有关系的。在vcd中,每秒种将播放75个vcd桢,请注意不是图桢,所以,与我们在
    上一节种说的并不矛盾。于是。每秒播放的字节数是·2352*75·个字节。你放心,
    这绝对准确,不信,你按这样计算,然后去跟Xing比较。这样一来我们在做程序时,可以
    很容易的控制了。比如,你要把VCD中,第5分02秒开始的10秒钟内的片断剪辑下来,你只需
    char *buf=new char[10*2352*75+1];
    int shandle= FileOpen(" xxxx.dat ",fmOpenRead);
    int thandle=FileCreate("xxx.dat");
    FileSeek(shandle,(5*60+2)*2352*75,0);
    FileRead(shandle,buf,10*2352*75);
    FileWrite(thandle,buf,10*2352*75);
    FileClose(shandle);
    FileClose(thandle);
    delete []buf; 
    这样,够明白了吗?
      
    下面讲述如何进行剪辑,。打开源文件,获得文件总播放时间长读
    查找VCD HEADER,你只需要后面的,前面的可以不要
    从找到的位置开始,每次读2352个字节,然后在前面几个查找,直到找到000001bb,
    到此之前的(包括这一桢),你可能都要写入新得文件。
    ok,从现在开始,你移动文件指针的位置时,必须以2352为单位移动
    移动到你需要开始的位置,以2352为单位,读和写就行了,直到你结束这一段。
    然后,再移动到你下次需要的位置,。。
    你可以一直重复,直到吧你所需的全部剪完。
    现在,关了吧,   很惭愧,现在才回到MPEG上。如果你需要剪辑Mpeg,那更容易了,
    只不过,你得把MPEG文件的查找目标该为000001ba,然后,把相应的读写单位改掉。
    一个笨的方法是,你先去想办法取得两个000001b1之间的长度,然后以此为基础,
    我想同一个文件,这些长度是固定的把。至于时间的算法,有点讨厌,我一时记不
    起来了,但是模拟刚才的,应该相差不大,等我想想吧。得到桢长度的具体办法,等
    我找一下再说吧。照上面所说的,你已经能写出自己的程序了,见完后别用媒体播放器播放,先用Xing吧。
    但是到目前为止,只是剪辑,还没处理,下次我们进行部分处理的讲解。
    先熟悉一下下面这个特征符号吧:
      00 00 01 00  //图桢的开始
      

  2.   

    to 
    cg1120(代码最优化-§人在爱情的空窗期要个梦§) 
    好象还没完
    你在哪看到的这个资料
    能提供个地址吗?
      

  3.   

    http://www.pchome.net/dl/videoproc.htm
    提供源码
      

  4.   

    cg1120把上面的文章给我发一个好吗?
    [email protected]
      

  5.   

    cg1120把上面的文章给我发一个好吗?
    [email protected]