zoukankan      html  css  js  c++  java
  • avi的index段

      假如要将avi文件分成头、中、尾的话,RRFT开始到movi段之间应该算是头,movi算是中间,index就算是尾部了。index其实就是movi中的内容的索引,作用是在拖动视频进度条时,能让解码器迅速定位到要找的视频帧。索引以“idx1”开头,后面跟着的是整个索引的大小,其基本结构是:

    struct AVI_index_entry{
         unsigned char dwChunkId[4];//表征本数据块的四字符码
         DWORD dwFlags;//说明本数据块是不是关键帧、是不是‘rec’列表等信息
         DWORD dwOffset;//本数据块在文件中的偏移量
         DWORD dwSize;//本数据块的大小
    };

    大家看一个实例:

    “idx1”就是索引的头

    30 5b 00 00是索引的大小

    大家看看实例的第二行,它们对应avi文件中的每一帧或者没一段音频:

    30 30 64 63(“00dc”)是数据结构中的dwChunkId,当该段数据时音频时取(“01wb")

    10 00 00 00 是dwFlags,关键帧取值为10 00 00 00,否则取值为00 00 00 00

    04 00 00 00 是dwOffset;//本数据块在文件中的偏移量
    BF 0E 00 00 是dwSize,对应帧的大小

      在最初合成avi视频的时候,我是没有添加index段的,视频一样可以播放。可是当你要拖动视频时,视频不会立刻跳到你所要的位置,而是加快播放速度,直到到达目标位置。

      目前遇到一个问题:当我将索引加进去avi以后,播放器需要有一个缓冲的过程,有点像用迅雷下载电影,可是没等电影下完,改过后缀就去播放的状况。问题解决以后再来补充吧。

  • 相关阅读:
    UOJ309 UNR #2 排兵布阵
    BZOJ4860: [Beijing2017]树的难题
    CQOI2017 部分题解
    SDOI2017 Round1 Day2 题解
    记SCOI2017
    BZOJ3810: [Coci2015]Stanovi
    BZOJ4785: [Zjoi2017]树状数组
    「ZJOI2007」「LuoguP1169」棋盘制作(并查集
    「LuoguP4147」 玉蟾宫(并查集
    「LuoguP1402」 酒店之王(最大流
  • 原文地址:https://www.cnblogs.com/ManMonth/p/1675917.html
Copyright © 2011-2022 走看看