FLV详解:音频/视频/script标签与header结构

需积分: 0 0 下载量 67 浏览量 更新于2024-08-05 收藏 99KB PDF 举报
FLV(Flash Video)是一种广泛应用于网络视频传输的文件格式,由Adobe公司开发,最初是为了在Flash Player上播放视频而设计的。FLV文件主要由FLVheader(头部信息)和FLVbody(主体数据)两部分构成,其中FLVbody由多个tag(标签)组成,这些tag分为audio(音频)、video(视频)和script(脚本)三种类型,分别承载不同的媒体数据和控制信息。 FLVheader是FLV文件的起始标识,其结构固定,通常包含9个字节。首先,3个字节表示文件类型,固定为0x460x4C0x56,表明这是FLV文件。接着,1个字节表示FLV版本,早期版本通常是0x01。第6位用于标记音频是否存在,第8位用于标记视频是否存在,后续4个字节是header的长度,确保了其一致性。 每个tag由两部分组成:15字节的tag类型信息和tagdata。tag类型信息包括前一个tag的长度(如果是第一个tag则为0)、1个字节的tag类型(如0x08表示audio tag,0x09表示video tag,0x12表示script tag),以及3个字节的数据区域长度和时间戳信息。对于script tag,时间戳通常为0,扩展时间戳占用1个字节。 音频tag(audio tag)结构复杂,包含1个字节的音频类型信息,可以识别出多种编码格式,如Linear PCM、ADPCM、MP3、AAC、Nellymoser等,通过第5-6位的采样率和第7-8位的采样大小及声道数来区分。例如,AAC编码支持不同频率和声道设置,如5.5kHz、11kHz等,且默认为16-bit单声道。 视频tag(video tag)和音频tag类似,但具体编码和参数可能根据实际内容有所不同,但其基本结构包括类型标识、编码信息等。script tag则主要负责存储文件元数据和控制信息,不包含音频或视频数据。 总结来说,FLV文件的组织方式使得它能够高效地在网络环境中传输和播放多媒体内容,而其细致的tag结构允许灵活处理音频、视频和脚本数据。理解FLV文件的细节对于开发相关软件、解码器和网络流媒体应用至关重要。