FLV(1) ------FLV协议

本文详细介绍了FLV和RTMP的关系,指出FLV可视为RTMP的一部分。FLV协议包含FLVHeader和数据两部分,其中FLVHeader有九个字节,标识文件类型及是否存在音频和视频。数据部分由pretagsize、tag交替组成,tag分为AudioTag、VideoTag和ScriptTag。文章通过思维导图辅助理解,适合对流媒体协议感兴趣的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FLV与RTMP关系密切,你甚至可以认为FLV就是RTMP。

FLV与RTMP的区别?

RTMP加一个头tag就成了FLV

我们现在分析下FLV的协议

FLV包括FLV Header和数据两部分

我们先分析FLV Header,FLV Header有九个字节。我们来分析下

1-3字节表示当前是‘F’ 、'L'、‘V’

4字节表示当前的flv版本号

5字节:具体表示为1-5位为0,6位代表存在音频,7位保留位是0, 8位代表存在视频

6-9字节:代表header的大小,目前数值为9

 

下面我们看看下FLV的数据部分

FLV的数据是由pre tagsize 、tag、pre tagsize 、tag交替出现组成。

pre tagsize 占四个字节,表示前一个tag的大小。第一个pre tagsize为0,因为是第一个所以为0.

我们重点分析下tag

Tag有三种类型,Audio Tag(音频Tag),Video Tag(视频Tag),script Tag(又称Metadata Tag)

tag的表示如下:

tag的类型: 1字节 音频0X08 视频 0x09 script data 0x12

DATA SIZE:3字节 tag大小

TimeStamp:3字节 时间戳

E:时间戳扩展,如果3字节不够用,再增加一个字节

StreamId:3个字节总是为0

 

我用一个思维导图来描述

 

 

https://blog.csdn.net/weixin_42462202/article/details/88661883 这篇文章写的特别详细,可以结合思维导图来理解。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值