`
uope42uope
  • 浏览: 12684 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux下的fms2流媒体服务器搭建六部曲之五:flv播放器制作篇

 
阅读更多

linux下的fms2流媒体服务器搭建六部曲之五:flv播放器制作篇
2010年01月03日
  很多人也许苦于找不到一个稍微简单而又完整的flv播放器,我刚开始也找了很久找不到,后来干脆叫朋友帮忙做了个界面,然后自己添加代码做了个,感觉还可以,这里我不敢独享,把源码公开给各位参考一下。
  要做flv播放器,首先你要明白fms2的工作目录,它的工作目录都在安装目录的applications目录下,你需要新建一个目录作为自己的工作目录,比如我新建了gdrc,然后在gdrc里面新建一个streams目录(这个目录名不能改变),这样,在streams下的所有子目录都是你的应用了。默认是_definst_,我为了好管理自己建了video放置视频flv文件,再建audio放置音频,这样我的目录结构就是:applications/gdrc/streams/video、applications/gdrc/streams/audio、applications/gdrc/streams/_definst_。在上一篇中提到的格式转换转换的所有flv文件就是放在applications/streams/video目录下。
  然后,来看看我的flv播放器吧,我是用flash8开发的,只需要几个简单的组件,视频组件、播放按钮、暂停按钮、停止按钮、时间轴再加下面的代码就是一个flv播放器,在第一祯写上下面的代码:
  stop();
  var play_status = false;//视频播放标记,true-正在播放;false-没有播放
  var connect_url = "rtmp://172.16.1.2/gdrc/video";//连接方式rtmp,注意这个连接的后面/gdrc/video跟上面提到的flv目录applications/gdrc/streams/video是对应的。
  var flv = stream;//动态播放flv,该参数名对应外面的参数名比如play.swf?stream=a表示播放a.flv,参数不需要.flv后缀名
  var nc:NetConnection = new NetConnection();
  var ns:NetStream;
  nc.connect(connect_url);
  var streamLength;//flv文件长度
  bt_pause._visible = false;//设置暂停按钮不可见
  var startBF = 2;//开始缓冲秒数
  var mainBF = 6;//空时缓冲秒数
  //初始化
  initStreams = function(){
  ns=new NetStream(nc);
  ns.setBufferTime(startBF);
  video.attachVideo(ns);//把ns附给video视频组件
  ns.onStatus = Onstatus;//动态缓冲
  };
  //动态缓冲,缓冲区满时为3秒,空的时候为10秒
  function Onstatus(infoObject:Object){
  trace(infoObject["code"]);
  if(infoObject["code"] == "NetStream.Buffer.Full"){
  ns.setBufferTime(startBF);
  }
  if(infoObject["code"] == "NetStream.Buffer.Empty"){
  ns.setBufferTime(mainBF);
  }
  }
  //测试连接
  nc.onStatus = function(info) {
  trace(info.code);
  switch (info.code) {
  case "NetConnection.Connect.Success":initStreams();break;
  }
  }
  //缓冲
  function checkBufferTime(ns:NetStream):Void{
  var bufferPct:Number = Math.min(Math.round(ns.bufferLength/ns.bufferTime*100), 100);
  if(isNaN(bufferPct)){
  bufferPct = 0;
  }
  buffer_txt = "缓冲:"+bufferPct+"%";;
  };
  //获得文件长度,这个长度的获取需要服务器端的支持,要在fms2服务器端编写main.asc,后面会给出
  function FileLength() {
  this.onResult = function(retVal) {
  streamLength = retVal;
  };
  };
  //播放
  doPlay = function(){
  if(play_status == false){
  bar.ball._x = 0;
  play_status = true;
  ns.play(flv);
  //播放进度条
  bar.onEnterFrame=function(){
  nc.call("getFileLength", new FileLength(), flv);
  var nowPlayPercent=Math.round(ns.time/streamLength*100);
  if(isNaN(nowPlayPercent)){
  bar.ball._x = 0;
  }
  else{
  bar.ball._x = nowPlayPercent*490/100;
  }
  if(nowPlayPercent==99){
  play_status = false;
  bar.ball._x = 0;
  bt_play._visible = true;
  bt_pause._visible = false;
  //ns.close();
  delete this.onEnterFrame;
  }
  };
  //缓冲提示
  var buffer_interval:Number = setInterval(checkBufferTime, 100, ns);
  }
  else{
  ns.pause();
  }
  };
  //暂停
  doPause = function(){
  ns.pause();
  };
  //停止
  doStop = function(){
  play_status = false;
  bar.ball._x = 0;
  //ns.seek(0);
  //ns.pause(true);
  ns.close();
  };
  //开始播放
  playNow.onRelease=function(){
  bt_play._visible = false;
  bt_pause._visible = true;
  doPlay();
  };
  //播放按钮
  bt_play.onRelease=function(){
  bt_play._visible = false;
  bt_pause._visible = true;
  doPlay();
  };
  //暂停按钮
  bt_pause.onRelease=function(){
  bt_play._visible = true;
  bt_pause._visible = false;
  doPause();
  };
  //停止按钮
  bt_stop.onRelease=function(){
  bt_play._visible = true;
  bt_pause._visible = false;
  doStop();
  };
  main.asc,放置到fms2安装目录的applications/gdrc目录下
  load("components.asc");
  application.onAppStart = function() {};
  application.onConnect = function(client) {
  application.acceptConnection(client);
  client.getFileLength = function(filename) {
  var tlen = Stream.length(filename);
  return tlen;
  };
  };
分享到:
评论

相关推荐

    [转]linux下的fms2流媒体服务器搭建六部曲之二-----mencoder安装篇

    在Linux环境下,构建一个FMS(Flash Media Server)的替代品——fms2流媒体服务器是许多开发者和网络管理员的任务之一。本篇文章将专注于fms2流媒体服务器搭建过程中的一个重要环节:mencoder的安装。mencoder是...

    流媒体服务器---fms3教程

    【流媒体服务器——FMS3教程】 在信息技术领域,流媒体服务器扮演着至关重要的角色,它们使得音频、视频等多媒体内容能够实时传输到用户的设备上,无需等待整个文件下载完毕。Adobe Flash Media Server(FMS)是...

    FMS4.5破解版流媒体服务器FlashMediaServer4.5.part01.rar

    FMS4.5破解版流媒体服务器FlashMediaServer4.5(文件较大分4个包) FMS是用于用户之间相互通讯的新平台。 它集成了Flash多媒体交互的特性,又添加了实时音频和实时数据流等新特色。 FlashMediaServer4.5资源比较难找带...

    全套FMS流媒体服务器工具集

    本篇文章将深入探讨“全套FMS流媒体服务器工具集”中的关键组件及其作用。 首先,我们来了解`flvcheck`工具。FLV是一种常见的Flash视频格式,flvcheck用于检查FLV文件的完整性和质量。它能分析文件结构,检测错误,...

    全套FMS流媒体系统管理与开发文档中文版

    《全套FMS流媒体系统管理与开发文档中文版》涵盖了Adobe Flash Media Server(FMS)的全面知识,是深入理解和操作这一流媒体平台的重要资源。本文将深入解析这些文档所包含的关键知识点,帮助读者掌握FMS的核心技术...

    流媒体服务器FMS3.5

    流媒体服务器FMS3.5 sn:1373-5465-5574-9110-6240-7230

    FMS4.5破解版流媒体服务器FlashMediaServer4.5.part03.rar

    FMS4.5破解版流媒体服务器FlashMediaServer4.5(文件较大分4个包) FMS是用于用户之间相互通讯的新平台。 它集成了Flash多媒体交互的特性,又添加了实时音频和实时数据流等新特色。 FlashMediaServer4.5资源比较难找带...

    fms.rar_flex_fms_流媒体

    在IT行业中,流媒体技术是实现在线视频和音频传输的关键技术之一,而Adobe的Flash Media Server(FMS)就是一种广泛使用的流媒体服务器解决方案。本文将深入探讨如何利用FMS作为流媒体服务器,进行实时通信视频聊天...

    FLV格式视频播放器

    总结来说,FLV播放器是处理FLV格式视频的关键工具,它们利用Flash技术和JavaScript实现丰富的交互功能,并可能依赖于FMS这样的服务器平台来提供流媒体服务。随着技术的发展,尽管Flash逐渐淡出舞台,但FLV格式仍然在...

    类似FMS的RED5开源FLASH流媒体服务器源码

    RED5开源FLASH流媒体服务器是一种类似Adobe Flash Media Server (FMS)的解决方案,它提供了实时流传输服务,支持多种媒体格式,并且完全免费且开放源码。RED5由Java编写,因此具有跨平台的特性,可以在运行Java环境...

    播放器 FMS2

    在信息技术领域,播放器FMS2全称为Flash Media Server 2,是由Adobe公司推出的流媒体服务器软件。它主要用于处理和分发实时音频、视频内容,以及交互式的富媒体应用程序。FMS2是FMS系列的一个重要版本,对于理解和...

    Nginx-rtmp流媒体服务器+OBS+VCL 资料

    Nginx-RTMP流媒体服务器是基于Nginx的一个扩展模块,用于处理实时传输协议(RTMP)的流媒体内容。它为广播者提供了一个高效且可扩展的平台来分发视频和音频流,广泛应用于在线直播、视频会议、远程教育等场景。OBS...

    网博flash流媒体直播系统 v1.0_fms_live2.zip

    【网博Flash流媒体直播系统 v1.0_fms_live2】是一款专为Web平台设计的实时流媒体直播解决方案,其核心是利用Adobe Flash Media Server(FMS)技术,为用户提供高质量、低延迟的视频直播服务。这个压缩包包含的是该...

    FMS视频直播系统的搭建.doc

    搭建FMS视频直播系统涉及到多个步骤,主要包括安装Flash Media Server (FMS),配置电脑IP,设置网络摄像机推流,以及使用网页播放器播放视频流。以下是对这些步骤的详细说明: 1. **准备工作**: - 首先,确保你有...

    搭建流媒体服务器[参照].pdf

    搭建流媒体服务器是一个复杂但有趣的过程,特别是在软件开发领域。本文将主要介绍如何利用Red5和FFMpeg这两个开源工具来构建一个在线的Flash流媒体分享平台。 Red5是一款基于Java的开源Flash流媒体服务器,它能替代...

    FMS服务器端加密

    【FMS服务器端加密】是针对使用FMS(Flash Media Server)进行流媒体服务时,为确保内容安全而采取的一种重要技术措施。FMS,全称为Adobe Flash Media Server,是Adobe公司开发的一款强大的流媒体服务器软件,广泛...

    FMS 服务端

    【FMS 服务端】是基于Adobe Flash Media Server(FMS)技术的一种专业级流媒体服务器,主要用于实现视频流的推送、分发和播放。在本文中,我们将深入探讨FMS服务端的核心功能、工作原理以及它在直播和点播服务中的...

    FLEX流媒体服务器配置说明.doc

    总的来说,配置FLEX流媒体服务器涉及多个环节,包括Java环境的搭建、Red5服务器的安装与配置、以及Flex开发工具的安装和使用。通过这些步骤,我们可以构建一个稳定、高效的流媒体服务平台,为用户提供流畅的多媒体...

Global site tag (gtag.js) - Google Analytics