标题：flv
基本简介
在线视频英文名：FlashVideo
FLV视频格式的定义
许多在线视频网站都采用此视频格式。如搜狐视频、新浪播客、六间房、56、优酷、酷6、土豆，youtube等。FLV已经成为当前视频文件的主流格式。视频传播FLV是被众多新一代视频分享网站所采用，是目前增长最快、最为广泛的视频传播格式。是在sorenson公司的压缩算法的基础上开发出来的。FLV格式不仅可以轻松的导入Flash中，速度极快，并且能起到保护版权的作用，并且可以不通过本地的微软或者REAL播放器播放视频。  FLV
视频格式
普及  FLV网络宽带的普及使中国网民数量跃升至全球第一，同时也造就了众多的网络神话，GOOGLE斥巨资收购YouTube，似乎将国内外本身已经够火的Web2.0视频网站被广泛关注。而流行的风潮似乎又是第一时间刮到了国内，在这个充分发挥自我个性的年代，视频、播客等网站在国内如雨后春笋般兴起，新的网络战役一触即发，这对于FLV视频格式的普及无疑是一个巨大的推动力。
FLV（Flash Video）流媒体格式是随着Flash MX的推出而发展而来的一种新兴的视频格式。FLV文件体积小巧，清晰的FLV视频1分钟在1MB左右，一部电影在100MB左右，是普通视频文件体积的1/3。再加上CPU占有率低、视频质量良好等特点使其在网络上盛行，网上的几家著名视频共享网站均采用FLV格式文件提供视频，就充分证明了这一点。优势  FLVFLV作为一种新兴的网络视频格式，能得到众多的网站支持并非偶然。除了FLV视频格式本身占有率低、视频质量良好、体积小等特点适合网络发展外，丰富、多样的资源也是FLV视频格式统一在线播放视频格式的一个重要因素。从最新的变形金刚到越狱再到各项体育节目，甚至于网友制作的自拍视频等都可以在网络中轻而易举的找到。
在互联网上提供FLV视频的有两类网站，一种是专门的视频分享网站如美国的YouTube网站、国内的六间房、土豆网等。另一种是门户网站提供了视频播客的板块，提供了自己的视频频道，如新浪视频播客等，也是使用FLV格式的视频。此外，百度也推出了关于视频搜索的功能，里面搜索出来的视频基本都是采用了流行的FLV格式。使用Web 2.0时代，要说什么类型网站最火，自然是以国外的Youtube，国内的优酷、土豆网、UUME为代表的视频分享网站了。这类网站提供的视频内容可谓各有千秋，但它们无一例外的都使用了Flash作为视频播放载体，支撑这些视频网站的技术基础就是——Flash 视频(FLV) 。
  FLVFLV 是一种全新的流媒体视频格式，它利用了网页上广泛使用的Flash Player 平台，将视频整合到Flash动画中。也就是说，网站的访问者只要能看Flash动画，自然也能看FLV格式视频，而无需再额外安装其它视频插件，FLV视频的使用给视频传播带来了极大便利。
看了上面这些，相信大家也跃跃欲试了吧，下面我们就来讲讲如何在网页中使用FLV 视频。
从Flash MX 2004开始，软件就提供了FLV格式支持，不过笔者建议大家使用目前最新版本的Flash 8(目前最新的版本是Flash CS5了)，这个版本的Flash中有一个独立的FLV转换工具：Flash 8 Video Encoder。点击系统菜单“程序”→“Macromedia”→“Macromedia Flash 8 Video Encoder”进入。
进入程序后，可以看到软件界面非常简单。实际上使用这一工具转换普通视频为FLV视频很容易，只需几步即可完成。
点击“增加”按纽，软件自动调用系统“打开”对话，选择需要导入的视频即可。Flash 8 Video Encoder支持转换的视频格式相当广泛，如：AVI、WMV、MPEG、ASF、MOV等常见视频格式。视频添加进队列后，如果你不需要做特殊修改，那么点击“开始队列”按纽，程序即开始视频转换。软件转换视频的速度，笔者总的感觉还是较快，当然这与原始视频大小及设置的视频数据速率有关。整个转换过程，主窗口下方都有信息提示，并且还能看到实时的进度预览。转换结束后，在转换视频同一文件夹下，我们就能得到一个同名的FLV文件。
当然，上述这些只是按照默认设置进行转换的情况，实际情况下，我们对于视频转换的控制还可以很多，点击主窗口“设置”按纽进入高级设置对话框。
在视频编码设置对话框中，最显著的就是FLV视频品质设置，默认是“Flash 8- 中等品质(400kbps)”，软件内置7种不同的编码设置组合。我们也可以选择自定义设置，点击“显示高级设置”按纽，软件将显示自定义的设置界面。
软件提供了两种视频解码器供选择：On2 VP6（用于Flash Player 8，支持Alpha 通道）、Sorenson Spark（用于Flash Player 7，适用于低配置用户）；“调整视频大小”也颇有用，我们很容易生成制定尺寸的动画；如果你只重视视频效果，那么你还可以对“音频编码”开刀，将默认编码数率设置低些，那么输出的文件还会更小巧。  FLV高级设置中的选择还很多，它甚至还提供了简单的视频编辑功能，点击“裁切和修剪”标签。
裁切使用很简单，软件提供了四个方向的控制，输入数值以裁切视频，或者点击“三角”按纽显示控制滑块，拖动滑块直观地调整视频尺寸，视频预览区会实时用虚线勾画裁切范围。
修剪的使用也不复杂，在视频预览区下方可以看到一个蓝色的视频进度指示条，拖动上方的“倒三角”按纽定位视频播放进度。进度指示条下方有两个按纽，它们就是“开始点”和“结束点”定位按纽，分别拖动按纽到所需位置，即完成简单的视频修剪。
得到了FLV文件，其实我们并不能直接在网页中使用，我们还需要将它嫁接到Flash动画中去。如同大家在各种视频网站中看到的一样，我们创建的Flash视频并不是简单播放就算了，它也是带播放控制的。
运行Flash 8，创建新的Flash 文档，点击菜单“文件”→“导入”→“导入视频”，进入“导入视频”对话框。
可以看到，选择视频时会有两种不同的选择：“在您的计算机上”、“已经部署到”，这两者是有区别的，不过我们仅需在本地测试动画，选择“在您的计算机上”。点击“浏览”按纽，通过系统打开对话框，载入我们刚生成的FLV文件，点击“下一个”按纽继续。
接下来选择“部署方式”为：“从Web服务器渐进式下载”，进入“外观”选项。
Flash 8当前已经为播放FLV视频内置了数十个播放控制器，它们的外观各异，控制选项也有区别，你可以根据自己的需要，选择一个合适的播放控制器，最后点击“完成”按纽结束。
返回Flash 8主窗口工作区，可以看到我们刚插入的视频已经布置到位了，此时你可以直接按Ctrl+Enter测试动画了。
不同方式
本地文件作为一个独立的FLV文件。虽然Flash视频文件通常是交付使用的Flash Player的控制， FLV文件本身是全功能对自己的和可以发挥的或转换为其他格式，由本地存储如硬盘或CD上。[引文需要]嵌入式swf在一个嵌入式的SWF文件使用Flash创作工具（支持在Flash Player 6和更高版本）。整个档案必须在移交之后，才可以开始播放。改变影片需要重建的SWF文件。逐步下载逐步通过HTTP下载（支持在Flash Player 7和更高版本）。此方法使用的ActionScript ，包括一外部托管的Flash视频文件的客户端播放。渐进式下载有几个优势，包括缓冲，使用通用的HTTP服务器，并有能力再用一个单一的SWF Player的多重闪光视频源。Flash Player 8中包括支持随机存取内部的视频文件使用部分下载功能的HTTP ，有时这是被称为流。不过，不同的流使用rtmp ，HTTP的“分流” ，不支持实时广播。流通过HTTP需要自订播放器和注射液的具体Flash视频中继载有确切的出发位置在字节和时间码的每一个关键帧。使用此特定的信息，自定义的Flash视频播放器，可要求任何部分的Flash视频文件，开始在指定的关键帧。举例来说，Google视频和YouTube支持渐进式下载并可以寻求任何部分的视频前缓冲完成。服务器端的一部分，这个“ HTTP的伪分流”的方法是相当简单的执行，例如在PHP中，作为Apache的httpd模块，或1 lighttpd模块。丰富的媒体项目提供球员和Flash组件兼容的“HTTP伪分流”的方法。rtmp方式流通过rtmp到Flash Player的使用Flash媒体服务器（以前称为闪光通信服务器），风险投资， electroserver ， wowza Pro或开放原始码red5服务器。截至2008年4月，有4个流录音机，供本议定书，重新编码screencast软件排除在外。
文件生成
简介FLV的播放器是一个类型的媒体播放器是用来播放Flash视频从PC ，以及从互联网网站。一般的FLV播放器，可以单独使用，而不需要使用Adobe Flash创作或发展工具。
  FLV有几个视频播放器作出的具体发挥的FLV文件，其中包括：
Web的解剖学的FLV播放器（网络）
系列JW的FLV播放器（网络）
丰富的媒体项目的FLV播放器（网络）
applian的FLV播放器（桌面）
马亭devisser的的FLV播放器（桌面）
sonettic电影院的FLV播放器（网络）
wimpy桌面的FLV播放器（桌面）
flowplayer嵌入视频播放器（网络）
操作系统的FLV -开放源代码，嵌入的F LV播放器（网络）
moyea桌面的Flash Player （桌面）
nflv播放器-能发挥u nrewindable/ u nforwardable。F LV的影片（桌面）
瑞士法郎&的FLV播放器（在Mac OS - x ）的（桌面）
videolan -v lc媒体播放器（桌面）
其他媒体播放器的基础上， ffmpeg图书馆应能发挥回的Flash Video格式的视频[ 3 ] 。上市下面是一些例子，媒体播放器，支持Flash视频格式：生成通过动画预览，我们可以发现，默认的Flash动画尺寸比播放器宽了不少，我们需要重新设置一下。鼠标在工作区中选择“播放器控件”，调用“属性”面板（Ctrl+F3），修改X、Y轴值为“0.0”，这样我们就将“播放器控件”这个元件定位到了工作区的左上方顶点处。  FLV点击菜单“修改”→“文档”，进入“文档属性”对话框，选择“匹配”值为“内容”，点击“确定”返回，于是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”文件会有安全警告，这是正常的情况，大家不必担心。
另外，很多的具有视频功能的MP3也支持flv格式。公司媒体chameleo  FLVgom播放器
MPlayer的（使用ffmpeg ）
使用RealPlayer
vlc媒体播放器
xine （用途ffmpeg ）
任何播放器，可以使用ffdshow （基于ffmpeg ）DirectShow的编解码器：
媒体播放器的经典
Winamp中
Windows Media Player中
变焦播放器
任何播放器使用的QuickTime ，安装后的FLV的组成部分
文件下载
在线观看的flv视频文件基本都不提供下载，如果想把它下载下来，也很简单，在此介绍两种方法：temp下载第一种（比较麻烦），该方法对多数视频适用。
首先，正常观看视频，不要关闭浏览器，  FLV其次，等视频加载完毕，进入C:\Documents and Settings\你的用户名\Local Settings\Temporary Internet Files
（这只是默认位置，若无法访问请打开“Internet选项”（IE中菜单栏内“工具”-->“Internet选项”）单击“浏览历史记录”中“设置”，“查看文件”（不同版本IE操作可能有所区别））
这个文件夹（有可能要用到文件夹选项中的“显示全部文件”才可看见），然后，查找扩展名为flv的文件即可，可以按时间排序，很容易找到。也可以按大小，视频文件一般都比较大，排在顶部本方法适合任何flv视频网站。专业工具还有一种(推荐， 非常轻松地下载)可借助flv视频下载软件，例如：流行的有狂雷视频下载、维棠下载等，都是比较成熟的软件，可提供播放、下载、转换等功能。狂雷界面简单易用，知名度高，其本身是一个flv资源平台，提供的flv资源自然丰富，狂雷视频下载像迅雷一样，功能丰富，而且下载速度是同类所有下载软件中最快的，支持优酷分段视频的自动合并，还具有强大的视频转换功能，可根据手机型号来转换FLV视频到您手机支持的视频格式。维棠像FLASHGET一样，操作比较复杂，只有下载，没有搜索功能。还有像其他的flv小软件，比如xmlbar之类的，不过功能有点简单，易操作性一般。
另外还可以通过flvcd网站在线解析视频地址,直接浏览器另存为下载,无需安装插件.
相信flv下载软件伴随着flv的发展共同进步！~
制作视频
FLV流媒体格式是一种新的视频格式，全称为Flash Video。Flash MX 2004对其提供了完美的支持，它的出现有效地解决了视频文件导入Flash后，使导出的SWF文件体积庞大，不能在网络上很好的使用等缺点。下面我们就来介绍一下如何使用小巧的FLV流媒体文件。流媒体格式首先，打开Flash MX 2004，新建一个Flash文档。将准备好的AVI格式的视频文件导入到库中。导入过程会出现向导提示，总共分2步，分别是“编辑”和“编码”的处理。
按照默认值进行处理，我们选择“导入整个视频”，单击“下一步”按钮然后“结束”完成导入过程。按下“Ctrl+L”组合键打开库，双击刚刚导入的AVI文件图标，打开“嵌入视频属性”界面。
单击“导出”生成FLV格式文件。
通过以上操作我们成功地将视频AVI格式转换成为了FLV格式。这其中发生了什么变化呢？在默认参数的转化下。使23MB的AVI文件变成了541KB的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 header）和很多tag组成。tag又可以分成三类：audio,video,script，分别代表音频流，视频流，脚本流（关键字或者文件信息之类）。
FLV文件=FLV头文件+ tag1+tag内容1 + tag2+tag内容2 + ...+... + tagN+tag内容N。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的四个字节还是保留的.其数据为 00000009 .
整个文件头的长度，一般是9（3+1+1+4）文件元信息flv文件中的元信息，是一些描述flv文件各类属性的信息。这些信息以AMF格式保存在文件的起始部分。adobe官方的标准flv元信息项目如下(来源：[1])：
audiochannels
audiocodecid
audiodatarate
audiodevice
audioinputvolume
audiosamplerate
creationdate
duration (media files only)
fmleversion (Flash Media Live Encoder version) (media files only)
framerate
height
lastkeyframetimestamp (media files only)
lasttimestamp (media files only)
presetname
videocodecid
videodatarate
videodevice
videokeyframe_frequency
width
两个常用的操作metadata的工具是flvtool2和FLVMDI，都是把keyframes作为一个默认的元信息 项目。FLV BodyFLV body就是由很多tag组成的，一个tag包括下列信息：
previoustagsize 4bytes 前一个tag的长度，第一个tag就是0
tag类型1byte
三类：
* 8 -- 音频tag
* 9 -- 视频tag
* 18 -- 脚本tag
数据区长度3bytes时间戳3bytes 单位毫秒，如果是脚本tag就是0
扩展时间戳1byte 作为时间戳的高位
streamsID 3bytes 总是0（不知道干啥用）
数据区
根据不同的tag类型就有不同的数据区
Audio tag 数据区
audio信息1byte  FLV前四位bits表示音频格式:
* 0 -- 未压缩
* 1 -- ADPCM
* 2 -- MP3
* 5 -- Nellymoser 8kHz momo
* 6 -- Nellymoser
下面两位bits表示samplerate:
* 0 -- 5.5kHz
* 1 -- 11kHz
* 2 -- 22kHz
* 3 -- 44kHz
下面一位bit表示每个采样的长度：
* 0 -- snd8Bit
* 1 -- snd16Bit
下面一位bit表示类型：
* 0 -- sndMomo
* 1 -- sndStereo
audio数据区
不定
video tag 数据区
video信息1byte
前四位bits表示类型：
* 1 -- keyframe
* 2 -- inner frame
* 3 -- disposable inner frame (H.263 only)
后四位bits表示编码器id：
* 2 -- Seronson H.263
* 3 -- Screen video
* 4 -- On2 VP6
* 5 -- On2 VP6 without channel
* 6 -- Screen video version 2
video数据区
不定
script tag 数据区基本格式tag类型信息,固定长度为15字节
1-4: 前一个tag长度(4字节),第一个tag就是0
5-5: tag类型(1字节);0x8音频；0x9视频；0x12脚本数据
6-8: tag内容大小(3字节)
9-11: 时间戳(3字节)(毫秒)(第1个tag的时候总是为0,如果是脚本tag就是0)
12-12: 时间戳扩展(1字节)让时间戳变成4字节(以存储更长时间的flv时间信息),本字节作为时间戳的最高位.
在flv回放过程中,播放顺序是按照tag的时间戳顺序播放.任何加入到文件中时间设置数据格式都将被忽略.
13-15: streamID(3字节) 总是0
[2]