首页 技术 正文
技术 2022年11月15日
0 收藏 385 点赞 4,962 浏览 1253 个字

  FLV官方文档:https://github.com/jiayayao/DataSheet/tree/master/media%20format/flv

一、FLV格式

  FLV包括文件头(FLV header)和文件体(FLV Body)两部分,其中文件体由一系列的Tag组成。如下图所示:

FLV封装格式分析

  FLV header一共9个字节,分别是:

  • Signature(3个字节)总是“FLV”,即0x46, 0x4c, 0x56;
  • Version(1个字节) 总是1,即0x01;
  • Flags(1个字节) 第6位表示是否存在音频,第8位表示是否存在视频,即音视频都有的话,是0x05;
  • HeaderSize(4个字节)头字节大小,总为9 。

  每个Tag包含3部分,Previous Tag Size字段(4个字节),Tag header字段(11个字节)和Tag data字段。

  Previous Tag Size表示前面一个Tag的大小。

  Tag header字段包含11个字节:

  • Type(1个字节)可以是视频、音频和Script,每个Tag只能包含以上三种类型的数据中的一种:

Tag类型

视频

0x09

音频

0x08

Script

0x12

  • Data size(3个字节)表示该tag的data部分的大小;
  • Timestamp(3个字节)表示该tag的时间戳;
  • Timestamp(1个字节)表示扩展时间戳,当时间戳24位数值不够时,会扩展至32位;
  • StreamID(3个字节)表示stream id,总是0.

二、视频Tag

  视频tag的第一个字节用来表示视频数据的参数信息,第二个字节开始为视频数据。

  第一个字节的前4位表示帧类型:

含义

1

keyframe (for AVC, a seekable frame)

2

inter frame (for AVC, a nonseekable frame)

3

disposable inter frame (H.263 only)

4

generated keyframe (reserved for server use only)

5

video info/command frame

  第一个字节的后4位表示编码类型:

含义

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

  视频tag从二个字节开始为视频数据。

三、Script Tag

  又通常被称为Metadata Tag,会放一些关于FLV视频和音频的元数据信息如:duration、width、height、video data rate、frame rate等。该Tag包含2个AMF包,通常该类型Tag会跟在File Header后面作为第一个Tag出现,而且只有一个。

  音频tag不再贴了,有兴趣可以看官方文档。

参考资料:  

http://blog.csdn.net/leixiaohua1020/article/details/17934487

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,895