精华内容
下载资源
问答
  • flv文件

    2008-07-10 15:49:00
    flv开放分类: 软件、计算机、flash、视频格式、视听 目录 • FLV视频格式的定义 • FLV视频格式的普及 • FLV视频格式的优势
    flv
    开放分类: 软件计算机flash视频格式视听
    目录
    英文名:Flash Video
    FLV视频格式的定义
    FLV 是FLASH VIDEO的简称,FLV流媒体格式是一种新的视频格式,全称为Flash Video。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。 目前各在线视频网站均采用此视频格式。如新浪播客、56、优酷、土豆、酷6、youtube等,无一例外。FLV已经成为当前视频文件的主流格式。 FLV就是随着Flash MX的推出发展而来的视频格式,目前被众多新一代视频分享网站所采用,是目前增长最快、最为广泛的视频传播格式。是在sorenson 公司的压缩算法的基础上开发出来的。FLV格式不仅可以轻松的导入Flash 中,速度极快,并且能其到保护版权的作用,并且可以不通过本地的微软或者REAL播放器播放视频。
    FLV视频格式的普及
    网络宽带的普及使中国网民数量跃升至全球第二,同时也造就了众多的网络神话,GOOGLE斥巨资收购YouTube,似乎将国内外本身已经够火的Web2.0视频网站被广泛关注。而流行的风潮似乎又是第一时间刮到了国内,在这个充分发挥自我个性的年代,视频、播客等网站在国内如雨后春笋般兴起,新的网络战役一触即发,这对于FLV视频格式的普及无疑是一个巨大的推动力。 FLV(Flash Video)流媒体格式是随着Flash MX的推出而发展而来的一种新兴的视频格式。FLV文件体积小巧,清晰的FLV视频1分钟在1MB左右,一部电影在100MB左右,是普通视频文件体积的1/3。再加上CPU占有率低、视频质量良好等特点使其在网络上盛行,目前网上的几家著名视频共享网站均采用FLV格式文件提供视频,就充分证明了这一点。
    FLV视频格式的优势
    FLV作为一种新兴的网络视频格式,能得到众多的网站支持并非偶然。除了FLV视频格式本身占有率低、视频质量良好、体积小等特点适合目前网络发展外,丰富、多样的资源也是FLV视频格式统一在线播放视频格式的一个重要因素。现在,从最新的变形金刚到越狱再到各项体育节目,甚至于网友制作的自拍视频等都可以在网络中轻而易举的找到。 目前在互联网上提供FLV视频的有两类网站,一种是专门的视频分享网站如美国的YouTube网站、国内的六间房、土豆网等。另一种是门户网站提供了视频播客的板块,提供了自己的视频频道,如新浪视频播客等,也是使用FLV格式的视频。此外,百度最近也推出了关于视频搜索的功能,里面搜索出来的视频基本都是采用了流行的FLV格式。
    FLV视频格式的使用
    Web 2.0时代,要说什么类型网站最火,自然是以国外的Youtube、Google Video,国内的土豆网、UUME为代表的视频分享网站了。这类网站提供的视频内容可谓各有千秋,但它们无一例外的都使用了Flash作为视频播放载体,支撑这些视频网站的技术基础就是—— Flash 视频 (FLV) 。 FLV 是一种全新的流媒体视频格式,它利用了网页上广泛使用的Flash Player 平台,将视频整合到Flash 动画中。也就是说,网站的访问者只要能看Flash动画,自然也能看FLV 格式视频,而无需再额外安装其它视频插件,FLV视频的使用给视频传播带来了极大便利。 看了上面这些,相信大家也跃跃欲试了吧,下面我们就来讲讲如何在网页中使用FLV 视频。 从Flash MX 2004开始,软件就提供了FLV 格式支持,不过笔者建议大家使用目前最新版本的Flash 8,这个版本的Flash中有一个独立的FLV转换工具:Flash 8 Video Encoder。点击系统菜单“程序”→“Macromedia”→“Macromedia Flash 8 Video Encoder”进入。 进入程序后,可以看到软件界面非常简单。实际上使用这一工具转换普通视频为FLV视频很容易,只需几步即可完成。 点击“增加”按纽,软件自动调用系统“打开”对话,选择需要导入的视频即可。Flash 8 Video Encoder支持转换的视频格式相当广泛,如:AVIWMVMPEGASFMOV等常见视频格式。视频添加进队列后,如果你不需要做特殊修改,那么点击“开始队列”按纽,程序即开始视频转换。 软件转换视频的速度,笔者总的感觉还是较快,当然这与原始视频大小及设置的视频数据速率有关。整个转换过程,主窗口下方都有信息提示,并且还能看到实时的进度预览。转换结束后,在转换视频同一文件夹下,我们就能得到一个同名的FLV文件。 当然,上述这些只是按照默认设置进行转换的情况,实际情况下,我们对于视频转换的控制还可以很多,点击主窗口“设置”按纽进入高级设置对话框。 在视频编码设置对话框中,最显著的就是FLV视频品质设置,默认是“Flash 8 - 中等品质 (400kbps)”,软件内置7种不同的编码设置组合。我们也可以选择自定义设置,点击“显示高级设置”按纽,软件将显示自定义的设置界面。 软件提供了两种视频解码器供选择:On2 VP6(用于 Flash Player 8,支持Alpha 通道)、Sorenson Spark(用于 Flash Player 7,适用于低配置用户);“调整视频大小”也颇有用,我们很容易生成制定尺寸的动画;如果你只重视视频效果,那么你还可以对“音频编码”开刀,将默认编码数率设置低些,那么输出的文件还会更小巧。 高级设置中的选择还很多,它甚至还提供了简单的视频编辑功能,点击“裁切和修剪”标签。 裁切使用很简单,软件提供了四个方向的控制,输入数值以裁切视频,或者点击“三角”按纽显示控制滑块,拖动滑块直观地调整视频尺寸,视频预览区会实时用虚线勾画裁切范围。 修剪的使用也不复杂,在视频预览区下方可以看到一个蓝色的视频进度指示条,拖动上方的“倒三角”按纽定位视频播放进度。进度指示条下方有两个按纽,它们就是“开始点”和“结束点”定位按纽,分别拖动按纽到所需位置,即完成简单的视频修剪。 得到了FLV文件,其实我们并不能直接在网页中使用,我们还需要将它嫁接到Flash动画中去。如同大家在各种视频网站中看到的一样,我们创建的Flash视频并不是简单播放就算了,它也是带播放控制的。 运行Flash 8,创建新的Flash 文档,点击菜单“文件”→“导入”→“导入视频”,进入“导入视频”对话框。 可以看到,选择视频时会有两种不同的选择:“在您的计算机上”、“已经部署到”,这两者是有区别的,不过目前我们仅需在本地测试动画,选择“在您的计算机上”。点击“浏览”按纽,通过系统打开对话框,载入我们刚生成的FLV文件,点击“下一个”按纽继续。 接下来选择“部署方式”为:“从 Web 服务器渐进式下载”,进入“外观”选项。 Flash 8目前已经为播放FLV视频内置了数十个播放控制器,它们的外观各异,控制选项也有区别,你可以根据自己的需要,选择一个合适的播放控制器,最后点击“完成”按纽结束。 返回Flash 8主窗口工作区,可以看到我们刚插入的视频已经布置到位了,此时你可以直接按Ctrl+Enter测试动画了。
    FLV播放器的生成
    通过动画预览,我们可以发现,目前默认的Flash动画尺寸比播放器宽了不少,我们需要重新设置一下。鼠标在工作区中选择“播放器控件”,调用“属性”面板(Ctrl+F3),修改X、Y轴值为“0.0”,这样我们就将“播放器控件”这个元件定位到了工作区的左上方顶点处。 点击菜单“修改”→“文档”,进入“文档属性”对话框,选择“匹配”值为“内容”,点击“确定”返回,现在Flash文档的尺寸就与播放器一致了。 如果大家制作的FLV视频动画只打算在本地计算中播放,那么就直接输出SWF文件即可,如果是准备在网络中调用,那么还需要做一些事情。 先上传自己制作的FLV文件到网络服务器,获得文件远程网络地址:如:http: //www.scxp.net/01.flv。接下来,选择工作区中的“播放器控件”,调用“参数”面板,找到“contentPath”字段,修改它的值为“http://www.scxp.net/01.flv”(原始值就是最开始大家设置的本地FLV文件路径)。 点击菜单“文件”→“导出”→“导出影片”,例:设置导出影片地址为“D:/”,文件名为“01.swf”。接下来,设置播放器版本为“Flash Player 8”,ActionScript版本为“ActionScript 2.0”,点击“确定”完成。 进入“D:/”,可以看到,除了刚生成的“01.swf”文件外,还多了个 “SteelOverPlaySeekMute.swf”文件,它也是调用Flash视频必须的文件,现在将这两个文件也上传到你的服务器中即可。以后你在网上任何地方需要调用Flash视频时,只需要插入服务器上的那个“01.swf”动画的网络地址即可。 注:设置Flash动画调用的FLV文件为网上远程路径后,本地预览“01.swf”文件会有安全警告,这是正常的情况,大家不必担心。
    FLV视频文件的下载
      在线观看的flv视频文件基本都不提供下载,如果想把它下载下来,也很简单,在此介绍两种方法:   第一种(推荐,但比较麻烦),该方法没遇到过困难还。   首先,正常观看视频,不要关闭浏览器,   其次,等视频加载完毕,进入C:/Documents and Settings/你的用户名/Local Settings/Temporary Internet Files   这个文件夹(有可能要用到文件夹选项中的“显示全部文件”才可看见),然后,查找扩展名为flv的文件即可,可以按时间排序,很容易找到。也可以按大小,视频文件一般都比较大,排在顶部本方法适合任何flv视频网站。 另一种,借助于专门的网站,简单易用!例如我们要下载youtube或新浪播客上的某个视频文件,则:   点开播客视频的观看界面后,复制上面的观看地址然后打开这个网站:http://www.flvspy.cn   将观看地址粘贴到flvspy.cn网站上面里的输入框内,点击放大镜的嗅探按钮,稍等几秒就可以嗅探出该博客视频的下载链接,可用下载工具下载了,YouTube的视频无扩展名,可以自已改扩展名为flv,其他的播客网站都自带扩展名flv,下载下来的就是flv格式。 相信flv格式文件的应用会为当今互联网带来新一轮的网媒狂潮!
    利用flash MX 制作 flash video
      FLV流媒体格式是一种新的视频格式,全称为Flash Video。Flash MX 2004对其提供了完美的支持,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。下面我们就 来介绍一下如何使用小巧的FLV流媒体文件。   一、建立FLV流媒体格式文件   首先,打开Flash MX 2004,新建一个Flash文档。将准备好的AVI格式的视频文件导入到库中。导入过程会出现向导提示,总共分2步,分别是“编辑”和“编码”的处理。   按照默认值进行处理,我们选择“导入整个视频”,单击“下一步”按钮然后“结束”完成导入过程。按下“Ctrl+L”组合键打开库,双击刚刚导入的AVI文件图标,打开“嵌入视频属性”界面。   单击“导出”生成FLV格式文件。   通过以上操作我们成功地将视频AVI格式转换成为了FLV格式。这其中发生了什么变化呢?在默认参数的转化下。使23MB的AVI文件变成了541KB的FLV文件。让一个大块头“瘦”下来,这就可以轻松的放到网络中使用了。   二、使用FLV流媒体文件   新建一个Flash文档,按下“Ctrl+F7”组合键打开组件窗口,将Media Componets中的MediaPlayback组件拖入场景中。   用鼠标选中刚拖入的MediaPlayback组件,按下“Alt+F7” 组合键打开“组件检查器”界面。组件检查器中的参数含义如下:定义了播放文件的类型为FLV,也可以播放MP3文件;URL中需要指定FLV文 件的路径,因为我们将FLV文件和Flash文件放在了同一目录中,所以这里只要指定文件名就可以了;Automatically Play为自动播放;Control Placement和Control Visibility分别为播放面板的位置和是否可见。   设置完成后,我们可以通过按下“Ctrl+Enter”组合键测试效果。视频图像和声音是不是让你耳目一新啊!   这样一个FLV格式的流媒体播放器就完成了。别看它制作简单,但功能还算齐 全,特别是它提供了下载进度的显示,可以一边下载一边播放。这样我们的网站再也不用愁那些“大块头”的视频文件怎么放上去了。Flash MX 2004支持很多视频格式转化为FLV,自己动手做做,你会发现很多新技巧。不断的探索,你会成长的很快!
    展开全文
  • 输入flv直播地址,实时分析flv文件
  • python解析flv文件

    2018-08-24 13:04:23
    python解析flv文件库,内含详细注释介绍flv文件结构及解析原理
  • FLV文件播放器FLVPlayer

    2014-09-18 09:03:16
    真正可以播放FLV文件的播放器
  • 带你了解FLV文件格式

    2020-09-26 15:13:48
    本课程除了介绍FLV文件格式外,还利用UltraEdit带你逐字节的去解析一个FLV文件,学员通过学习,不仅能够完全掌握FLV的文件格式,还能够学会这种分析音视频文件格式的方法,举一反三的应用在其他格式的学习上,并且为...
  • flv文件格式说明

    2017-08-26 18:48:39
    flv文件格式说明
  • flv文件解析实战

    2019-04-04 11:40:35
    flv文件解析实战,并且放入了文件解析工具,和解析文档
  • C++ 解析flv文件

    2016-12-20 11:18:00
    C++ 解析flv文件
  • Flv文件解析(c#,包含flv文件结构说明) Flv文件解析(c#,包含flv文件结构说明) Flv文件解析(c#,包含flv文件结构说明)
  • FLV文件格式图解

    2017-03-03 10:40:32
    图解FLV文件的Tag格式,AVC(H264)和AAC是如何放入FLV的,如果通过RTMP发送FLV
  • flv文件解析

    2014-04-24 16:03:03
    flv文件解析,带有源代码。c++版本的,Visual C++
  • flv文件合并

    2012-07-01 09:45:59
    多个flv文件连接合并为一个flv文件,不需要经过任何其他格式的转换,直接合并,速度极快。特别适合于处理从各视频网站下载下来的分段flv视频。
  • FLV文件格式解析

    万次阅读 2019-10-13 21:29:45
    FLV文件格式解析 FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后...

    FLV文件格式解析

    FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。

    FLV由FLV头+tagSize+tag....构成,如图:

     

    每个PreviousTagSize表示前一个tag的长度,占32bits。

    FLV Header

     

    FLV头的长度为固定的9字节:Signature(3 Byte)+Version(1 Byte)+Flags(1 Bypte)+DataOffset(4 Byte)

    • 前3字节是标识符,固定为0x46,0x4C,0x56,是’FLV‘的ASSIC码。

    • 第4字节是version,表示版本号,一般为1。

    • 第5字节,前5位保留置为0,第6位表示audio是否存在(1表示存在,0表示不存在),第7位保留置为0,第8位表示video是否存在(1表示存在,0表示不存在)。

    • 第6、7、8、9字节DataOffset表示FLV header长度,固定为0x 00 00 00 09。

    FLV Body

    FLV的body由一系列PreviousTagSize+tag组成

    • PreviousTagSize占4个字节,表示前一个tag的size。由于PreviousTagSize0前面没有tag所以PreviousTagSize0=0x 00 00 00 00。

    • tag分三种类型video,audio,scripts(或称meta)

    Tag

    tag结构如下图:

     

    • tag类型,1个字节。8表示audio,9表示video,18表示script。ffmpeg关于tag type定义如下:

      enum FlvTagType {
          FLV_TAG_TYPE_AUDIO = 0x08,
          FLV_TAG_TYPE_VIDEO = 0x09,
          FLV_TAG_TYPE_META  = 0x12,
      };
    • tag data size 3个字节。表示tag data的长度。从streamd id 后算起。

    • Timestreamp时间戳 3个字节。

    • TimestampExtended 时间戳扩展字段1个字节,可将时间戳扩展为32bits,此字段为高8位。

    • stream id 3个字节。总是0。

    • tag数据部分。

    Audio Tag

     

    紧跟着stream id后结算tag的具体数据,如果TAG包中的TagType==8时,就表示这个TAG是audio。StreamID之后的数据就表示是AudioTagHeaderAudioTagHeader如上图所示,占1个字节,包含audio的各种信息。其后就是audio tag的data部分。

    这里有一个特例,如果音频格式(SoundFormat)是10 = AAC,AudioTagHeader中会多出1个字节的数据AACPacketType,这个字段来表示AACAUDIODATA的类型:0 = AAC sequence header,1 = AAC raw。

     

    AAC sequence header也就是包含了AudioSpecificConfigAudioSpecificConfig包含着一些更加详细音频的信息,AudioSpecificConfig的定义在ISO14496-31.6.2.1 AudioSpecificConfig。在FLV的文件中,一般情况下 AAC sequence header 这种包只出现1次,而且是第一个audio tag

    AAC raw 这种包含的就是音频ES流了,也就是audio payload。

    Video Tag

     

    如果TAG包中的TagType==9时,就表示这个TAG是video。StreamID之后的数据就表示是VideoTagHeaderVideoTagHeader结构如图。

    VideoTagHeader的头1个字节,也就是接跟着StreamID的1个字节包含着视频帧类型及视频CodecID最基本信息。VideoTagHeader之后跟着的就是VIDEODATA数据。

    这里也有一个特例,如果视频的格式是AVC(H.264)的话,VideoTagHeader会多出4个字节的信息AVCPacketTypeCompositionTime

    IF AVCPacketType == 0 AVCDecoderConfigurationRecord(AVC sequence header) IF AVCPacketType == 1 One or more NALUs (Full frames are required)

    IF AVCPacketType == 2 end of squence(lower level NALU sequence ender is not required or supported)

    AVCDecoderConfigurationRecord包含着是H.264解码相关的sps和pps信息,给AVC解码器发送数据流之前一定要把sps和pps信息送出,否则的话解码器不能正常解码。AVCDecoderConfigurationRecord在FLV文件中一般情况只出现1次,也就是第一个video tag。

     

    Script Tag

     

    如果TAG包中的TagType==18时,就表示这个TAG是script

    Script Tag一般只有一个,是flv的第一个Tag,用于存放flv的信息,比如duration、audiodatarate、creator、width等。

    所有数据都是以数据类型+(数据长度)+数据的格式出现的,数据类型占1byte,数据长度看数据类型是否存在,后面才是数据。

    一般来说,该Tag Data结构包含两个AMF包。AMF(Action Message Format)是Adobe设计的一种通用数据封装格式,第一个AMF包封装字符串类型数据,用来装入一个“onMetaData”标志,第二个AMF包封装一个数组类型,这个数组中包含了音视频信息项的名称和值。

    示例:

    下图是一个FLV文件示例

     

     

    可以看见文件前3个字节是'FLV'的ASSIC码0x46 4C 56,第一个绿框表示PreviousTagSize0值为0,第二个绿框PreviousTagSize1 = 0x 00 00 0B FC。PreviousTagSize0之后是第一个tag,紫色框为0x12=18表示这是一个script tag,黄色框0x 00 0B F1表示tag data长为3057字节(从stream id后算起)。可以看到stream id后第一个字节地址为0x18,所以tag结束的地址为0xBF1+0x18-1=0xC08,所以PreviousTagSize1首地址为0xC09,由上图可知PreviousTagSize1 = 0x 00 00 0B FC=3068=tag header length(11) + tag data length(3057)。

    PreviousTagSize1 后是第2个tag,tag type = 0x09表示是视频。

    感兴趣的可以关注微信公众号Video Coding

     

    展开全文
  • flv文件结构

    2012-07-15 10:09:56
    flv文件结构,讲述flv内部框架分析每种tag的具体内容
  • flvmdi flv文件修复工具

    2018-04-14 21:23:04
    flv文件修复工具能修复flv视频文件的Meta Data是损坏的,修复进度条,修复视频长度信息异常。里面有gui版和命令行版。
  • flv文件格式

    2017-02-08 11:16:30
    1. FLV文件对齐方式 FLV文件以大端对齐方式存放多字节整型。 如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。 如果是无符号32位数字300(0x0000012C),那么在FLV...

    1.        FLV文件对齐方式

    FLV文件以大端对齐方式存放多字节整型。

    如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。

    如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。

    2.        FLV文件格式

    FLV文件格式比较简单,分为Header和Body两部分。

    即:|FLV_Header(9)|FLV_Body(n)|,括号里是长度,以byte为单位。

    以下分别介绍Header和Body的具体内容格式。

    3.        FLV Header格式

    FLV Body的内容长度是固定的,格式如下:

    | F(8) | L(8) | V(8) | Version(8) | TypeFlagsReserved(5) | TypeFlagsAudio(1)| TypeFlagsReserved(1) | TypeFlagsVideo(1) | DataOffset(32) |.

    可知FLV Header头部的长度为9 bytes。

    前三个字节为FLV,十六进制表示为 0x46 0x4C 0x56。

    Version为FLV的版本号,一般为0x01。

    TypeFlagsReserved为保留位,均为0

    TypeFlagsAudio为FLV文件中是否包括音频数据,1是有,0是没有。

    TypeFlagsVideo为FLV文件中是否包括视频数据,1是有,0是没有。

    DataOffset为FLV Header的长度,为固定值0x00000009。

    4.        FLV Body格式

    FLV Body的内容为多个Tag和Tag的长度组成。

    即:

    | PreviousTagSize0(32) | Tag1(PreviousTagSize1) |PreviousTagSize1(32) | Tag2 | ……| PreviousTagSizeN-1(32) | TagN(previousTagSizeN)| previousTagSizeN(32) |

    PreviousTagSize0为0x00000000。

    Tag为每一个内容,目前包括音频、视频、脚本。

    previousTagSize为前一个Tag的长度。

    5.        FLV Tag格式

    FLV Tag是FLV Body的内容,具体Tag同样是由Tag Header和Tag Data组成。

    即FLV Tag Format :

    | TagType(8) | DataSize(24) | Timestamp(24) |TimestampExtended(8) | StreamID(24) | Data(DataSize) |

    TagType为Tag的类型:

    目前支持的类型:

    音频为0x08;

    视频为0x09;

    脚本数据为0x12。

    DataSize为Data的长度。

    Timestamp为相对第一个Tag的时间戳,因此第一个Tag的时间戳为0。也可以将所有Tag的时间戳全配置为0,解码器会自动处理。

    StreamID为默认的全为0。

    Data为具体的数据内容,

    如果TagType=0x08,为AudioData;

    如果TagType=0x09,为VideoData;

    如果TagType=0x12,为ScriptDataObject,但该项因为内容不固定,所以在FLV文件中可以没有该Tag内容。

    6.        VideoData格式

    VideoData的内容,同样包括VideoData Header和VideoData Body。

    即VideoData Format:

    Video Header = | FrameType(4) | CodecID(4) |

    VideoData = | FrameType(4) | CodecID(4) | VideoData(n) |

    FrameType为数据类型,1为关键帧,2为非关键帧,3为h263的非关键帧,4为服务器生成关键帧,5为视频信息或命令帧。

    CodecID为包装类型,1为JPEG,2为H263,3为Screen video,4为On2 VP6,5为On2 VP6,6为Screen videoversion 2,7为AVC。

    VideoData为数据具体内容:

    如果CodecID=2,为H263VideoPacket;

    如果CodecID=3,为ScreenVideopacket;

    如果CodecID=4,为VP6FLVVideoPacket;

    如果CodecID=5,为VP6FLVAlphaVideoPacket;

    如果CodecID=6,为ScreenV2VideoPacket;

    如果CodecID=7,为AVCVideoPacket;

    7.        AVCVideoPacket格式

    AVCVideoPacket同样包括Packet Header和Packet Body两部分:

    即AVCVideoPacket Format:

    | AVCPacketType(8)| CompostionTime(24) | Data |

    AVCPacketType为包的类型:

             如果AVCPacketType=0x00,为AVCSequence Header;

             如果AVCPacketType=0x01,为AVC NALU;

             如果AVCPacketType=0x02,为AVC end ofsequence

    CompositionTime为相对时间戳:

             如果AVCPacketType=0x01, 为相对时间戳;

             其它,均为0;

    Data为负载数据:

             如果AVCPacketType=0x00,为AVCDecorderConfigurationRecord;

             如果AVCPacketType=0x01,为NALUs;

             如果AVCPacketType=0x02,为空。

    8.        AVCDecorderConfigurationRecord格式

    AVCDecorderConfigurationRecord包括文件的信息。

    具体格式如下:

    | cfgVersion(8) | avcProfile(8) | profileCompatibility(8) |avcLevel(8) | reserved(6) | lengthSizeMinusOne(2) | reserved(3) | numOfSPS(5) |spsLength(16) | sps(n) | numOfPPS(8) | ppsLength(16) | pps(n) |

     

    实例:

    总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。因此一个FLV文件看上去是下面的结构:

    FLV文件格式解析

        其中,Previous Tag Size紧跟在每个Tag之后,占4个字节表示一个UI32类型的数值,表示前面一个Tag的大小。需要注意的是,Previous Tag Size #0的值总是为0。Tag类型包括视频、音频和Script,且每个Tag只能包含一种类型的数据。下面我们看看File Header和Tag的具体结构,为了方便大家理解,我贴一个实际FLV文件的字节流图片,图片中把不同部分区分了颜色。

    FLV文件格式解析

     

    一、File Header结构

        File Header在当前版本中总是由9个字节组成,如图中蓝色区域所示。

        第1-3字节为文件标识(Signature),总为“FLV”(0x46 0x4C 0x56),如图中紫色区域。

        第4字节为版本,目前为1(0x01)。

        第5个字节的前5位保留,必须为0。

        第5个字节的第6位表示是否存在音频Tag。

        第5个字节的第7位保留,必须为0。

        第5个字节的第8位表示是否存在视频Tag。

        第6-9个字节为UI32类型的值,表示从File Header开始到File Body开始的字节数,版本1中总为9。

     

    二、Previous Tag Size结构

        如图中红色位置所示。

     

    三、Tag结构

        Tag包括Tag Header和Tag Data两部分。不同类型的Tag的Header结构是相同的,但是Data结构各不相同。如图中绿色和黄色区域分别表示Tag Header数据和Tag Data数据。

        当前版本的Tag Header结构占用11个字节。

        第1个字节表示Tag类型,包括音频(0x08)、视频(0x09)和script data(0x12),其他类型值被保留。

        第2-4字节为UI24类型的值,表示该Tag Data部分的大小。

        第5-7字节为UI24类型的值,表示该Tag的时间戳(单位为ms),第一个Tag的时间戳总是0。

        第8个字节为时间戳的扩展字节,当24位数值不够时,该字节作为最高位将时间戳扩展为32位值。

        第9-11字节为UI24类型的值,表示stream id,总是0。

        后面的字节为Tag Data数据,Data的大小由第2-4字节的数值指示,根据第1个字节指示的Tag类型,按照不同的结构解析Tag Data。下面分别介绍。

     

    四、Audio Tag Data结构

        音频Tag开始的第1个字节包含了音频数据的参数信息,从第2个字节开始为音频流数据。

        第1个字节的前4位的数值表示了音频数据格式,各值代表的意义大家可以查阅Adobe公司发布的FLV格式说明文档(可以到我的磁盘空间的“资料”目录去下载 http://e.ys168.com/?tinyfun)。

        第1个字节的第5-6位的数值表示采样率,0 = 5.5 kHz,1 = 11 kHz,2 = 22 kHz,3 = 44 kHz。

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

        第1个字节的第8位表示音频类型,0 = mono,1 = stereo。

     

    五、Video Tag Data结构

        视频Tag也用开始的第1个字节包含视频数据的参数信息,从第2个字节开始为视频流数据。

        第1个字节的前4位的数值表示帧类型。

        第1个字节的后4位的数值表示视频编码ID,1 = JPEG(现已不用),2 = Sorenson H.263,3 = Screen video,4 = On2 VP6,5 = On2 VP6 with alpha channel,6 = Screen video version 2。

     

    六、Script Tag Data结构

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

        一般来说,该Tag Data结构包含两个AMF包。AMF(Action Message Format)是Adobe设计的一种通用数据封装格式,在Adobe的很多产品中应用,简单来说,AMF将不同类型的数据用统一的格式来描述。第一个AMF包封装字符串类型数据,用来装入一个“onMetaData”标志,这个标志与Adobe的一些API调用有,在此不细述。第二个AMF包封装一个数组类型,这个数组中包含了音视频信息项的名称和值。具体说明如下,大家可以参照图片上的数据进行理解。

     

        第一个AMF包:

           第1个字节表示AMF包类型,一般总是0x02,表示字符串,其他值表示意义请查阅文档。

           第2-3个字节为UI16类型值,表示字符串的长度,一般总是0x000A(“onMetaData”长度)。

           后面字节为字符串数据,一般总为“onMetaData”。

     

        第二个AMF包:

           第1个字节表示AMF包类型,一般总是0x08,表示数组。

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

           后面即为各数组元素的封装,数组元素为元素名称和值组成的对。表示方法如下:

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

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

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

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

     

        OK,到此FLV文件结构讲完了,希望我已经讲清楚了:)另外我自己写了一个小工具,用它可以查看一个FLV文件的结构,并且能够分析各个字段对应字节的具体值,截图如下。目前还有一些小问题需要完善,后面我会加一个使用说明。想用的朋友可以到我磁盘空间的“工具”目录去下载。(http://tinyfun.ys168.com/

    FLV文件格式解析

     

    展开全文
  • 播放flv文件

    2012-04-09 16:35:23
    提供各种flv文件能在jsp文件中播放,希望大家能优化他。有些参数不是很清楚
  • Flv文件格式解析

    2021-03-18 00:36:33
    Flv文件解析 Flv文件分为header和body两个部分 image.png Header Flvheader.png Body TAG Flv TAG.png TAG_DATA Scrpit TAG_DATA_Scrpit.png Video TAG_DATA_Video_CONFIG.png TAG_DATA_...

    Flv文件解析

    Flv文件分为header和body两个部分

     

     

    image.png

    Header

     

    Flvheader.png

    Body

    TAG

     

    Flv TAG.png

    TAG_DATA

    Scrpit

     

    TAG_DATA_Scrpit.png

    Video

     

    TAG_DATA_Video_CONFIG.png

     

    TAG_DATA_Video_NAUL.png

    Audio

     

    TAG_DATA_Audio.png



    作者:deep_sadness
    链接:https://www.jianshu.com/p/e327d7715bae
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • ffmpeg 合并 flv 文件

    2021-01-06 16:12:53
    ffmpeg 合并flv文件为MP4,c++代码
  • FLV文件合并软件

    2012-07-28 00:49:33
    FLV文件合并软件 FLV 合并 叠加 快速 绿色
  • FLV文件合并器

    2013-11-19 21:47:01
    很好的FLV合并器,下载分散的FLV文件,用它很快就合并成功
  • FLV文件格式详解FLVTag

    2009-12-10 13:50:55
    FLV文件格式详细 FLV文件: FLVHeader FLVStream FLVHeader : Signature Version Flags Offset Signature : "FLV" Version : 0×01 Flags : 0×01 | 0×04 | 0×05 //1:video,4:audio,5:video+audio Offset : 0×00 0...
  • Flv文件分析工具

    2013-08-31 14:56:30
    目前看到的最好的Flv文件分析工具, 推荐给需要分析Flv的朋友们.
  • FLV文件格式

    2016-09-21 19:47:24
    flv文件主要由两部分组成:header和body。 1.header header部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下: 文件类型 3 bytes “FLV” 版本 ...
  • flv分析工具,非常好用。显示flv文件内部的各个header和tag 与github上的这个版本不是一个版本。https://github.com/zymill/flvAnalyser
  • flv文件格式解析

    2018-12-19 16:17:21
    flv头 FLV header   总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件...在做格式探测的时候,如果发现前3个字节为“FLV”,就认为它是flv文件. Version: 第4个字节表示flv版本号...
  • 主要介绍了PHP实现获取FLV文件的时间,本文直接给出实现代码和使用方法,需要的朋友可以参考下
  • 视频下载下载flv文件

    2010-05-05 08:53:24
    用于下载flv文件 用于下载flv文件 用于下载flv文件 用于下载flv文件
  • 合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件合并2个FLV文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,332
精华内容 2,532
关键字:

flv文件