FLV格式

FLV

文件格式

FLV header Pre Tags Size 0 Flv Tag 1 Pre Tag size 1 FLV Tag 2 FLV Tag n
  • tag1是metadata,记录视频的一些信息
  • tag2是视频配置信息(AVC decoder configuration record),video tag
  • tag3是音频配置信息(如果没有音频则去掉此项)
  • tag4以及之后的tag就是音视频数据了。

Flv header

‘F’ ‘L’ ‘V’ 版本号(0x01) 流信息 FLV头长度(4bytes)

媒体信息

  • 倒数第一bit是1表示有视频(0x01)
  • 倒数第三bit是1表示有音频(0x4)
  • 有视频又有音频就是0x01 | 0x04(0x05)
  • 其他都应该是0。

FLV Body

整体结构

Pre Tag Size(4字节) Tag header Tag data

Tag结构

Tag header Tag Data
Tag header结构
名称 长度 介绍
Tag type 1bytes 8:音频
9:视频
18:脚本
数据区长度 3bytes 数据区长度
时间戳 3bytes 整数,单位是毫秒。对于脚本型的tag总是0
其中script(脚本)、video(视频)、audio(音频)的第一个tag的时间戳值都为0
时间戳占4个字节 其中第四个字节是高位 前三个字节是低位(每个tag的5~8字节)
时间戳扩展 1bytes 将时间戳扩展为4bytes,代表高8位。很少用到
StreamsID 3bytes 总是0
数据区(data) 由数据区长度决定 数据实体

Tag data结构

视频Tag
video tag header video data
video Tag header
名称 长度 介绍
帧类型 4bit 1: keyframe (for AVC, a seekable frame)
2: inter frame (for AVC, a non-seekable frame)
3: disposable inter frame (H.263 only)
4: generated keyframe (reserved for server use only)
5: video info/command frame
codec id 4bit 1: JPEG (currently unused)
2: Sorenson H.263
3: Screen video
4: On2 VP6
5: On2 VP6 with alpha channel
6: Screen video version 2
7: AVC

IF CodecID == 7

AVCPacketType 8bit 0 = AVC sequence header
1 = AVC NALU
2 = AVC end of sequence (lower level NALU sequence ender is not required or supported)
CompositionTime 3bytes 每个视频tag的第14~16字节(表示PTS相对于DTS的偏移值 )
CompositionTime 单位为ms 显示时间 = 解码时间(tag的第5~8字节) + CompositionTime
对于摄像头来讲,dts=pts,此值传0即可
sps nalu size 4
sps nalu data n
pps nalu size 4
pps data n
sei nalu size 4
sei data n
inter frame nalu size 4
inter frame data n
  • flv里面的h264是avcc封装

Tag 分类

  • Audio Tag
  • Video Tag
  • Script Tag(Metadata,元数据),通常该类型Tag会跟在File Header后面作为第一个Tag出现,而且只有一个。

AVCDecoderConfigurationRecord

字段 长度(byte) 说明
configurationVersion 1 0x01
AVCProfileIndication 1
profile_compatibility 1
AVCLevelIndication 1
lengthSizeMinusOne 1 avcc nalu的size字段的长度,0xff
sps nums 1 0xE1
sps data length 2
sps data n
pps nums 1 0x01
pps data length 2
sps data n
发布了16 篇原创文章 · 获赞 9 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览