Flv文件结构

合集下载

8.6.4 FLV文件格式 _多媒体信息处理技术_[共2页]

8.6.4  FLV文件格式 _多媒体信息处理技术_[共2页]

第章 数字媒体文件格式 2598标准原子是简单原子;QT 原子是原子容器原子,允许建立复杂的分层结构。

QuickTime 原子容器提供在QuickTime 中存储信息的基本结构,它是QT 原子的树形分层结构。

QuickTime 中的原子是一种层次结构,即一个原子可以包含其他的原子,这种层次结构也可以描述为双亲原子、孩子原子和兄弟原子等。

包含有其他原子的原子也称为容器原子(Container atom ),而不包含其他原子的原子称为叶原子(Leaf atom)。

QuickTime 文件简单地说就是一群原子的集合,对原子的次序没有规定。

文件系统支持文件扩展名,Windows 平台下QuickTime 文件扩展名通常是 .mov 。

在Macintosh 平台上,QuickTime 文件类型是moov 。

在Internet 上,QuickTime 文件由MIME “video/quicktime ”来提供服务。

QuickTime 电影原子的原子类型为moov ,它包含轨道原子(Track atom ),而轨道原子又包含媒体原子(Media atom )。

最底层是叶原子(Leaf atom ),包含实际数据。

电影(Movie )由一个或多个轨道组成,每个轨道都独立于其他轨道。

轨道提供一种强大、灵活的结构,使用它可以精确地控制产生复杂的交互电影。

每个轨道都代表了一个独特的随时间变化的功能或方面。

一个单个Movie 可以有许多不同的轨道类型,包括Video 、Audio 、Text 、Sprite 、Flash 、HREF 、Hinting 、QuickTime VR和Chapter divisions 。

举例说明如下。

图8-6QuickTime 文件结构示例 ① Movie track :包含整个movie 的版权、注释及其他概要信息。

② Video track :数字化视频、着色的3D 动画或其他编辑图像的序列,以及可选特殊效果。

转:流文件和媒体文件的不一样(flv和mp4,avi的区别)

转:流文件和媒体文件的不一样(flv和mp4,avi的区别)

转:流⽂件和媒体⽂件的不⼀样(flv和mp4,avi的区别)
转:流⽂件和媒体⽂件的不⼀样( flv和mp4,avi的区别) - - ITeye博客
流⽂件和媒体⽂件的不⼀样( flv和mp4,avi的区别)
流⽂件媒体⽂件flvmp4avi
Q:为什么把flv叫做流式⽂件格式?和mp4,avi不是⼀样都是⾳视频的容器吗?有什么区别?
⼀下是我收集的⼏种解释,每个⼈有不同的理解,把这些都看⼀遍,你会理解的更加清晰
引⽤
通常说的流式⽂件是可以边传边解的,开始不需要整个⽂件。

特点是有⽂件头信息(这个不是必需的)和中间打包了,可以直接解析分包,⽽且⽂件可以任意⼤⼩,⽽不需要通过索引分包。

FLV,MPEG,RMVB等都可以直接依次分包解析,⽽MP4,AVI⼀定要依赖索引表才⾏,⽽且开始就要固定位置好,如果索引表在尾部,还没办法解析。

引⽤
流媒体⽂件是指多媒体⽂件边下载可以边观看的⽂件。

⽽传统的视频⽂件需下载完成才能观看,⽽流媒体主要是下载⼀部分⽂件到缓存区,然后再从缓存区⾥⾯拿数据~⽽能作为这种流媒体⽂件的只有经过特殊编码的格式才适合,⽽flv、rmvb、mov、asf等格式⽂件才属于流媒体格式⽂件~
引⽤
对于HTTP协议,流式⽂件可以使⽤HTTP分段下载,由于在前⾯的先播放,所以可以⼀边下载⼀边播放,但是对于容器格式的⽂件,由于客户端不知道如何对⽂件解析(必须拿到整个⽂件才能解析),所以不能边下载边播放。

要实现对容器格式的⽂件的在线播放,必须要服务器⽀持流式播放接⼝,例如RTSP协议
引⽤
⾄于mpeg,avi,mpe这些也可以使⽤流化的⽅式来播放,但是效果不好,有⽹络传输的缺陷。

flv

flv

文件结构
FLV头文件 文件元信息
FLV Body tag格式
FLV头文件
一般比较简单,包括文件类型之类的全局信息 文件类型3bytes总是FLV(0x46 0x4C 0x56) 版本1byte一般是0x01,表示FLV version 1 流信息1byte倒数第一bit是1表示有视频,倒数第三bit是1表示有音频,其他都应该是0(有些软件如 flvtool2可能造成倒数第四bit是1,不过也没发现有什么不对) header长度4bytes整个文件头的长度,一般是9(3+1+1+4),有时候后面还有些别的信息,就不是9了 FLV头文件:(9字节) 1-3:前3个字节是文件格式标识(FLV 0x46 0x4C 0x56). 4-4:第4个字节是版本(0x01) 5-5:第5个字节的前5个bit是保留的必须是0. 6-9:第6-9的四个字节还是保留的.其数据为.
另外还可以通过flvcd站在线解析视频,直接浏览器另存为下载,无需安装插件.
制作视频
流媒体格式
使流媒体文件
流媒体格式
首先,打开Flash MX 2004,新建一个Flash文档。将准备好的AVI格式的视频文件导入到库中。导入过程 会出现向导提示,总共分2步,分别是“编辑”和“编码”的处理。
按照默认值进行处理,我们选择“导入整个视频”,单击“下一步”按钮然后“结束”完成导入过程。按下 “Ctrl+L”组合键打开库,双击刚刚导入的AVI文件图标,打开“嵌入视频属性”界面。
Web 2.0时代,要说什么类型站最火,自然是以国外的Youtube,国内的优酷、土豆、UUME为代表的视频分 享站了。这类站提供的视频内容可谓各有千秋,但它们无一例外的都使用了Flash作为视频播放载体,支撑这些 视频站的技术基础就是——Flash视频(FLV)。

flv协议标准

flv协议标准

flv协议标准FLV是一种流媒体格式,由Adobe公司推出。

它采用了包括RTMP和HTTP在内的各种网络传输协议进行流传输。

以下是对FLV协议标准的介绍:1.FLV文件格式FLV文件是由一系列元数据和音视频数据流组成的二进制文件。

其中,元数据包括音频和视频的编码格式、分辨率、帧率等信息,音视频数据流则是实际的音频和视频数据。

2.FLV流传输协议FLV流传输协议包括RTMP和HTTP两种协议。

RTMP是一种实时流媒体传输协议,能够实现高并发、低延迟的流传输,适用于大规模直播场景。

HTTP则是一种通用的网络传输协议,适用于小规模传输和离线播放。

3.RTMP协议RTMP协议是一种实时流媒体传输协议,由Adobe公司推出。

它基于TCP协议进行传输,能够实现高并发、低延迟的流传输。

RTMP协议具有以下特点:(1)基于TCP协议进行传输,保证了传输的稳定性和可靠性。

(2)支持高并发、低延迟的流传输,适用于大规模直播场景。

(3)支持多种音视频编码格式,如H.264、AAC等。

(4)支持自定义消息传递机制,方便实现与服务器端的交互。

4.HTTP协议HTTP协议是一种通用的网络传输协议,适用于小规模传输和离线播放。

FLV文件可以通过HTTP协议进行下载和播放。

HTTP协议具有以下特点:(1)基于TCP协议进行传输,保证了传输的稳定性和可靠性。

(2)支持多种音视频编码格式,如H.264、AAC等。

(3)适用于小规模数据传输和离线播放场景。

(4)支持缓存机制,方便用户进行下载和观看。

5.FLV播放器由于FLV文件具有跨平台的优势,因此许多主流浏览器和播放器都支持FLV格式的播放。

例如,Adobe Flash Player、HLS Player等都支持FLV文件的播放。

这些播放器能够解析FLV文件中的元数据和音视频数据流,并将其呈现给用户。

此外,许多直播平台也采用FLV作为主要的直播格式之一,如斗鱼、YY等。

这些平台通过RTMP协议将直播流传输到服务器端,再通过HTTP协议将直播流传输到客户端进行播放。

flash三种类型文件

flash三种类型文件

====Word行业资料分享--可编辑版本--双击可删====一、Flash文件主要包括FLA、SWF和FLV三种类型的文件。

1.FLA文件FLA文件通常称为源文件,可以在FLASH中打开、编辑和保存它。

2.SWF文件SWF文件英文全称是ShackWave File, 是FLA文件在FLASH中编辑完成后输出的成品文件。

3.FLV文件FLV文件是一种视频文件,它包含经过编码的音频和视频数据。

二、AP DIV与DIV的区别ap div 应该是absolute position div ,他是div层定位的一种,是绝对定位。

普通div没有设置position属性的话默认为static状态。

这也是两者的区别三、SPAN标签<span> 标签被用来组合文档中的行内元素。

span 没有固定的格式表现。

当对它应用样式时,它才会产生视觉上的变化。

span是行内元素;div是块级元素;他们都是容器!可以在span中对文字样式进行设置<span> 在CSS定义中属于一个行内元素,在行内定义一个区域,也就是一行内可以被<span> 划分成好几个区域,从而实现某种特定效果。

<span> 本身没有任何属性。

<div> 在CSS定义中属于一个块级元素 <div> 可以包含段落、标题、表格甚至其它部分。

这使DIV便于建立不同集成的类,如章节、摘要或备注。

在页面效果上,使用 <div> 会自动换行,使用 <span> 就会保持同行。

源-于-网-络-收-集。

HTTP-FLV协议分析,低延迟直播的另外一种选择

HTTP-FLV协议分析,低延迟直播的另外一种选择

HTTP-FLV协议分析,低延迟直播的另外⼀种选择直播协议 HTTP-FLV 详解⼀、什么是FLV和HTTP-FLVFLV(Flash Video)是随着Flash MX的推出⽽发展⽽来的⼀种新兴的。

FLV⽂件体积⼩巧,清晰的FLV视频1分钟在1MB左右,⼀部在100左右,是普通视频⽂件体积的1/3。

再加上CPU占有率低、良好等特点使其在⽹络上盛⾏,在flash独领风骚的年代,⽹上的⼏家著名⽹站均采⽤FLV⽂件提供视频,就充分证明了这⼀点。

⽽HTTP-FLV 即将流媒体数据封装成 FLV 格式,然后通过 HTTP 协议传输给客户端。

HTTP-FLV 依靠 MIME 的特性,根据协议中的Content-Type 来选择相应的程序去处理相应的内容,使得流媒体可以通过 HTTP 传输。

相较于 RTMP 协议,HTTP-FLV 能够好的穿透防⽕墙,它是基于 HTTP/80 传输,有效避免被防⽕墙拦截。

除此之外,它可以通过 HTTP 302 跳转灵活调度/负载均衡,⽀持使⽤ HTTPS 加密传输,也能够兼容⽀持 Android,iOS 的移动端。

⼆、HTTP-FLV⽂件格式FLV ⽂件格式标准是写在的附录 E ⾥⾯的 FLV File Format。

FLV的⽂件是由⽂件头和⽂件组成,⽂件头包含了⼀系列⽂件信息。

通常,FLV 的前 13 个字节(flv header + PreviousTagSize0)完全相同,所以,程序中会单独定义⼀个常量来指定。

Timestamp 和 TimestampExtended 组成了这个 TAG 包数据的 PTS 信息,PTS = Timestamp | TimestampExtended << 24。

AAC ⾳频编码的 Tag 格式。

AudioTagHeader 的第⼀个字节,也就是接跟着 StreamID 的 1 个字节包含了⾳频类型,采样率等的基本信息。

AudioTagHeader 之后跟着的就是 AUDIODATA 部分了。

flv.js源码知识点

flv.js源码知识点引言f l v.js是一个用于解析和播放F LV格式视频的Ja va Sc rip t库。

本文将对f lv.j s的源码进行详细的分析和解读,帮助读者更好地理解和应用该库。

文章包含以下内容:fl v.js的概述、主要模块的介绍、源码的关键知识点以及一些实际案例的讨论。

概述f l v.js是一个开源的J av aS cr ip t库,用于在W eb浏览器中播放F L V格式的视频文件。

它采用纯J av aS cr i pt实现,不依赖于F la sh技术或其他插件,具有良好的跨平台兼容性。

主要模块介绍f l v.js主要由以下几个模块组成:1.解析模块:负责解析FL V文件的头部信息、标签和帧数据。

2.控制模块:管理视频的播放、暂停、跳转等操作。

3.渲染模块:将解析后的视频帧数据渲染到HT ML5的画布上,实现视频的显示。

4.编解码模块:负责对音视频数据进行解码或编码,以及处理视频的音轨切换和字幕显示。

源码知识点1.F L V文件格式f l v.js的源码中包含了对F LV文件格式的解析逻辑。

F LV文件由F LV 头部、大量的Ta g和多个A ud io和V id e o帧组成。

了解FL V文件的结构对于理解源码非常重要。

2.标签(T a g)标签是F LV文件中的基本单位,它包含了音视频数据以及与之相关的时间戳等信息。

f lv.j s对标签的解析和处理是整个源码的核心部分。

3.帧数据帧数据是标签中的音频、视频等实际数据。

f lv.j s通过解析F L V文件中的帧数据,并使用相应的解码器对其进行解码,然后渲染到画布上。

4.控制与交互f l v.js提供了一系列的A PI,使得开发者可以对视频进行控制和交互。

例如,可以通过A PI实现视频的播放、暂停、跳转、音轨切换、字幕显示等功能。

案例讨论案例一:视频播放控制f l v.js的源码提供了播放器的基本功能,包括播放、暂停、跳转等操作。

常用视频文件格式大全

常用视频文件格式大全3GP3GP是一种3G流媒体的视频编码格式,主要是为了配合3G网络的高传输速度而开发的,也是目前手机中最为常见的一种视频格式。

目前,市面上一些安装有Realplay播放器的智能手机可直接播放后缀为rm的文件,这样一来,在智能手机中欣赏一些rm 格式的短片自然不是什么难事。

然而,大部分手机并不支持rm格式的短片,若要在这些手机上实现短片播放则必须采用一种名为3GP的视频格式。

目前有许多具备摄像功能的手机,拍出来的短片文件其实都是以3GP为后缀的.ASFASF 是Advanced Streaming format 的缩写,由字面(高级流格式)意思就应该看出这个格式的用处了吧。

说穿了ASF 就是MICROSOFT 为了和现在的Real player 竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式!由于它使用了MPEG4 的压缩算法,所以压缩率和图像的质量都很不错。

因为ASF 是以一个可以在网上即时观赏的视频“流”格式存在的,所以它的图象质量比VCD 差一点点并不出奇,但比同是视频“流”格式的RAM格式要好。

不过如果你不考虑在网上传播,选最好的质量来压缩文件的话,其生成的视频文件比VCD (MPEG1)好是一点也不奇怪的,但这样的话,就失去了ASF 本来的发展初衷,还不如干脆用N AVI 或者DIVX 。

但微软的“子第”就是有它特有的优势,最明显的是各类软件对它的支持方面就无人能敌。

AVIAVI——Audio Video Interleave,即音频视频交叉存取格式。

1992年初Microsoft公司推出了AVI 技术及其应用软件VFW(Video for Windows)。

在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。

这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。

构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。

flv格式seek的原理

flv格式seek的原理
FLV格式的seek(寻址)原理是基于FLV文件的索引表进行的。

FLV文件包含一个索引表,用于记录文件中每个音视频帧的
位置信息。

索引表中的每个条目包含了帧的时间戳(以毫秒为单位)和偏移量(从文件开始位置算起的字节偏移量)。

通过索引表,可以快速找到指定时间点的音视频帧。

当需要进行seek操作时,需要先定位到索引表中离目标时间
点最近的条目。

然后根据该条目的位置信息,直接在FLV文
件中定位到目标帧的起始位置,从而实现快速seek。

再将目
标帧的数据按照FLV格式进行解析和播放。

需要注意的是,由于FLV文件中索引表的粒度通常较粗,
seek操作可能无法精确到毫秒级别的时间点,可能会存在一定的误差。

此外,如果FLV文件没有索引表或者索引表不完整,那么seek操作可能会变得更加困难,可能需要根据一些其他
的信息(如编码格式、帧间压缩关系等)来进行seek。

flv格式文件名词解释

flv格式文件名词解释
嘿,你知道啥是 flv 格式文件不?这玩意儿啊,就像是一个独特的小盒子,专门用来装各种精彩的视频内容呢!比如说,你在网上看到的那些好玩的短视频,很多可能就是 flv 格式的哦。

flv 格式文件,它可神奇啦!它能把图像、声音这些东西都整整齐齐地打包在一起,就好像把各种糖果都装进一个漂亮的袋子里。

想象一下,你打开这个袋子,就能一下子享受到所有的甜蜜啦,是不是很有趣?
我给你讲哦,它的优点可不少呢!它占用的存储空间相对较小,这意味着啥?意味着能在同样的空间里装更多的视频呀!就好比一个小行李箱,却能装下好多好多的衣服。

而且啊,它在网络上传输起来也特别快,就像一阵风一样,嗖的一下就到你眼前啦。

咱再说说它的应用场景吧。

好多视频网站都爱用它呢,为啥呀?因为它能让用户更快地看到视频,不用等太久。

就像你去餐厅吃饭,服务员很快就把美食端到你面前,那感觉多爽呀!
“哎呀,那 flv 格式文件就没缺点了吗?”你可能会这么问。

嘿,当然有啦!它可能在某些设备上播放不太方便,需要专门的播放器或者插件。

但这也不能掩盖它的光芒呀!
总之呢,flv 格式文件就是视频世界里的一个小精灵,虽然不是十全十美的,但它给我们带来了好多欢乐和方便呀!它就是这么独特,这么不可或缺!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注:不同类型的Tag的Header结构式相同的,但是data的结构各不相同,第一个帧通常为Metadata Tag,即控制帧
Audio Tag Data结构(音频Tag)
音频Tag开始的第1个字节包含了音频数据的参数信息,从第2个字节开始为音频流数据。

第1个字节的前4位的数值表示了音频数据格式。

0 = Linear PCM, platform endian
1 = ADPCM
2 = MP3
3 = Linear PCM, little endian
4 = Nellymoser 16-kHz mono
5 = Nellymoser 8-kHz mono
6 = Nellymoser
7 = G.711 A-law logarithmic PCM
8 = G.711 mu-law logarithmic PCM
9 = reserved
10 = AAC
14 = MP3 8-Khz
15 = Device-specific sound
第1个字节的第5-6位的数值表示采样率,0 = 5.5kHz,1 = 11KHz,2 = 22 kHz,3 = 44 kHz。

第1个字节的第7位表示采样精度,0 = 8bits,1 = 16bits。

第1个字节的第8位表示音频类型,0 = sndM ono,1 = sndS tereo。

Video Tag Data结构(视频Tag)
视频Tag也用开始的第1个字节包含视频数据的参数信息,从第2个字节为视频流数据
第1个字节的前4位的数值表示帧类型(FrameType)
1: keyframe (for AVC, a seekableframe)(关键帧)
2: inter frame (for AVC, a nonseekableframe)
3: disposable inter frame (H.263only)
4: generated keyframe (reservedfor server use only)
5: video info/command frame
第1个字节的后4位的数值表示视频编码ID(CodecID)
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
Script Tag Data结构(控制帧)
该类型Tag又通常被称为Metadata Tag,会放一些关于FLV视频和音频的参数信息如:duration、width、height等。

通常该类型Tag会跟在File Header后面作为第一个Tag 出现,而且只有一个。

前11个字节为Tag Header结构
第一个AMF包(13字节):
第1个字节表示AMF包类型,一般总是0x02,表示字符串
第2-3个字节为UI16类型值,一般总是0x000A(“onMetaData”长度)。

后面字节一般总为“onMetaData”。

(6F,6E,4D,65,74,61,44,61,74,61)
第二个AMF包:
第1个字节表示AMF包类型,一般总是0x08,表示数组。

第2-5个字节为UI32类型值,表示数组元素的个数。

后面即为各数组元素的封装,数组元素为元素名称和值组成的对。

表示方法如下:
第1-2个字节表示元素名称的长度,假设为L。

后面跟着为长度为L的字符串。

第L+3个字节表示元素值的类型。

后面跟着为对应值,占用字节数取决于值的类型。

常见的数组元素如下:
duration: a DOUBLE indicating the total duration of the file in seconds
width: a DOUBLE indicating the width of the video in pixels
height: a DOUBLE indicating the height of the video in pixels
videodatarate: a DOUBLE indicating the video bit rate in kilobits per second
framerate: a DOUBLE indicating the number of frames per second videocodecid: a DOUBLE indicating the video codec ID used in the file audiosamplerate: a DOUBLE indicating the frequency at which the audio stream is replayed
audiosamplesize: a DOUBLE indicating the resolution of a single audio sample stereo: a BOOL indicating whether the data is stereo
audiocodecid: a DOUBLE indicating the audio codec ID used in the file filesize: a DOUBLE indicating the total size of the file in bytes。

相关文档
最新文档