FLV流媒体应用大攻略_第1页
FLV流媒体应用大攻略_第2页
FLV流媒体应用大攻略_第3页
FLV流媒体应用大攻略_第4页
FLV流媒体应用大攻略_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FLV 流媒体应用大攻略FLV 格式是FLASH VIDEO格式的简称,它是不仅可以轻松地导入Flash中,也可以通过rtmp协议从Flashcom服务器上流式播出或者通过http协议播出。由于FLV格式在提供较高压缩比的同时也保持了较好的画面质量,而且文件FLV 格式加载速度也极快,因此目前国内外主流的视频网站都应用了,它在校园网中也将大有用武之地。下面就让我们攻克FLV流媒体应用的一个个难关吧。一、FLV服务器端攻略一一FLV的发布方式FLV可以通过两种方式在服务器端发布,一种是在服务器端安装Flash Media Server,通过Flash Media Server发布FLV流 媒体文

2、件;另一种是通过Web服务器发布FLV流媒体文件。Flash Media Server是Macromedia公司开发的FLV流媒体文 件发布平台,可以对发布的文件进行管理,可以定制数据带宽,监控服务器端的数据流量,但是这种模式是基于服务器 端与客户端实时通信基础之上的,在网络带宽较好的情况下,客户端接受服务器数据比较及时,在客户端观看的视频也 就比较流畅,一旦网络带宽不好时,客户端极易与服务器中断连接,所以在Internet这样的广域网上,一般都是采用第 二种方式通过Web服务器发布FLV流媒体文件。这种方式虽然不易于管理和监控发布的FLV流媒体文件,但是采用这 种方式FLV流媒体文件是通过渐

3、进式下载方式传输到客户端的,所以客户端与服务器通信受网络带宽影响较小,在客户 端观看的视频始终流畅,给客户的体验要好于第一种方式。因为大部分学校都是以Microsoft Internet信息服务(IIS)作 为Web服务器软件,所以下面介绍一下在IIS环境下发布FLV时,Web服务器端配置的方法。Microsoft 更改了在 Microsoft Internet 信息服务 (IIS) 6.0 Web 服务器中处理流媒体的方式,不再采用早期版本中的处理 方式。早期版本的 IIS 不需要对 Flash 视频流做任何修改。在 Windows 2003 附带的默认 Web 服务器 IIS 6.0 中,

4、服 务器需要借助 MIME 类型来确认 FLV 文件为流媒体。配置 Microsoft Windows 2003 和 Microsoft IIS Server 6.0 以采用 流式媒体的方式加载 FLV 视频的方法如下:1、在 Windows 2003 server 中,打开 IIS 管理器;2、展开本地计算机;3、右击网站,然后选择属性;4、选择HTTP标签,找到MIME映射,点击文件类型;5、点击新类型,关联扩展名:.FLV 内容类型:flv-application/octet-stream;6、点击确定; 7、重启 IIS。经过这样配置,IIS 6.0就可以流式传送FLV 了,当然还要在

5、IIS建立一个目录或虚目录来存放FLV视频文件。 二、客户端播放器制作攻略采用FLV进行流媒体服务,一个好处就是可以用Flash制作出有个性的客户端播放器。不过要注意,制作播放器时要使 用Flash CS3以上版本,因为一些视频控制代码在Flash Max2004中是无法测试通过的。1、界面的制作新建一个Flash (ActionScript2.0)空白文档,在图层1上添加几个按钮元件,用作播放/暂停按钮、停止按钮、音量按钮、 全屏按钮,并排列好按钮的位置。添加两个动态文本,用来传递视频参数,并在其属性框里,分别指定其变量名为FMServer(服务器地址)、clipName (视频剪辑名称),

6、把Flash影片的背景设为黑色。再新建一个图层2,位置在图层1上。在 其上创建一个视频对象实例:使文档在 Flash 创作工具中保持打开状态,从“库”面板(“窗口”“库”)的弹出菜单中选择“新建视频”。在“视频属性”对话框中,命名视频元件并选择“视频”(受 ActionScript 控制)。 单击“确定”以创建一个视频对象。将该视频对象从“库”面板拖到舞台上,以创建视频对象实例。使视频对象在舞台上保持选中状态,在“属性”检查器(“窗口”“属性”)中的“实例名称”文本框中键入 my_video。 在属性框里修改其大小和位置,并使其遮住图层1上的动态文本。2、添加视频控制代码在图层2的第一帧中添加

7、如下脚本:my_video.smoothing=true;视 频开启平滑var clip_duration=0;视频长度,如果使用播放进度条的话var my_sound = new Sound();声音实例var volumenumber=50my_sound.setVolume(vo山menumber);/设置初始音量为原始音量的50%var ncstatus=open; 视频结束标记,初始为打开var playingstatus= true; /视频播放标记 var my_nc:NetConnection; 连接实例var ns:NetStream; 流实例function custom_

8、nc():Void连接函数my_nc= new NetConnection();my_nc.connect(null);function custom_ns():Void流启动函数ns= new NetStream(my_nc);my_video.attachVideo(ns); /给视频对象加载流ns.client=this; /指定ns的client属性为this,以便使用回调函数ns. play(FMServer+/+clipName+ flv,0,-1, false);/开始播放ns.onStatus=function(infoObject:Object) /获取播放状态 switch

9、(infoObject.code)case NetStream.Buffer.Empty :breakcase NetStream.Buffer.Full :breakcase NetStream.Buffer.Flush :/缓存被清空playingstatus=falsencstatus=close/视频结束标记,设为关闭ns close()关闭流breakcase NetStream.Play.Start :breakcase NetStream.Play.Stop :breakcase NetStream.Play.StreamNotFound :breakcase NetStream

10、.Seek.InvalidTime :breakcase NetStream.Seek.Notify :break/获取文件播放时长,如果使用播放进度条的话ns.onMetaData = function(infoObject:Object) clip_duration=infoObject.duration;/定义回调函数获取文件头元数据其中就有视频播放的时长/回调函数只定义了接口,而函数行为需要应用者定义function onMetaData(infoObject:Object):Voidvar key:String;for (key in infoObject)trace(key + :

11、 + infoObjectkey);监听ESC键myListener = new Object();myListener.onKeyDown = function () /trace (You pressed a key.);myListener.onKeyUp = function () /松开 ESC 键退出全屏 if(Key.getCode()=27)Stage.scaleMode=exactfit;/trace (You released a key.);Key.addListener(myListener);custom_nc();custom_ns();在播放/暂停按钮中添加如下代

12、码: on(release)if(_level0.ncstatus=close)_level0.ncstatus=open_level0.playingstatus=true_level0.custom_ns()Elseif(playingstatus)如果正在播放,此时暂停_level0.playingstatus=false_level0.ns.pause(false);Else如果此时暂停,则继续播放_level0.playingstatus=true_level0.ns.pause(false); 在停止按钮中添加如下代码: on(release)_level0.playingstat

13、us=false_level0.ncstatus=close_level0.ns.close() 在音量按钮中添加如下代码: on(release)volumenumber=volumenumber+10if(volumenumber=0)音量从 0 正加到 100% _root.my_sound.setVolume(volumenumber)if(volumenumber=-100) /音量从 100%减少到 0_root.my_sound.setVolume(-1*volumenumber)if(volumenumber=100)volumenumber=-100 在全屏按钮中添加如下代码

14、:on(release)讦(StagedisplayState=fullScreen) 退出全屏Stage.scaleMode=exactfitStagedisplayState=normal;else /全屏Stage.scaleMode=showAllStagedisplayState=fullScreen;/如果使用播放进度条的话/ns.time 可以获取当前播放时间/ns.bytesLoaded已下载的视频字节数,ns.bytesTotal视频总字节数/ns.seek( )搜索前进到函数参数指定的位置3、将播放器嵌入网页在Flash中,测试并发布播放器的swf文件,并保存文件名为flv

15、player,将flvplayer.swf文件复制到作为播放器页面的网 页的相同目录下,将下列代码加入到网页代码中。 这样除了进度条外,播放器就制作完成了,在这里进度条的制作和控制就不做介绍了,制作和控制进度条需要的几个关 键函数在上面代码中已经提到了,读者可以利用这几个函数制作进度条。三、FLV文件制作攻略完成前两步,网友就可以享受你提供的FLV流媒体视频服务了,剩下的就准备足够的FLV流媒体视频文件了。制作FLV流媒体视频文件,可以使用Macromedia公司提供的FLV编码器Macromedia Flash 8 Video Encoder,它支持将AVI等文件转换成FLV文件,使用起来很简单,不过在网上很难下载到,你可以到下列网址下载 HYPERLINK /itg/software%e3%80%82 /itg/software。建议不要使用其他编码器,其他编码器可能不会提供文件元数据,没有元数据就无法获得视频时长,进度条就无法正确 运行了。本文中的代码都是测试过的,可以到 HYPERLINK /itg/video%e7%9c%8b%e4%b8%80%e7%9c%8b%e4%bb%a3%e7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论