首页 分享 FLV封装格式介绍及解析

FLV封装格式介绍及解析

来源:萌宠菠菠乐园 时间:2024-09-26 23:09

最新推荐文章于 2023-03-03 19:55:08 发布

pengliang528 于 2019-09-06 11:17:05 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

flv封装格式

FLV(Flash Video)是Adobe公司推出的一种流媒体格式,由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。目前主流的视频网站基本都支持FLV。采用FLV格式封装的文件后缀为.flv。

FLV封装格式是由一个文件头(flie header)和 文件体(file Body)组成。其中,FLV body由一对对的(Previous Tag Size字段 + tag)组成。Previous Tag Size字段 排列在Tag之前,占用4个字节。Previous Tag Size记录了前面一个Tag的大小,用于逆向读取处理。FLV header后的第一个Pervious Tag Size的值为0。Tag一般可以分为3种类型:脚本(帧)数据类型、音频数据类型、视频数据。FLV数据以大端序进行存储,在解析时需要注意。一个标准FLV文件结构如下图:

FLV文件的详细内容结构图

FLV header

注:在下面的数据type中,UI表示无符号整形,后面跟的数字表示其长度是多少位。比如UI8,表示无法整形,长度一个字节。UI24是三个字节,UI[8*n]表示多个字节。UB表示位域,UB5表示一个字节的5位。可以参考c中的位域结构体。

FLV头占9个字节,用来标识文件为FLV类型,以及后续存储的音视频流。一个FLV文件,每种类型的tag都属于一个流,也就是一个flv文件最多只有一个音频流,一个视频流,不存在多个独立的音视频流在一个文件的情况。FLV头的结构如下:

FLV Body

FLV Header之后,就是FLV File Body.FLV File Body是由一连串的back-pointers + tags构成。Back-pointer表示Previous Tag Size(前一个tag的字节数据长度),占4个字节。


FLV Tag

每一个Tag也是由两部分组成:tag header 和 tag data。Tag Header里存放的是当前tag的类型、数据区(tag data)的长度等信息。tag header一般占11个字节的内存空间。FLV tag结构如下:

相关知识

访问者模式==封装??
解析畜牧兽药《中兽医学杂志》期刊杂志:介绍及论文发表投稿指南
解析动物医学《兽医导刊》期刊杂志:刊物介绍及论文发表投稿指南
解析动物医学《浙江畜牧兽医》期刊杂志:介绍及论文发表投稿指南
解析动物医学《新疆畜牧业》期刊杂志:介绍及论文发表投稿指南
解析动物医学《湖北畜牧兽医》期刊杂志:介绍及论文发表投稿指南
深度解析 天龙八部手游宠物属性及技能介绍
第16届中国动漫金龙奖参赛细则及奖项设置
宠物内科学试题及答案解析
宠物内科期末考试题及答案解析

网址: FLV封装格式介绍及解析 https://www.mcbbbk.com/newsview262512.html

所属分类:萌宠日常
上一篇: 吸客能力强大,消费业绩飘红 长沙
下一篇: 4的n次方*8的n

推荐分享