FLV 结构分析

FLV 实例分析 上一篇文章我们就FLV文件格式做了一个分析,这篇文章,我们结合实际的FLV文件对照着FLV的结构来一一分析一遍。我们用UltraEdit打开一个FLV文件,我们看到的内容大概是这样的: 其中选中的9个字节就是FLV header 我们通过最右边的字符表述可以很清楚的知道。 头三个字节 0x46 0x4C 0x56 正好是FLV三个字母的ASCII码的值。 接下来的一个字节 0x01 就是Ver 阅读详情
FLV是由The FLV header 和 The FLV File Body 组成.
一.The FLV header
Field             Type     Comment
Signature     UI8     Signature byte always 'F' (0x46)
Signature     UI8     Signature byte always 'L' (0x4C)
Signature     UI8     Signature byte always 'V' (0x56)
Version     UI8     File version (for example, 0x01 for FLV version 1)
TypeFlagsReserved     UB [5]     Shall be 0
TypeFlagsAudio     UB [1]     1 = Audio tags are present
TypeFlagsReserved     UB [1]     Shall be 0
TypeFlagsVideo     UB [1]     1 = Video tags are present
DataOffset     UI32     The length of this header in bytes

Signature: FLV 文件的前3个字节为固定的‘F’‘L’‘V’,用来标识这个文件是flv格式的.在做格式探测的时候,如果发现前3个字节为“FLV”,就认为它是flv文件.

Version: 第4个字节表示flv版本号.

Flags: 第5个字节中的第0位和第2位,分别表示 video 与 audio 存在的情况.(1表示存在,0表示不存在)

DataOffset : 最后4个字节表示FLV header 长度.

二.The FLV File Body

文件体是由很多标签组成的,其结构见下表

标签0大小  4     恒为0
标签 1
标签1大小  4
标签 2
标签2大小  4
……
标签 N-1
标签N-1大小 4
标签 N
标签N大小  4
----------------------------
说明:
  1).注意标签大小是跟在对应的标签后面的,这一点与许多媒体文件的结构是不同的。
  2).注意标签大小不包括本身所占用的4字节。
  3).标签0的大小≡0,表示没有标签0。

三.标签结构
标签包括标签头和标签数据区两部分。不同类型的标签,其头结构是相同的,只是标签数据的结构各不相同。
   标签类型  1     目前只有3类
   数据区大小 3     标签数据区的大小
   时间戳   3
   扩展时间戳 1
   流ID    3     ≡0

  1).标签类型目前只有3类:8表示音频标签,9表示视频标签,18表示脚本标签。其它值被保留。
  2).时间戳表示该标签从什么时间开始播放,这是一个UI24类型((该类型为3字节的整型数据,VB中没有对应的数据类型)的值。时间戳的单位为ms。标签1的时间戳=0,脚本标签的时间戳也=0(实际上脚本标签一般就是标签1)。
  3).扩展时间戳是当时间戳的3字节24位不够用时,该字节作为最高位(注意是最高位)将时间戳扩展为32位值。
  4).数据区大小不包括标签头的11字节,也不包括表2中的标签大小项目本身占用的4字节,标签头之后紧接着就是标签数据区。
  5).标签大小=数据区大小+标签头长度。
1.音频标签数据区的结构
音频标签数据区的第1个字节包含了音频数据的参数信息,从第2个字节开始为音频流数据。 第1个字节中,前4位表示音频数据的格式,第5-6位的数值表示采样率,第7位表示采样精度, 第8位表示音频类型
2.视频标签数据区的结构
视频标签数据区的第1个字节包含了视频数据的参数信息,从第2个字节开始为视频流数据。 第1个字节中,前4位的数值表示帧类型(关键帧、中间帧)后4位的数值表示视频编码ID
3.脚本标签数据区的结构
    脚本标签通常又被称为元数据标签(Metadata Tag),包含一些关于FLV视频和音频的参数信息,如持续时间(duration)、视频宽度和高度等。通常脚本标签紧跟在文件头后面作为第一个标签出现,并且一般只有一个。
  一般来说,脚本标签数据区的结构就包含两个AMF包。AMF(Action Message Format)是Adobe设计的一种通用数据封装格式,在Adobe的很多产品中应用。简单来说,AMF将不同类型的数据用统一的格式来描述。
  第一个AMF包封装字符串类型数据,用来装入一个"onMetaData"标志,这个标志与Adobe的一些API调用有关,在此不详述。
  第二个AMF包封装一个数组类型,这个数组中包含了一些媒体信息:例如视频的高、宽和编码ID、帧率;音频的信息如采样率、编码ID、样本大小、是否立体声,还有整个文件的大小等等。

flvAnalyser 收藏的一个flv分析功能,希望对大家有用。 一、基本功能点 1 文件格式分析 2 数据分析:Tag列表,16进制分析 3 时间戳分析 4 码率分析 5 音视频同步分析 6 日志记录 正常文件INFO级别为主 遇到错误,黄色,红色,橙色提示 7语法指南(FLV基本语法) 8 视频、音频ES提取存文件; 9 时间信息提取存文件; [可选纯视频,纯音频,音视频交叉] 立即下载

相关推荐

flvAnalyser flv流分析工具

flv流分析工具 可分析flv流数据

FLV 封装格式解析

FLV 实例分析 FLV(Flash Video) 是一种非常流行的多媒体封装格式。它可以以文件的方式存储,也可以承载在RTMP协议之上。作为网络传输的一种封装格式。像我们现在大部分的视频网站,或者是直播网站都是使用这种格式。所以对于从事多媒体行业的人员来说,FLV也是一个我们应该掌握的基本的封装格式了。 在介绍FLV文件结构之前,我们需要先理解两个概念,大端模式和小端模式。 大端模式:

雷霆小屁熊的专栏 7681

【KITTI数据集中Raw_Data数据标定文件中的参数关系解读】

上一节本人将KITTI Odometry数据集中的参数文件进行了解释。本节主要针对一些做融合slam的人,将Raw_Data数据标定文件中的参数按照自己的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

weixin_43389152的博客 1526

FFmpeg4.3开发系列之二:音视频基础理论

我将带领大家一起来学习音视频基础理论,真正进入音视频的世界。学习音频、视频、编解码(H.264, AAC)等基础理论。学习FFmpeg的基础知识与应用常识。 音视频是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?因为没有学习音视频的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。

OCV/AOCV/SOCV的介绍和应用

library中的cell delay是在某个固定的PVT(operating condition)下仿真得出的。,cell的delay并不是一个固定值,而是一个随机值,遵循高斯分布或门特卡洛分布,在STA中用OCV来模拟这一『特征』。OCV全称on chip variation,用于描述不同管子间由于工艺偏差、电压降、温度变化引起的delay变化。,也用于描述工艺偏差引起的net厚度宽度的变化从而导致net的电容电阻变化。优点:设置起来比较简单粗暴,对于不那么先进的工艺可行!的影响,更贴合实际。

m0_61003348的博客 8980

Nmap的介绍、安装 并进行网络扫描

Nmap概述 Nmap(Network Mapper(网络映射器))是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Cheney ' blog 2万+

FlvAnalser简介

1.下载地址   https://blog.youkuaiyun.com/zymill/article/details/78837164 2.flv视频格式   直播推流的时候需要用到RTMP的视频数据格式,RTMP 的视频格式和 FLV很像,通过查看 FLV的格式文档,可以分析 FLV 格式来解析 RTMP 格式。   RTMP 中的数据就是由 FLV 的 TAG 中的数据区构成。   FLV是流媒体封装格式是流媒体封装格式,我们可以将其数据看为二进制直字节流。总体上看,FLV包括头文件头((File Header)

小葵哥的博客 601

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1244

flvAnalyser v0.2.1.002版本发布

2025-12-28版本 win64位 v0.2.1.002 (通用FLV分析工具,并附加H264/H265/VVC/AVS+AVS2/AVS3视频语法分析) 下载地址: 链接1:https://pan.baidu.com/s/1AyocRPTT89zmxLnagfJbIg 提取码: nt6q 链接2:https://github.com/zymill/flvAnalyser 链接3:https://codechina.youkuaiyun.com/mirrors/zymill/flvAnaly......

Zymill's Blog 2066

ArcMap实战:用栅格计算器搞定16年NDVI趋势分析,附完整F检验流程

本文详细介绍了如何使用ArcMap的栅格计算器进行16年NDVI趋势分析,包括数据预处理、线性趋势计算和F显著性检验的全流程操作。通过实际案例和统计原理解析,帮助GIS从业者掌握植被覆盖变化的分析方法,特别适合生态评估和农业监测应用。

weixin_29251567的博客 252

Multisim实战:5分钟搞定一阶RC电路仿真(附示波器波形分析技巧)

本文通过Multisim软件,详细演示了如何快速搭建一阶RC电路并进行仿真分析。文章提供了从元件选取、电路连接、虚拟示波器设置到波形观测的完整流程,并重点分享了测量时间常数、区分电路响应类型等核心分析技巧,帮助电子工程初学者和爱好者高效掌握电路仿真与分析方法。

weixin_29175469的博客 182

【音视频基础】flvAnalyser 分析工具

直播推流的时候需要用到RTMP的视频数据格式。RTMP的视频格式和FLV相似,通过查看FLV的格式文档,可以通过分析FLV协格式来解析RTMP格式。RTMP中的数据就是由FLV的TAG中的数据区构成。FLV是流媒体封装格式,可以将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成,如下图所示。

C/C++Linux、音视频、DPDK 972

OpenCloudOS9操作系统搭建Confluence8.2.1+Jira企业级WIKI

Atlassian Confluence是一个专业的企业知识管理与协同软件,可用于构建企业wiki

背锅神童的博客 1022

Flv的结构分析

Flv是网络上流行的非常广的一种媒体格式,很多大型媒体网站都在使用这种格式承载音视频信息,比如优酷等网站。 Flv文件格式相对而言还是比较简单的,主要是由两部分组成 FLV header FLV body FLV header 前9个字节 46 4c 56 01 05 00 00 00 00 09 第一到第三字节(46 4c 56...

查理王的博客 330

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

(转)FLV格式解读之数据tags结构及实例分析

data tag的组成 ------------------------------------ data tags被flash player中的NetStream调用. 一个meta包的内容由两个amf包组成. 第一个(amf类型0x02)是基本上总是由2个字节带字符串长度+字符串组成. 第二个(amf类型0x08)是由一个数组组成,数组中的各个元素是由不同类型组成.

gxj1680的专栏 693

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【FFmpeg】FLV 格式分析 ② ( Tag Body 数据块体结构 - Audio Data 音频数据 | AAC 序列头 AudioSpecificConfig 结构分析 )

一、Tag Body 数据块体结构 - Audio Data 音频数据 1、Audio Data 音频数据简介 2、Audio Data 音频数据结构分析 4、Audio Data 音频数据 中 AAC Packet Type 字段说明 5、AAC 序列头 AudioSpecificConfig 结构分析 6、AAC 原始数据块 Raw AAC Data 结构分析 7、AAC 序列头 AudioSpecificConfig 与 AAC 原始数据块 Raw AAC Data 对比分析 8、AAC Packet

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【FFmpeg】FLV 格式分析 ① ( File Header 文件头 | File Body 文件体 | Tag Header 数据块头结构 | Script Data 元数据结构 )

一、FLV 格式简介 1、FLV 格式 2、FLV 格式特点 二、FLV 文件结构 1、FLV 文件总结构 - File Header 文件头、File Body 文件体 2、File Header 文件头 3、Previous Tag Size 前一个标签大小 4、Tag 数据块 三、Tag Header 数据块头结构 3、Tag 数据块三种类型 四、Tag Body 数据块体结构 - Script Data 元数据 2、Script Data 元数据 Tag Body 结构组成

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7030

FLV文件结构分析(转载加修改)

 FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。 FLV Header一般比较简单,包括文件类型之类的全局信息文件类型3bytes总是FLV(0x46 0x4C 0x56),否则...版本1by

4646

FLV格式分析

FLV封装格式是由⼀个⽂件头(FLV header)和⽂件体(FLV Body)组成。其中,FLV body由⼀对对的(Previous Tag Size字段+tag)组成。Previous Tag Size字段排列在Tag之前,占⽤4个字节。Previous Tag Size记录了前⾯⼀个Tag的⼤⼩,⽤于逆向读取处理。FLV header后的第⼀个Pervious Tag Size的值为0

weixin_46133228的博客 1047

flv文件格式解读之data tags结构及实例分析

data tag的组成 //------------------------------------ data tags被flash player中的NetStream调用.一个meta包的内容由两个amf包组成.第一个(amf类型0x02)是基本上总是由2个字节带字符串长度+字符串组成,第二个(amf类型0x08)是由一个数组组成,数组中的各个元素是由不同类型组成. data tags...

hgfghw1 247

flv FLV帧全面分析。研究心得。 视频帧结构

http://blog.youkuaiyun.com/peijiangping1989/article/details/6999224 转载于:https://www.cnblogs.com/spiderdzl/p/3848661.html

weixin_33905756的博客 173

【FFmpeg】FLV 格式分析 ③ ( Tag Body 数据块体结构 - Vedio Data 视频数据 )

一、Tag Body 数据块体结构 - Video Data 视频数据 2、Vedio Data 视频数据 结构分析 4、AVC Packet Type 字段说明 二、AVC Sequence Header 类型 的 结构分析 1、AVC Sequence Header 类型结构 2、H.264 的主要 Profile 3、H.264 的 Level 三、AVC NALU 类型 的 结构分析 四、AVC End of Sequence 类型 的 结构分析

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7748
上一篇: 基于ffmpeg的播放器起播延迟优化
下一篇: adb获取android手机系统版本,已对应的api版本和硬件相关信息
水家那桶水
博客等级 码龄15年 14粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值