H.264标准(三)F4V封装格式详解

来源:互联网 发布:淘宝上复制链接在哪里 编辑:程序博客网 时间:2024/06/05 12:14

F4V是Adobe公司为了迎接高清时代而推出继FLV格式后的支持H.264的流媒体格式。它和FLV主要的区别在于,FLV格式采用的是H263编码,而F4V则支持H.264编码的高清晰视频,码率最高可达50Mbps。

由于采用H264高清编码,相比于传统的FLV,F4V在同等体积的前提下,能够实现更高的分辨率,并支持更高比特率。随着网络带宽的发展和视频网站的发展,以及人们对视频清晰度越来越高的要求,F4V已经不断取代FLV,流传于更大视频网站,成为网络流媒体主流格式。

但由于F4V的新兴,各大视频网站采用的F4V标准非常之多,也决定了F4V相比于传统FLV,兼容能力相对还较弱。

需要注意的是,F4V 和MP4 是兼容的格式,都属于ISMAMP4 容器,但是 F4V 只用来封装H.264视频编码和音频AAC。

FLV 是Adobe 私有格式,但是也可以用来封装 H.264视频编码、AAC音频编码或H.263视频编码、MP3音频编码。

所以不能看到扩展名为 flv 就认为不是H.264 编码的F4V,网络上很多后缀FLV的视频,其实质是更高清晰度的F4V。

F4V格式:

这里写图片描述

F4V是基于ISO MP4格式。ftyp box帮助识别一个特殊文件
FlashPlayer不要求强制有ftyp box,只要在在它所支持的编解码类型的限制之内。

这里写图片描述

moov box,FLV文件,仅包含一个moov box, 一个moov box包含一个或多个其他的box.

这里写图片描述

mvhd box ,FLV文件,仅包含一个mvhd box, mvhd box位于mooov box中,定义了playback相关信息,用于正个F4V文件中。

这里写图片描述

trck box,FLV文件,仅包含一个mvhd box, mvhd box位于trck box中,定义了F4V文件中一个单独track对应的信息,并且包含其他box,

这里写图片描述

mdia box, 每个trck box仅含一个mdia box,并且包含其他box, 定义了media track属性

这里写图片描述

minf box,每个mdia box仅含一个 minf box, 并且包含其他box, 定义了 track’s media信息

这里写图片描述

tkhd box, 每个trck box仅含一个mdia box,定义了一个track主要属性。

这里写图片描述

mdhd box, 每个mdia box仅含一个mdhd box,定义了一个media track的属性。

这里写图片描述

stbl box,每个minf box仅含一个stbl box,并且包含其他box, 定义了构建一个track所须要的属性

这里写图片描述

stsd box,每个stbl box仅含一个stsd box,定义了一个sample table中sample描述,一个stsd box包含一个track大量描述,每个包含在track中的media type都对应有一个。

这里写图片描述

stsc box, 每个stbl box仅含一个stsc box,定义了sample对应chunk的映射信息。

这里写图片描述

stts box, 每个stbl box仅含一个stsc box,定义了一个sample table中的time-to-sample映射信息。

这里写图片描述

ctts box , 每个stbl box最多含有一个 ctts box ,也可没有,前面介绍的box都是必须要有的。ctts box定义了一个time-to-sample映射的组合信息。

这里写图片描述