(转)FLV文件结构解析

转载 2012年03月21日 17:08:26

FLV文件结构解析

FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。

tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。

 

FLV Header

一般比较简单,包括文件类型之类的全局信息

 

文件类型 3bytes 总是FLV(0x46 0x4C 0x56),否则...
版本

 

 

1byte 一般是0x01,表示FLV version 1

 

 

流信息 1byte

 

 

倒数第一bit是1表示有视频,倒数第三bit是1表示有音频,其他都应该是0(有些软件如flvtool2可能造成倒数第四bit是1,不过也没发现有什么不对)
header长度

 

 

4bytes 整个文件头的长度,一般是9(3+1+1+4),有时候后面还有些别的信息,就不是9了
     

 

FLV Body

FLV body就是由很多tag组成的,一个tag包括下列信息:

 

previoustagsize 4bytes 前一个tag的长度,第一个tag就是0
tag类型 1byte

 

三类:

  • 8 -- 音频tag
  • 9 -- 视频tag
  • 18 -- 脚本tag
数据区长度 3bytes  
时间戳 3bytes 单位毫秒,如果是脚本tag就是0
扩展时间戳

 

 

1byte 作为时间戳的高位
streamsID 3bytes 总是0(不知道干啥用)
数据区    

 

根据不同的tag类型就有不同的数据区

 

Audio tag 数据区

audio信息 1byte

 

前四位bits表示音频格式:

  • 0 -- 未压缩
  • 1 -- ADPCM
  • 2 -- MP3
  • 5 -- Nellymoser 8kHz momo
  • 6 -- Nellymoser

 

下面两位bits表示samplerate:

  • 0 -- 5.5kHz
  • 1 -- 11kHz
  • 2 -- 22kHz
  • 3 -- 44kHz

 

下面一位bit表示每个采样的长度:

  • 0 -- snd8Bit
  • 1 -- snd16Bit

 

下面一位bit表示类型:

  • 0 -- sndMomo
  • 1 -- sndStereo
audio数据区

 

 

不定  

 

video tag 数据区

video信息 1byte

 

前四位bits表示类型:

  • 1 -- keyframe
  • 2 -- inner frame
  • 3 -- disposable inner frame (H.263 only)

 

后四位bits表示编码器id:

  • 2 -- Seronson H.263
  • 3 -- Screen video
  • 4 -- On2 VP6
  • 5 -- On2 VP6 without channel
  • 6 -- Screen video version 2
video数据区

 

 

不定  

 

script tag 数据区

略n字...


转自:http://blog.csdn.net/b4362928/article/details/4970111

FLV文件结构解析

1. FLV文件格式相对于MP4,简单很多。    FLV Header(9Bytes) + FLV Body                         a比特: 1:有音频; 0:无音频   ...
  • huibailingyu
  • huibailingyu
  • 2015年01月19日 19:55
  • 1965

(转)FLV文件结构解析

FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与F...
  • gxj1680
  • gxj1680
  • 2012年03月21日 17:03
  • 663

C++ 解析flv文件

#include "stdafx.h" #include typedef struct FLV_HEADER { BYTE btSignature[3]; BYTE btVersion; B...
  • sz76211822
  • sz76211822
  • 2016年12月20日 11:15
  • 493

流媒体-FLV格式详解及数据分析

一、FLV文件格式 FLV包括文件头(File Header)和文件体(File Body)两部分。文件结构如图所示: 二、FLV文件头 header部分记录了flv的类型、版本等信息...
  • mm792261167
  • mm792261167
  • 2017年04月06日 17:08
  • 4298

用ffmpeg转换flv至mpeg

原贴:http://linuxdesktop.cn/2007/07/25/ffmpeg-convert-flv-to-mpeg 用ffmpeg转换flv至mpeg 2007-07-25 13:50 |...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年10月17日 00:51
  • 7652

从flv格式中分离出裸h264

自己测试可以用,原文链接http://blog.163.com/zhujiatc@126/blog/static/18346382013413112230525/ #include #incl...
  • occupy8
  • occupy8
  • 2015年11月16日 19:26
  • 1971

flvAnalyser 分析工具版本发布详情

flvAnalyser 使用说明书 2017-12-19 版本v0.0.1.002发布   Author: hybase@qq.com  QQ: 23207689 ==================...
  • zymill
  • zymill
  • 2017年12月18日 21:05
  • 176

wav格式音频转换成flv格式音频(一)

根据前一篇文章中对flv格式的分析,flv格式包括file header和file body两部分,因此可以如下定义file header以及Previous Tag Size#0,如下: cons...
  • linyanwen99
  • linyanwen99
  • 2012年04月26日 18:02
  • 1347

也说FLV格式分析(C语言从0开始,详解,完整版)

也说FLV格式分析(C语言完整版) 最近想写一个在线视频播放软件,经研究得知某视频网站会将一个视频成很多段来投放从而方便在线缓冲,以及加Ad之类的目的。下载后大概如下图所示(星哥的九品芝麻官)...
  • spygg
  • spygg
  • 2016年12月27日 16:09
  • 1914

FLV文件格式官方规范详解

——如果要学习一个新的知识点,官方手册可能是最快的途径。查看网上其他人的总结也许入门更快,但是要准确,深入,完整,还是要看官方手册。以下内容来自对官方文档Video File Format Speci...
  • chgaowei
  • chgaowei
  • 2016年04月25日 16:41
  • 16416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)FLV文件结构解析
举报原因:
原因补充:

(最多只允许输入30个字)