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

kmeans聚类分析结果怎么看_【Stata与机器学习】物以类聚-KMeans算法应用案例介绍...

古语有云:物以类聚,人以群分。KMeans是无监督机器学习中的聚类算法中最简单的一种——基于特征对样本进行归为不同的类,很好地阐述了‘物以类聚’这句话的精髓。机器学习又叫统计学习。既然都统计了,所以当然包括了计量经济学。所以一般来说,机器学习的算法类型远多于计量经济学。比如线性回归,这个算是机器学习算法中比较基础的部分。当然,计量经济学在回归分析、因果推断方面的造诣,也是普通机器学算法所不能比的。...

weixin_39857480的博客 1万+

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

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

手把手教你用Siemens EDA破解工具搞定PADs VX2.7安装与卡死问题

本文详细介绍了如何使用Siemens EDA工具解决PADs VX2.7的安装与卡死问题。从License配置到性能调优,提供全面的解决方案,帮助工程师高效完成电子设计自动化任务。特别针对常见的卡顿现象,给出了输入法兼容性调整、图形性能优化等实用技巧。

k8l9m0n的博客 553

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1086

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

实验六 有源滤波器

实验六 有源滤波器一、实验目的二、仪器及设备三、预习要求画出三个电路的幅频特性曲线。四、实验内容l.低通滤波电路2.高通滤波电路3.带阻滤波电路(1)实测电路中心频率。(2)以实测中心频率为中心,测出电路幅频特性。五、实验报告六,仿真图:图 1 低通滤波器仿真图图 2 高通滤波器仿真图图 3 带阻滤波电路仿真图 一、实验目的 1.熟悉有源滤波电路构成及其特性。 2.学会测量有源滤波电路幅频特性。 二、仪器及设备 1.示波器 2.信号发生器 三、预习要求 1.预习教材有关滤波电路

胡毛毛的博客 1万+

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

Oracle Linux中/var/log/pcp/pmlogger目录膨胀问题分析与解决

本文详细分析了Oracle Linux系统中/var/log/pcp/pmlogger目录异常膨胀的常见原因与解决方案。当PCP性能监控框架的pmlogger服务日志轮转或清理机制失效时,会导致该目录无限增长,威胁系统稳定。文章提供了从服务状态诊断、配置文件审查到安全清理与预防策略的全流程实战指南,帮助运维人员快速回收磁盘空间并恢复服务正常运行。

weixin_29208327的博客 371

【SystemVerilog基础】SystemVerilog Assertion 概述

断言主要是描述复杂的设计行为;是传统验证方法学一个很好的补充,可以检查到电路内部细节,相当于一种白盒验证,传统的验证方法学是纯粹的黑盒验证!property跟上面的sequence差别不大,唯一有差别可能多了两个implication(|->,|=>)注意,当有前置条件时,不满足前置条件不会fail,而是伪真!上面这个因为没有前置条件,每个周期都会去检查!注意:当没有前置条件时,不满足条件会直接fail!

MoorePlus的博客 332

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

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

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

芒果YOLO11改进145:Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

旋转检测Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

包括YOLOv5、YOLOv7、YOLOv8等模型改进 565

Flv的结构分析

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

查理王的博客 330

【AUTOSAR-E2E】-2.3-配置E2E:基于E2EPW配置一个RX接收的Signal Group(使用E2E Profile 1)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <-.

「汽车电子助手」的博客 3952

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

gxj1680的专栏 693

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【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万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【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、付费专栏及课程。

余额充值