FLV文件格式基础

技术在于交流、沟通,转载请注明出处并保持作品的完整性。

原文:https://blog.csdn.net/hiwubihe/article/details/82346691

[本系列相关文章]

FLV,F4V,MP4广泛应用于各主流直播和点播平台,能够非常方便的流媒体和存储处理。本篇记录一下FLV文件的格式学习,FLV相对MP4格式比较简单。主要由文件头+三种类型的TAG组成。FLV支持的音视频编解码方式如下图

FLV总体结构如下图 

文件头

 
FieldData TypeDefaultDetails
Signaturebyte[3]“FLV”Always “FLV”
Versionuint81Only 0x01 is valid
Flagsuint8 bitmask0x05Bitmask: 0x04 is audio, 0x01 is video (so 0x05 is audio+video)
Header Sizeuint32_be9Used to skip a newer expanded header

文件主体

交替有前面tag长度和tag体组成,

TAG头

AUDIODATA格式

 

 如果是MP3等其他数据,直接拷贝音频数据,AAC格式如下

VIDEODATA数据如下

H264/AVC编码时 AVCVIDEOPACKET

注意一下:

  1. flv文件中Timestamp和TimestampExtended拼出来的是dts,相对于第一个TAG来说的毫秒数。
  2. CompositionTime 表示当前帧PTS对DTS的偏移值,单位毫秒即CTS=PTS-DTS。CTS永远>0,因为一帧显示时间总是在解码时间之后。如
    帧类型IBBP
    显示序号1234
    解码序号1342
    PTS040ms80ms120ms
    DTS020ms50ms10ms

    第一个B帧40ms需要显示,所以40ms以前必须解码好,而第一个B帧要解码需要依赖P帧,所以在40ms以前P帧和第一个B帧都要解码好。 

  3.  如果H264编码中没有B真,则PTS==DTS,所以CompositionTime CTS==0。

  4. AudioSpecificConfig参考ISO 14496-3,AVCDecoderConfigurationRecord参考ISO 14496-15。

  5. Data tags在本篇没解析,基本由AMF1和AMF2组成,包括视频分辨率,比特率,帧率,时长,大小,采样率,通道数常用信息。

     

     

     



 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值