码迷,mamicode.com
首页 > 其他好文 > 详细

Flash Media Server 安装调试教程

时间:2015-02-23 14:13:19      阅读:425      评论:0      收藏:0      [点我收藏+]

标签:

Flash Media Server 4.5(fms4.5)教程一:安装

你安装的Flash Media Server 4.5之前,Adobe建议您先卸载任何早期版本的FMS,你可能有你的应用程序和/或配置文件备份之前。安装过程中已经改变,从早期版本的一些方法。

安装的Flash Media Server 4.5,请按照下列步骤:

  1. 双单击启动安装FlashMediaServer4.5.exe。你会看到图1所示,其中列出服务器上的所有四个版本的启动画面。在下一个屏幕上,告诉你什么是即将发生,建议您关闭所有打开的应用程序。如果你有开放的其他应用程序,保存文件并退出这些应用程序。要开始安装过程中,单击“下一步”按钮。

 

技术分享

 

图1。Flash Media Server的4.5闪屏

 

  1. 通常的法律术语出现。此许可协议规定了该软件的使用条款。随意阅读。如果您同意,请单击“我接受协议”单选按钮,然后单击“下一步”继续安装过程。
  2. 下一个屏幕要求你输入序列号(见图2)。你并不需要一个序列号,您的计算机上安装开发版。如果你离开领域的空白,并单击“下一步”,安装确认,您只需安装免费开发版。

 

技术分享

 

图2。序号是不需要安装的Flash Media Server 4.5

 

  1. 在下一个屏幕上,确认您所安装的Flash Media Development Server的4.5(见图3)。如果您已购买的服务器和你看到这个画面,点击“后退”按钮,输入你的序列号。然而,这是没有必要的,按照本教程。单击“下一步”。

 

技术分享

 

图3。安装Flash媒体开发服务器4.5

 

  1. 在目标位置屏幕,你指定的地方,您的计算机上安装的服务器。在Windows系统上的默认位置是在您的计算机的Program Files文件夹(见图4)发现的Adobe文件夹。如果你想将安装在另一个位置,单击“浏览”按钮定位到所需的目录。设置服务器将被安装的位置后,点击“下一步”按钮。

 

技术分享

 

图4。指定的服务器安装的默认位置

 

  1. 选择所在的服务器将位于目录之后,你会发现这个版本的Flash Media Server和以前的版本之间的根本区别之一:你可以安装一个Apache 2.2与Flash Media Server(见图5)服务器。如果您选择安装Apache,你有两全其美:HTTP服务器能够提供实时HTTP流,渐进式下载的内容,和所有的FMS功能的优势,无需地点之间传播的内容(它是否是一个FMS服务器或在世界的另一端的ISP)的服务器。

 

技术分享

 

图5。HTTP服务器是一个功能的FMS 4.5

  1. 选择该文件夹包含服务器的快捷方式(见图6??)。默认位置是“开始”菜单。不过,如果你喜欢在不同的位置创建快捷方式,单击“浏览”按钮并选择所需的文件夹。单击“下一步”。
技术分享

 

图6。点击“浏览”按钮导航到该文件夹??,快捷方式将出现
  1. 在这一点上,安装过程中发生的严重程度。“管理服务”屏幕上出现,并提示您输入用户名和密码(见图7)。当你开始使用的管理控制台中,我们将探讨在本文稍后将需要此信息。输入用户名和密码,你会记得,因为你会被提示输入此信息,每次启动闪存媒体管理控制台,这是一个很好的主意。我们用通常所说的“管理”,如果你忘了,你是在严重的麻烦和9个字符的密码,我们经常用于其他目的。

    由于这是一个测试服务器,而不是一个“高风险”像一个PayPal帐户的情况,你不妨向自己发送一封邮件,其中包含用户名和密码。这样,你可以很容易地找到一个存储信息的记录。(当然,如果你在生产服务器上的工作,你将要保护这个密码。)

技术分享

 

图7。输入登录信息,你会使用它来访问服务器的管理控制台
  1. 指定安装软件,并创建了一个用户名和密码才能访问管理控制台后,下一步需要设置服务器将使用的端口(见图8)。除非你有一个令人信服的理由,否则,保留默认设置。虽然您可以使用多个端口,除非你真的有信心你在做什么,这是最好的,只需点击“下一步”按钮。
技术分享

 

图8。除非你有一个具体的理由这样做,不更改端口设置
  1. 现在安装的所有信息,它需要得到持续,你有第二次机会,检讨设置并进行修改(见图9)。如果是接受你的摘要信息,单击“安装”按钮。安装过程比较迅速,你会看到平常的屏幕显示文件提取和服务器初始化的进度。
技术分享

 

图9。点击返回到最后一分钟的变化,然后点击安装任何

  1. 一旦安装完成,你会看到如图10所示的完成屏幕。如果你愿意,你可以设置的Flash Media Server 4.5推出时启动您的计算机。虽然你可以手动打开服务器和关闭,我们宁愿它准备好时,我们需要工作,所以不要选择第三个选项。在柔性制造系统在后台运行,当您对您的日常琐事不会很慢的东西去。您的选择后,单击Finish按钮。
技术分享

 

图10。单击Finish按钮以完成安装

使用Flash Media Server 4.5中的启动画面

那些你们谁是新的Flash Media Server会发现“开始”屏幕上的一个不可或缺的资源;头发斑白的老兵往往迎接它一个响亮的,“它是关于时间!” 不管你的技术水平,如果你的FMS 4.5安装顺利,服务器正在运行,这是第一个屏幕上,你会看到后,点击“完成”按钮。
Adobe是第一个承认,学习Flash媒体服务器是一项艰巨的任务,由于产品的复杂性。出色的启动画面,帮助你找到你需要开始使用该产品,并获得支持的资源。

  1. 点击“开始”菜单和导航程序>的Adobe的Flash Media Server 4.5> Flash媒体服务器启动屏幕(见图11)。
技术分享

 

图11。启动“开始”屏幕上,通过选择
  1. 如果你有安装Adobe Flash Player 10.3或更高版本,你会看到如图12所示的屏幕。(如果不这样做,你会被引导下载。)开始屏幕分为四个区域。沿着顶部是一系列不言自明的链接。该地区的直接包含一个按钮来启动管理控制台,无需返回到“开始”菜单。第二个按钮,使您可以检查更新。
技术分享

 

图12。使用Flash Media Server的启动画面中的按钮来获取信息,启动管理控制台,更新产品
  1. 下一个区域包含一个视频播放器。你可以看到页面上的RTMP动态流样本发挥。屏幕右侧的按钮允许您查看的例子很多的FMS 4.5的新功能。互动“选项卡可以让你看到FMS的4.5如何让您使用的网络摄像头,创造互动体验。
  2. 向下滚动页面,以揭示真正的“开始”屏幕上的宝石(见图13)。在观看了十多年的行动;(在此之前,Macromedia的),汤姆一直惊叹于公司如何如此之大仍然可以管理他们的客户是如此接近。这是顾客参与的海报孩子“开始”屏幕上的详细面积。如果有关于Flash Media Server的普遍抱怨,这是知识库,尤其是在Adobe,被摊开,这是几乎人迹罕至。这三列可以很容易地访问教程和支持信息。
技术分享

 

图13。点击链接访问网上资源,教程和工具
 

左侧的工具栏包含各种工具,,如FLVCheck工具,它帮助你做你的工作更有效地链接。中间的示例应用程序和白皮书列链接到各种旨在增长你的技能的例子和出版物。

第三栏被分成两个区域。顶端部分,入门,包括从Adobe Developer Connection的链接到各种物品和样品,以帮助您马上开始。第二部分获得支持,作为一个Flash Media Server的本地关系网,想。利用这些资源,以找到任何Adobe产品的本地专家,了解更多的培训机会,并找到为您的项目顾问。

在管理控制台的展望

管理控制台可以帮助您管理服务器。因为有这么多不同的特点,我不打算深入到它。相反,假设你刚刚买了一辆新车,和邻居正在访问检查出来。你做什么?打开引擎盖(或帽子,取决于你住的地方),并开始指向的东西。让我们的邻居,你有什么。

取得新的Flash Media Server的大多数人的第一件事是管理控制台是不是一个应用程序。即使你安装到同一目录中的软件,你保持的Adobe Flash专业CS5.5和其他Adobe产品,你不会看到一个产品图标。管理控制台是一个HTML文档,其中包含的SWF文件是实际的控制台。这是有道理的,因为你是一个服务器,而不是一个独立的应用程序进行处理。

要打开管理控制台,可以在开始菜单上找到,或点击“开始”菜单“所有程序”按钮,浏览的Adobe的Flash Media Server 4.5> Adob??e Flash媒体管理控制台(见图14)。

技术分享

 

图14。在开始菜单中找到管理控制台

另外,导航到C: Program Files文件 Adobe Flash Media Server的4.5的工具,双击闪存媒体管理控制台链接(见图15)。务必双击显示(fms_adminConsole.htm  fms_adminConsole.swf)启动管理控制台的HTML文件。已经嵌入在HTML文档中的SWF。

技术分享

 

图15。找到在Windows资源管理器的管理控制台

当你打开管理控制台,您被提示输入用户名和密码,你创建的,当你安装的FMS 4.5。您输入您的凭据后,出现控制台的登录界面(见图16)。你会发现,服务器被赋予一个名称。你需要输入一个地址(使用本地主机)和您的用户名和密码。如果你不确定,检查责任人。如果一切正常,点击“登录”按钮。

技术分享

 

图16。在管理控制台的启动画面,输入您的用户名和密码

在下一个屏幕上显示的是实际的管理控制台(见图17)。注意任务栏的右侧开了绿灯。这是一个视觉指示,您的服务器很好地哼着沿。链接到Flash Media Server的联机文档的“帮助”按钮(问号)。点击旁边的问号的文件夹不允许您上传文件,你可能会认为。相反,这个按钮直接链接到了FMS的资源,从这个系列教程,各种论坛,在那里你可以张贴问题FMS开发者社区。

技术分享

 

图17。管理控制台在登录后提交
 

在控制台顶部的菜单来设置多久运行管理控制台更新本身的SWF。选择范围从一秒到一分钟,你甚至可以暂停服务器的刷新率。然而,你不能这样做,是进入自己的价值。如果你要强制刷新,或者如果你只是不耐烦,在右上角点击“刷新”链接。点击“注销”链接会将您注销了依法治校控制台和叶悄悄地在后台运行的服务器。

注意整个控制台顶部的三个按钮。目前选定的之一,查看应用程序,显示的柔性制造系统,目前正在与相关的应用程序。这些“应用程序”,实际上是被称为“实例”(我们在第2部分讨论的实例),但如果你点击在左下角的新实例“按钮,会出现的应用程序/实例的列表,允许你选择加载一个简单的它。现在,让我们举行。相反,单击“管理用户”按钮。

点击“管理用户”按钮,显示如图18所示的屏幕。它允许你添加用户,删除用户,甚至改变您的密码或他们的密码。为什么你想添加的用户,如果这是一个本地安装?您可在您的工作组或也许这实际上是位于服务器上的安装的其他共享这台计算机。只要记住,开发服务器可以在任何一个时间只有10个并发连接,所以这真的仅仅是一个测试服务器。

技术分享

 

图18。使用这一领域的管理控制台来管理用户和重置密码

要更改密码,选择一个用户名,点击“重置密码”按钮,打开重置密码对话框(见图19)。两次输入新密码,并点击“重设密码”按钮,以使更改。如果你改变主意,请单击“取消”关闭对话框。

技术分享

 

图19。输入新的密码重置

点击“管理服务器”按钮,打开“管理服务器”面板(见图20)。这个区域可以让你看到幕后发生了什么。“详细信息”选项卡图形显示任何应用程序可能会被打,以及其带宽和CPU使用率的表现。“连接”选项卡上显示多少客户的主权财富基金和其他服务器的连接,并传达一些有关服务器的性能和状态的信息。“应用程序”选项卡列出了许多应用程序正在运行,其性能。因为你使用的是开发版本,“许可证”选项卡中的信息是无关紧要的。即便如此,在面板的底部有一个链接,您可以单击“升级到Flash Media交互式服务器。“服务器日志”选项卡显示最近的服务器活动日志。如果你想清除它在任何时候,单击“清除日志”按钮。

技术分享

 

图20。点击管理服务器面板的标签

此面板包括一个重要的功能:“localhost”的验证,实际上是服务器 这里是如何。在左侧边栏的“AB”与“服务器”面板的顶部中间的按钮,单击“编辑服务器日志信息。点击它后,服务器上的信息显示(见图21)。在“服务器”字段中, 输入 localhost 。如果你想改变你的用户名和密码,这是区域管理控制台做。你输入“localhost”的原因是因为你设置的RTMP地址用于测试您的应用程序。进行任何必要的更改,然后单击“保存”按钮。

技术分享

 

图21。输入在服务器领域的localhost

在这个阶段的比赛,你是好去。退出浏览器的管理控制台关闭。

 

 

Flash Media Server 4.5(fms4.5)教程二:RTMP流媒体视频点播
 

这是有益设想,建立一个客户-服务器架构上的Flash Media Server 4.5:一个SWF文件是在客户端和FMS服务器。然而,你必须重新审视自己的工作流程略。而不是放在一个文件夹在您的网页上您的视频文件服务器熟悉的渐进式下载的模型,你把一个文件夹中的在FMS服务器上的影片。此文件夹被称为“应用程序”,在媒体文件所在的文件夹被称为“实例。” 该文件夹的路径看起来像这样:RTMP :/ /服务器/应用/实例

在本教程后,你会??学到更多的RTMP路径。它起初是有点棘手,但一旦你调整你的工作流程和学习的基本概念与Flash Media Server流媒体内容变得更加容易部署。

等式的其他部分涉及基本掌握了服务器端的ActionScript开始开发应用程序。在ActionScript可以从一个单一的代码行数百行不等,这取决于项目的复杂性。

这最新一轮的FMS标志着与以前的标准实践的重要突破。如果你喜欢写几百行代码,那么你就崇拜Flash媒体互动服务器4.5。如果你的目标很简单,让您的视频和运行,然后Flash媒体流服务器4.5和VOD服务为您量身订做。

设立样本项目

在本节中,你会开始配置一切准备样品项目。按照以下步骤开始:

  1. 要求“一节中提供本教程下载的示例文件。解压缩归档文件,并练习文件夹内,打开01VOD_Samples文件夹。
  2. 导航到C:程序文件 Adob??e Flash Media Server的4.5的应用。找到一个名为VOD的子文件夹并打开它。
  3. 复制三个文件下载01_VOD_Samples到媒体的子文件夹的文件夹,如图1所示。
  4. 关闭打开的窗口。

技术分享

图1。将媒体文件夹中的三个样本的视频文件。

Flash Media Server的4.5包括对需求的视频流的能力,这也解释了文件夹的名称:VOD。VOD服务,让您流,而无需编写任何应用程序代码或配置服务器通过服务器的视频和音频文件。你可以简单地指出在此文件夹中的Flash FLVPlayback组件或Flash视频对象到一个文件,该文件将发挥只要它是一个MP4,F4V,FLV或MP3文件。

创建一个流媒体视频点播应用

影片放置在合适的位置后,您将学习如何发挥他们在本地使用的流媒体服务器上的视频点播服务。遵循以下步骤:

  1. 启动Flash Professional和选择文件>新建> Flash文件(ActionScript 3.0),以创建一个新的文档。打开“组件”面板中拖动FLVPlayback组件从组件面板的阶段。
  2. 保存FLA文件可以保存在任何文件夹,你喜欢它。
  3. 在舞台上点击一次选择FLVPlayback组件。打开参数面板或组件检查器(CS4中),并输入以下设置:
  • align: center
  • autoPlay: Selected
  • cuePoints: None
  • isLive: Deselected
  • preview: None
  • scaleMode: maintainAspectRatio
  • skin: SkinUnderAllNoFullNoCaption.swf
  • skinAuthoHide: Deselected
  • skinBackgroundAlpha: 1.00
  • skinBackgroundColor: #009933
  1. 点击“编辑”按钮(铅笔图标)推出的内容路径“对话框源选项旁边。在该领域进入以下路径:rtmp://localhost/vod/Legend(见图2)。

上面显示的路径指向FLV文件和前面提到的rtmp://server/Application/Instancesyntax如下。在这种情况下,服务器是localhost ,应用程序是VOD的实例是Legend.flv的媒体文件夹中。

技术分享

图2。输入使用RTMP地址的视频的路径。

你可能已经注意到,明显缺乏。FLV扩展后的文件名的路径。FMS的不需要的文件扩展名时播放FLV文件。同样重要的是要注意流使用FLVPlayback组件时,你不应该单击“浏览”按钮和导航定位视频。浏览选择视频文件失败的整个目的使用的FMS,因为由此产生的路径,将其视为一个渐进式下载视频。

注意:您学习了如何设置FMS服务器为localhost 第1部分。

  1. 保存并测试你的影片。如果所有的文件都是在正确的位置,在视频开始播放(见图3)。

技术分享

图3。测试影片,观看的视频播放。

流的MP4文件

的Flash Media Server 4.5的FLV文件格式比其他工作。它还流的MPEG-4(MP4),F4V文件vod文件夹。如果您决定使用这两种格式,内容的路径会有所不同。让我们每一个流:

  1. 创建一个新的Flash ActionScript 3.0中的文件,并设置舞台大小为720×520像素。这个阶段的规模将容纳两个物理尺寸的视频和FLVPlayback组件的皮肤。
  2. 保存FLA文件可以保存在任何文件夹,你喜欢它。
  3. 打开“组件”面板,拖动FLVPlayback组件副本到舞台上。打开属性检查器,并设置其X和Y位置为0。
  4. 虽然被选中FLVPlayback组件,点击旁边的箭头图标元件的参数属性检查器的面积扩大。不用担心设置。重要的选项,把重点放在源参数。
  5. 点击“编辑”按钮(铅笔图标)旁边的“源”选项打开的内容路径“对话框。在该领域进入以下路径:rtmp://localhost/vod/mp4:CableCar.mp4 (见图4)。

技术分享

图4。输入的MP4文件的路径。
  1. 单击确定以关闭“内容路径”对话框。在舞台上的FLVPlayback组件实例的增长,以适应视频文件的物理尺寸。使用选择工具组件移动到的位置。
  2. 测试影片。

正如你可能已经注意到,事情有点不同工作流的MP4文件时。如图4所示,文件路径是:

rtmp://localhost/vod/mp4:CableCar.mp4

不同的是FLV文件,这一点很重要,包括文件扩展名(MP4)。告诉FMS的文件类型是什么流,简称4.5在FMS流的前缀(MP4)。这个文件的扩展要求,是真正使用其他格式的H.264/AAC标准,如F4V文件,你会流在下一节。

F4V流媒体文件

当Flash Player 9,0,115,0发布,Adobe公司还推出了F4V文件格式。一些Flash开发划伤了他们的头,不知道为什么它是必要的。简单来说,F4V文件格式包装,如在前面的练习中使用的MP4文件,H.264视频。你能想到的F4V文件为FLV文件类似,但增加了支持的H.264/AAC内容。F4V文件只能通过一个SWF文件播放之间的F4V格式和MP4格式的主要区别是,他们通常有宽高比为16:9,如果需要,可以提示点嵌入到F4V文件使用Adobe Media编码器CS5.5。

要了解更多有关Flash视频文件格式规范,请阅读Adobe的Flash视频文件格式规范10.1版本,以获得全面深入到F4V文件格式。

流F4V文件,请按照下列步骤:

  1. 创建一个新的Flash ActionScript 3.0中的文件和设置舞台大小为720×445像素。这个阶段的规模将容纳两个物理尺寸的视频和FLVPlayback组件的皮肤。
  2. 保存FLA文件可以保存在任何文件夹,你喜欢它。
  3. 打开“组件”面板,拖动FLVPlayback组件副本到舞台上。打开属性检查器,并设置其X和Y位置为0。
  4. 虽然被选中FLVPlayback组件,点击旁边的箭头图标元件的参数属性检查器的面积扩大。不用担心设置。重要的选项,把重点放在源参数。
  5. 点击“编辑”按钮(铅笔图标)打开的内容路径“对话框源选项旁边。输入路径:在以下领域的RTMP :/ / localhost/vod/mp4的:SandRiver.f4v(见图5)。

使用ActionScript视频流文件

如果你以前开发Flash项目中,有大小的限制,你可能已经避免使用FLVPlayback组件,因为它增加了52 KB发布的SWF文件。大小事务时,你可以使用一个视频对象,而不是从Flash图书馆。

在本教程中,你会跳过使用FLVPlayback组件和饲料从文件夹到一个视频对象在舞台上的VOD视频。遵循以下步骤:

  1. 打开位于文件夹中的示例文件02_AS3。复制Vultures.mp4 vod文件夹的文件。
  2. 双击MP4_StreamVOD.fla文件示例文件在Flash Professional中打开它。
  3. 当文件打开时,你会发现该接口已创建。
  4. 视频对象,实例名称“MyVideo网站,坐落在视频层。所有仍然完成的应用程序添加ActionScript 3.0代码。选择在行动层的第1帧,按F9键打开“动作”面板。

注意:您使用的视频对象应匹配的尺寸和/或您正在播放的FLV或MP4文件的长宽比。视频对象在舞台上的默认大小为160×120像素。这是宽高比为4:3,这个比例与FLV文件使用的作品。如果您正在使用的高清内容,使用共同的宽高比为16:9,未能调整到正确的宽高比或视频尺寸将导致扭曲的视频显示在视频对象时,它的视频对象。

  1. 点击一次在“脚本”窗格中输入以下代码:
var streamClient = new Object();  
var nc: NetConnection = new NetConnection();  
var ns:NetStream;    
streamClient.onBWDone = onBWDone;  

该代码首先通过声明一个变量为streamClient对象FMS使用管理带宽。带宽检测所谓的本地带宽检测,建成的FMS。这是一个最好的做法,包括在ActionScript代码的小函数调用功能内置到服务器的带宽。接下来的两个变量被分配到NetConnection和NetStream类将用于准备播放视频。

最后一行告诉FMS的做什么,同时进行带宽检测。

随着地方的变量,下一步涉及到服务器的连接。

  1. 按Return / Enter键两次,输入以下代码:
nc.client = streamClient; 
nc.connect("rtmp://localhost/vod");  
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);  

闪光,一个客户对象已经创建,这个对象将被检查的带宽流入客户端的代码警报。传达这一重要信息后,下一行代码告诉Flash正在取得连接。最后一行提示Flash来听的连接和显示其通过名为netStatusHandler功能地位。

  1. 按Return / Enter键两次,下面的代码添加到脚本:
function netStatusHandler(event:NetStatusEvent):void
{  	
switch (event.info.code)  	
{  	
case "NetConnection.Connect.Success" :  	
trace("Stream Found");  	
beginStream();  	
break;  	
case "NetStream.Play.StreamNotFound" :  	
trace("Stream not found: " );  	
break;  	
}  
}  

netStatusHandler监听FMS和SWF文件之间的调用。它监听的具体谈话告诉FMS的SWF文件的NetConnection已成功地连接到FMS的。下一行跟踪(“流”) ,证实了在Flash Professional中的“输出”面板中显示的消息(参见图6)。如果在NetConnection发现流,下一行告诉Flash,开始播放视频。其余的代码是相当明显的:显示在“输出”窗口中的错误信息,如果没有发现流和等待。

技术分享

图6。跟踪消息将显示在“输出”面板。
  1. 按Return / Enter键并输入其余的代码:
function onBWDone():void {}

当您查看上面的代码,你可能会奇怪,为什么内流而不是自身的功能。前面的代码块就是答案。确认后,有一个成功的连接到Flash Media Server的视频只能播放。

第一线在beginStream手柄重视的NetStream,NetConnection和接下来的两行创建的NetStream客户端和视频播放前两秒钟的视频添加到缓冲区。下一行包括使用ActionScript通常播放的方法,但重要的是要注意,你需要包括媒体类型,MP4(包括结肠)在字符串。因为您正在使用的FMS 4.5,你并不需要添加文件扩展名视频的名字,但它是一个最佳实践,包括它。

不过,在这个例子中,你使用的是两个版本的MP4和F4V文件格式的视频文件。如果你不添加扩展,它可能会导致错误的视频播放。最后一行的beginStream处理的NetStream视频对象的实例MyVideo网站在舞台上。

注:如果你使用的FLV文件,而不是发挥字符串将是Vultures。记住,你不流FLV文件时,需要添加的媒体类型。

代码的最后线只是初始化的onBWDone的的处理程序。

  1. 保存FLA文件和测试影片。你会发现有轻微的延迟两秒钟的视频添加到缓冲区。当它完成缓冲,您可以观看视频,设有婴儿土耳其秃鹰巢(见图7)。

技术分享

图7。观看视频播放,并检查了婴儿秃鹰巢。

流媒体视频直播服务器上时的注意事项

在本节中,你将学到的技巧和策略,当一个真正的,活的Flash Media Server 4.5的服务器上的内容流。

主要区别涉及更改FLVPlayback组件或的参数nc.connect();在ActionScript中的参数。您需要更换的本地主机 与您的Flash媒体服务器托管服务提供商提供的RTMP地址。当然,你还需要托管服务提供商的服务器,但改变地址和上传媒体以外的视频文件上传到您的帐户,你真的不需要做的远不止于此。

注:请记住,Flash Media Server的托管服务提供商具有独特的要求。要了解更多信息,请阅读使用Flash Media Server的托管服务提供商通过Influxis 的消费指南。供应商使用RTMP地址和工作流程上的不同,可能会有点不同,所以它始终是最好检查你开始与您的托管服务提供商。

创建视频流应用程序

在这一点上,你已经允许的FMS 4.5自动送入从VOD文件夹到FLVPlayback组件或在舞台上的视频对象的视频流。有可能会vod文件夹的时候比资产更是一个障碍,但是。此外,VOD文件夹的Flash Media流媒体服务器的功能。如果您正在使用Flash Media交互式的服务器,你需要创建一个应用程序,从该服务器中。

其实,这是不是非常神秘的使用,但如果你是新来的FMS 4.5,它可以是有点混乱。第一个区别是你的发布点是不是一个vod文件夹,这是您的应用程序文件夹。被放置在此文件夹的FMS 4.5的应用程序文件夹,但你的名字。

下一个大的区别在于使用的一个实例。这有什么做用ActionScript。一个实例是一个具体的文件夹名为的_definst_你必须建立并必须包含视频或音频文件。

注意:文件夹名称的_definst_是“默认实例”,是一个共同的最佳做法在FMS社区。Flash媒体服务器总是会_definst_文件夹的路径中不存在的netconnection() URL。

此外,还有通常是在应用程序文件夹,其中包含一些相对简单的服务器端代码的ASC文件。在本节中,你看看这是如何工作的:

  1. 在示例文件中,找到一个文件夹,名为03_ VideoApplication并打开它。它包含名为BabyVultures的文件夹。这是你将要使用的应用程序。
  2. 打开BabyVultures文件夹中找到一个文件夹命名流和名为main.asc文件。该文件通常命名为main.asc,因为它包含了服务器端的代码,使应用程序的工作,并可以在多个应用程序使用(见图8)。

技术分享

图8。查看FMS中的应用程序中使用基本的文件夹结构。

可以创建在Flash Professional中的ASC文件,选择“文件>新建,在新建文档对话框中选择的ActionScript通讯文件”选项(参见图9)。另外,您也可以使用Adobe Dreamweaver中CS5.5或文本编辑器编写代码。当你完成后,保存与。ASC延伸的文件。

技术分享

图9。使用新的文件对话框创建一个ActionScript通信文件。

注:感谢我们的同事莉萨拉森-凯利使用这个main.asc文件。

  1. 打开main.asc文件,看看服务器端的代码:

上面的代码表示,当客户端连接,在FMS 4.5服务器接受从SWF文件中的连接。这是一个非常简单的例子,一个main.asc文件。当你开始移动到共享对象的境界,并使用自定义组件,这个代码可以变得非常复杂和运行数百行。

  1. 关闭ASC Flash文档,并打开流文件夹,找到_definst_文件夹。这是在那里你将媒体。对于这个例子,如果你打开??_definst_文件夹,你会发现的Vultures.mp4文件的副本。

注:如果你想创建一个简单的流没有服务器端代码,它不再是要创建一个ASC文件。刚刚创建的应用程序,并复制到位于的_definst_流“文件夹中的文件夹,视频文件。

现在你知道如何在应用程序的结构,它的时间把你的新知识,使用和流视频:

  1. 打开应用程序文件夹(C:程序文件 Adob??e Flash Media Server的4.5的应用)和应用程序文件夹复制的BabyVultures从03_VideoApplication文件夹文件夹。你刚才创建的名为BabyVultures的应用程序,其路径是C:程序文件 Adob??e Flash Media Server中的4.5 应用程序 BabyVultures。现在唯一的任务依然是挂钩的应用程序。
  2. 双击在03_VideoApplication文件夹的MP4_StreamApp.fla文件,打开它在Flash Professional CS5.5。如果您正在使用Flash Professional CS5中或Flash Professional CS4的工作,你会发现在Flash_Older文件夹中的文件的相应版本。
  3. 选择的行动层的第1帧,打开动作面板。
  4. 在“动作”面板,在“脚本”窗格中单击一次。删除2号线的意见,并在第11行到改变的参数:
nc.connect("rtmp://localhost/BabyVultures");

前面的例子相比最大的区别是的NetConnection字符串。已从vod文件夹,你在这个系列中的所有例子,BabyVultures,这是应用程序的发布点。

注:如果你想添加到这个文件的安全或数字版权管理(DRM)的程度,改变RTMP RTMPE自动加密流。

如果您保存FLA文件和测试在这一点上的Flash电影,视频播放(见图10)。

技术分享

图10。更新在第11行的代码和测试影片看到应用程序运行。

关于Flash Media Server的伟大的事情是,它位于文件播放。连接时,它会自动搜索一个流“文件夹中。当它找到的文件夹,它承认发现,在视频ns.play()方法是_definst_文件夹中的文件。FMS立即识别该文件夹中,找到了视频,流媒体。

重要的是要记住,你在这里使用的是一个文件夹名为_ definst _ 如果您重命名该文件夹中,其他一些名称,如“媒体”,代码将不会工作,FMS将呈现一个错误,表明它无法找到流。


 

 

Flash Media Server 4.5(fms4.5)教程三:RTMP流媒体直播
 

介绍Flash媒体实时编码器

然后每一个现在的软件惊人的一块打街。不可避免的是,该公司将在公开测试版,你不能不认为,在一些点的过程中,“党,这是甜蜜的,我真的希望我能负担得起。” 汤姆有这样的反应,当他第一次尝试了Flash媒体直播编码器(FMLE)。如果知道真相,他仍然有一个很难掌握的事实,这一块功能强大的软件是免费的。(这也同时适用于Mac OS和Windows。)

其目的是相当集中:抢到了视频或音频饲料,要么对其进行编码,对飞,一个常见的视频文件或流了现场。在这部分的练习中,我们将通过Flash媒体,你住的编码器接口,并用它来 ??创建一个FLV/F4V文件。请记住,这将是“驾车”演习;我们不会进入使用FMLE螺母和螺栓。已经写在他的文章中,我们的同事格雷格·哈默,这个过程真的很好的概述,网上广播实时视频与Flash Media实时编码器。

注:我们将要使用的Mac OS版本的Flash Media,居住在本教程的第一部分编码器3.2,使您的Mac用户可以跟随。如果你有电脑,有没有技术差异。要知道,这篇文章的最后部分显示你如何流从FMLE的活饲料通过当地的Flash Media Server 4.5安装在您的PC将是显而易见的原因基于Windows。

设置Flash媒体实时编码器

在Flash Media的初始配置实时编码器,请按照下列步骤:

  1. 确保你有一个摄像头连接到电脑(麦克风是可选的),然后启动Flash媒体实时编码器3.2。Mac上的应用程序安装在应用程序/ Adob??e /闪光的媒体实时编码器3.2。在PC上,您可以快速启动应用程序,从开始>所有程序>的Adobe Flash媒体实时编码器3.2,当它打开(见图1),你会看到界面基本上分为两个不同的领域分为:左边的输入和输出上的权利。如果你不想拆分输入和输出视图,取消选择输出视频选项。这一切都删除右边的预览。它的最终文件没有任何影响。
技术分享
图1。Flash媒体直播编码器接口(点击放大)

输入区域进一步细分为单独的视频和音频领域,在那里你可以调整设置捕捉前或播放。如果你不确定要使用的设置,选择预设的弹出菜单中的许多预设之一。尽管如此,它不会伤害尝试这种应用,让我们创建一个简单的捕捉。

  1. 从设备弹出菜单中选择您的摄像头。我们采用与MacBook Pro的内置iSight摄像头,内置iSight摄像头,这也解释了选择。我们有多个摄像头连接到我们的电脑,例如,我们将能够选择我们的iSight或罗技摄像头插入到我们的USB集线器(见图2)。

技术分享

图2。连接到您的计算机上的摄像机

注:您可以使用各种摄像头,甚至数字视频录像机捕获视频。为Adobe已经专门为这个软件的使用测试设备的清单,请访问Flash媒体实时编码器设备的兼容性矩阵。正如你可以看到,列表是相当全面,甚至包括音频捕获设备。尽管如此,清单是没有办法明确,它只是列出了由Adobe迄今为止测试设备。

  1. 在“格式”弹出式菜单中,选择VP6的。这是我们将使用压缩生成的FLV文件的编解码器。另一个选择是H.264编解码器,用于创建一个F4V。如果你有DV摄像机连接到FMLE,注意生成的文件将无法预期的QuickTime文件。这将是一个F4V文件,这是有点相当于一个MP4文件容器格式。F4V和MP4文件都使用H.264编解码器。
  2. 选择每秒30帧的帧速率和输入640大小,接下来的两个弹出菜单×480。因为我们运行这个本地,帧速率是不一个问题,FLV输出输入大小保持在4:3宽高比。小心取消选择保持长宽比。如果你创建一个文件,不落入宽高比为4:3,机会是非常好的,与文物被介绍到流的视频会被扭曲。
  3. 选择650比特率和改变输出的大小值来匹配输入大小值从上一步。正如你可能已经注意到,有一些上市的其他码率。这是正在为多个设备,能够运行在不同的比特率流编码时使用实时流。我们谈论这个更深入的“第6部分:使用HTTP动态流。”
  4. 如果您使用外接麦克风,如汤姆使用罗德播客,选择弹出菜单的音频设备。
  5. 设置音频格式为MP3,这是传统上的FLV文件使用的编解码器。
  6. 从采样率弹出菜单中选择22050千赫和48 kbps的比特率设置。
  7. 使用音量滑杆来调整麦克风的音量。

在窗口的底部,你会看到总的比特率,这是音频和视频的比特率的总和。这是一个重要的数字,因为它有一个直接影响用户体验。如果你不确定使用什么号码,头部到罗伯特·莱因哈特的 Flash 视频比特率计算器。

在Flash Media创建的FLV实时编码器

经处理的FLV设置,您可以将注意力转移到实际创建的FLV文件:

  1. 在输出方面,取消到Flash Media Server流。你不需要这样,因为这个捕获不会现场直播。我们将简单地挥舞着相机捕捉了你的短片。
  2. 点击“浏览”按钮,打开“另存为”对话框。导航到你的运动 文件夹,命名的的文件FirstTest,并单击“保存”。
  3. 要开始录制和创建的FLV文件,点击绿色的“开始”按钮。当你点击这个按钮,界面切换显示你的日志,它会通知您,录像过程中已经开始(见图3)。当你看到你的视频预览,开始在世界招手。
技术分享
图3。正在录制的摄像头轧制和行动(点击放大)
  1. 要完成录制,点击红色的停止按钮。您将返回的FLME接口。
  2. 如果你愿意,觉得自由退出FLME。

在Flash Professional中播放的FLV

现在你已经创建了一个FLV文件,这是玩的时间:

  1. 启动Flash专业CS5.5,并创建一个新的ActionScript 3文件。
  2. 设置舞台尺寸为640×520相匹配的FLV刚刚创建的尺寸和离开房间为FLVPlayback皮肤。将此文件保存到你的运动夹。
  3. 将FLVPlayback组件的副本拖曳到舞台上,并设置其尺寸为640×480。与组件选中,单击“参数”选项卡,在小组。
  4. 双击皮肤参数和选择SkinUnAllNoFullNoCaption.swf。单击确定。
  5. 点击源参数,并单击“浏览”按钮导航到您创建的FLV文件。
  6. 保存并测试文件。如图4所示,您的摄像头或其他设备已经从一个有趣的,好玩的工具真正实用的和重要的东西。

技术分享

图4。播放视频捕捉

创建一个现场直播

现在你知道如何创建一个FLV文件使用Flash Media实时编码器,它把知识工作和创建一个现场直播的时间。,而不是进入Flash Professional和大量的代码,我们将使用视频技术是,这篇文章的目的,简单易用。该技术是打开源媒体框架(OSMF的),我们将得到更深入的“第5部分:OSMF的球员流”

让我们去现场的OSMF:

  1. 打开Adobe即时Media编码器3.2和图5中使用的输入区域设置:
  • 设备:摄像头连接到电脑
  • 格式:VP6编码
  • 帧速率:30
  • 输入尺寸:640×480保持长宽比:选择
  • 比特率:650
  • 输出尺寸:640×480
  • 音频:取消。我们更关心的视频比音频。如果你想要一个音频流,一定要匹配的音频编解码器视频编解码器。如果你不确定的音频和视频编解码器组合效果最好的FMS 4.5,您可能会想要去这里。
  1. 在“输出”区域,选择“Flash Media Server和取消选择”保存到文件流。

技术分享

图5。输入设置

当你做出这个选择,你会看到一个FMS URL(RTMP :/ /本地主机/现场/),并在流区,将出现一个名为流livestream。这两个小比特的信息(见图6)是重要的,他们写的路径(RTMP :/ /本地主机/现场/ livestream),因为你会需要它,当你创建OSMF的活饲料。

技术分享

图6。Flash Media Server中创建一个实时流

你可能会在这条道路和疑惑,“是什么意思?” 这是一个很好的问题。在第2部分:视频点播流,你创建了一个视频点播的应用程序使用的FMS 4.5,需要在Flash Media Server运行。如果你打开Flash媒体服务器上的基于Windows的计算机4.5/applications,你会看到一个文件夹命名为“活”。你可以假设从这个Flash媒体直播编码器的URL发送数据流直接在服务器上此文件夹。每个流都需要一个唯一的实例名称,这是流面积的目的。

在这点在这个过程中,你需要不退出程序,远离FLME的,开放的Flash媒体播放。您将使用的配置,只需要一个比特的信息和任何FMS的应用现场或以其他方式测试是一个伟大的方式。

要使用的配置,请按照下列步骤:

  1. 打开浏览器,并指出它http://www.osmf.org/configurator/fmp/
  2. 当配置打开(见图7),点击一次视频源区,并进入RTMP :/ /本地主机/实时/ livestream的
  3. 更改宽度为640,高度为480,以配合您在Flash Media设置实时编码器的物理尺寸。下一步就是到Flash Media Server 4.5和喂流,得到它的配置玩。
技术分享
图7。OSMF的配置是简单的使用(点击放大)
  1. 不要关闭浏览器。打开Flash媒体实时编码器,并点击界面底部的绿色开始按钮。你将看到一个编码日志。
  2. 切换回您的浏览器,点击“播放”按钮,在配置的预览播放??器。会有延迟缓冲区填满,但你会看到自己的广播从您的计算机生活(见汤姆做图8)。
  3. 要关闭流,返回到Flash Media实时编码器,然后按一下红色的Stop按钮。

技术分享

图8:现场,从我的电脑,它… 我!

在预览的底部嵌入代码是很整洁。你可以简单地复制并粘贴到网页代码,你甚至不需要使用Flash运行实时视频流从您的网站。要知道,这是一个测试,并取得最好的结果是使用一个全功能的Flash Media Server的。


 

 

Flash Media Server 4.5 (fms4.5)教程四:RTMP流式音频
发布时间:2013-01-20 浏览次数:108

在这一系列教程的前面几部分内容中,我们只是介绍了视频流文件的处理。但是,也有很多时候,我们想在Flash Media Server中导入音频文件。关于音频和Flash Media Server 4.5,我们首先应该知道,这和使用ActionScript 3处理本地音频文件完全不同。在ActionScript中,我们可以使用许多Sound选项来处理音频文件。但是在FMS4.5中,这些选项所起的作用就微乎其微了。原因很简单:文件被加入到了音频流中,就其本身而言,由于需要使用完全不同的传输方法,ActionScript 3中的attachAudio()方法从各方面来说,都不起作用了。

Flash Media Server 4.5可以转化多种不同的音频格式为音频流:SPEEX、G.711、Nellymoser、MP3以及AAC等。同时还可以转化部分为Flash所支持的AAC格式的文件,如AAC+、HE-AAC、AAC v1以及AAC v2等。这是好的一方面。坏的一方面是,AAC格式文件只能在Adobe Flash Player 9.0.115.0及其以上版本中播放。正是由于2007年下半年Flash Player 更新的发布与H.264标准的重新启用的共同作用,才使得上述需求得以实现。但是,你所遇到的最通常的音频格式是MP3和AAC。要对AAC格式有一个宏观上的了解,可以参阅Fabio Sonnati的这篇博文:AAC是如何工作的。

既然你已经知道了你可以使用什么,现在我们就教你如何在实际操作中使用它。

音频文件的讯息流转化

在这个例子中,我们要向你展示如何通过Flash Media Server 4.5播放音频文件。这其实和流式视频没有太大的差别。

现在开始:

  1. 下载这篇教程所需文件并解压缩。
  2. 创建一个音频文件的应用程序。尽管我们的第二部分:流媒体视频点播中的内容已经涵盖了这一步操作,但我们要了解,流式音频应用程序文件夹结构与流式视频应用程序文件夹结构有着完全相同的创建方法,这对我们而言是非常重要的。在那个文件夹里创建一个名为streams的文件夹,并在streams文件夹中创建一个名为_definst_的文件夹。在这种情况下,需要被转化为流式的音频文件就存放在这个_definst_文件夹里。
  3. 在C:Program FilesAdobeFlash Media Server 4.5applications目录下创建一个名为AudioStreams的新文件夹,打开AudioStreams文件夹,在其中创建名为streams的新文件夹。在这个新文件夹中创建一个名为_definst_的新文件夹,并把Exercise中的4个音频文件复制到这个_definst_文件夹中。注意:作者在这里要感谢加拿大多伦多市的汉博公立理工学院(Humber Institute of Advanced Learning and Technology)中传媒研究和信息技术学院(School of Media Studies and Information Technology )的院长William Hanna,感谢他允许我们使用由Humber学院无线电广播(Radio Broadcast)项目的学生制作的AndreHprofile.mp3片段。
  4. 打开SimpleAudio.FLA文件。当这个文件被打开之后,你就会看到,我们在时间轴上添加了层(如图1所示)。这些层包含了界面和代码的动作层,这里的界面就是一个显示在服务器和SWF文件之间发生了什么的文本框。

技术分享

图1. 包含了显示在服务器和SWF文件之间发生了什么的文本框的界面
  1. 点击ActionScript 层中的Frame 1,打开动作面板。
  2. 动作面板打开后,点击Script窗格的Line 1,输入下面的代码:
  import flash.net.NetConnection;  
import flash.net.NetStream;  
import flash.events.NetStatusEvent;    
var nc:NetConnection = new NetConnection();  
var ns:NetStream;  

当处理点播视频时,在音频播放之前,你需要创建一个NetConnection对象,并对其命名:在这种情况下命名为ns。在内务信息移开的情况下,你可以把注意力转移到连接到服务器和侦听服务器与Flash之间信息上来。

注意:在Adobe Flash Professional前面的几个版本中,当你对一个变量分级时,这个分级的输入语句是被加在Script窗格的顶端的。这是一个很好的特点,因为这是输入分级的一个常见的最佳做法。问题是,这在Flash中有点前后矛盾。这些语句只在有些情况下被添加了。意识到这一点之后,在Flash社区中,不依赖于这一特点,只在必要的时候手动添加输入语句已经成为了一个规矩。

在这个例子中,你将会用到一个常用的处理器(netStatusHandler)来侦听四种特殊信息的连接和流动:连接成功,连接被拒,音频流开始播放,未找到音频流。下面是如何实现:

  1. 击两次回车,添加如下代码:
  nc.connect("rtmp://localhost/AudioStreams");  
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);    
function netStatusHandler(e:NetStatusEvent):void {     
traceField.text = e.info.code + "n" + traceField.text;     
trace(e.info.code);     
switch(e.info.code){        
case "NetConnection.Connect.Success":        
beginStream();        
break;        
case "NetConnection.Connect.Rejected":        
break;        
case "NetStream.Play.Start":        
break;        
case "NetStream.Play.StreamNotFound":        
trace("Can‘t find the stream.");        
break;     
}  
}  

我们会向你简单介绍一下这个功能。它的目的是捕获四个特殊的NetStatusEvent事件并对其作出反应:连接成功,连接被拒,音频流开始播放,未找到音频流。当你测试一个项目时,如果这些事件发生,就会在层2中的文本框中显示出详细的音频流的活动记录。

显然,如果有连接的存在——NetConnection.Connect.Success——音频文件就会开始播放(在这个例子中,通过调用beginStream()功能)。如果没有连接的存在——NetConnection.Connect.Rejected——核实你的FMS 4.5副本确实在运行,确认你的应用程序代码的拼写与应用程序文件夹相匹配。

接下来就是要核实音频流正在播放。NetStream.Play.Start就是对此进行确认的信息。最后要核实的信息——NetStream.Play.StreamNotFound——是可以自我说明的,通常可以通过确认你的文件夹结构以及音频文件路径是正确的来确认。

  1. 击两次回车,添加启动音频播放的代码:
  /* this function will handle creation of the NetStream object.  
we invoke NetStream.play() to begin streaming. */
function beginStream():void {     
ns = new NetStream(nc);     
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);     
ns.play("mp3:AndreHprofile");  
}  

正如你所看到的那样,其神奇之处就在于netStatusHandler()函数的调用。第一步是在音频流中加入NetConnection,然后侦听服务器与SWF应用程序间的讯息流水平的信息。一切准备就绪之后,NetStream级的play()程序就会寻找名为AndreHProfile的MP3文件,并把它添加到音频流中。

  1. 保存并测试动画。

音频流控制

在前面的练习中,我们向你演示了如何创建一个音频文件流式转化的应用程序以及如何使其播放。如果我们的介绍到此结束,你可能就要开始抱怨。在一点也没有使用户避开讨厌的东西的情况下,这并不是播放音频文件的最佳做法。在下面的练习中,我们不仅要教会用户停止放音,还会向你演示如何显示时间以及如何暂停循迹。

现在开始:

  1. 打开你的Exercise文件夹中的ControlAudio.fla文件。文件被打开之后(如图2所示),你会看到,我们添加了层,并在Controls层中添加了几个源于Flash的按钮。如果你打开Properties面板,你也会注意到,我们给了每个按钮一个实体名。

技术分享

图2. 使用了源于Flsh公用图库按钮控制放音的项目
  1. 点击Actions层的Frame 1打开Actions面板。打开之后,在Script窗格中输入下面的代码:
import flash.net.NetConnection;  
import flash.net.NetStream;  
import flash.events.NetStatusEvent;  
import flash.events.Event;  
import flash.events.MouseEvent;    
var isPlaying:Boolean = false;  
var nc: NetConnection = new NetConnection();  
var ns:NetStream;    
addEventListener(Event.ENTER_FRAME, monitorTime);    
nc.connect("rtmp://localhost/AudioStream");  
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);    
function netStatusHandler(e:NetStatusEvent):void {     
traceField.text = e.info.code + "n" + traceField.text;     
trace(e.info.code);     
switch(e.info.code){        
case "NetConnection.Connect.Success":        
beginStream();        
break;        
case "NetConnection.Connect.Rejected":        
break;        
case "NetStream.Play.Start":        
break;        
case "NetStream.Play.StreamNotFound":        
trace("Can‘t find the stream");        
break;     
}  
}  

这个代码和前面项目中的代码并没有很大的差别。但是,它有一些重要的添加。首先是isPlaying变量的添加。我们打算在监测音频是否处于播放状态的过程中绑定几个功能。我们也想向用户演示音轨播放时有多少的时间流逝。为了做到这一点,我们创建了一个密切关注事件的监听器。

  1. 击两次回车,输入下面的代码使音频流动起来:
function beginStream():void {     
ns = new NetStream(nc);     
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);     
ns.play("mp3:AndreHprofile");     
ns.pause();     
timeField.text = "ready";  
}  

乍看之下,你可能会觉得这样有点古怪,我们一打开音频流就暂停。我们必须这样,因为在通常情况下,我们一开始播放音频流,无线电波报就会马上从用户的扬声器发出。这不是我们想要的。我们想使用户有机会选择音频流的开关。

  1. 击两次回车,输入下面的为Control层按钮分配功能的代码来开始这个过程
playBtn.addEventListener(MouseEvent.CLICK, playStream);  
pauseBtn.addEventListener(MouseEvent.CLICK, pauseStream);  
stopBtn.addEventListener(MouseEvent.CLICK, stopStream);  
  1. 既然你已经告诉了Flash每一个按钮应该有什么用,是时候开始编写这三个以playStream()开始的函数的代码了。输入下面的代码:
function playStream(e:MouseEvent):void {     
if(!isPlaying){        
ns.resume();        
isPlaying = true;     
}  
}  

Play按钮的逻辑语言是相当有效的。点击按钮时,第一行的代码检测了音频流是否播放(!isPlaying)。如果音频没有播放,只有三种可能的状况:beginNetStream()函数暂停了音频流的播放,用户点击了Pause按钮,或者用户点击了Stop按钮。不管在哪种情况下,音频流被重新开始——音轨开始播放——isPlaying变量的Boolean值被设置为真。

  1. 击两次回车,输入Pause和Stop按钮的函数算法:
function pauseStream(e:MouseEvent):void {     
if(isPlaying){        
isPlaying = false;        
ns.pause();     
}  
}  
function stopStream(e:MouseEvent):void {     
isPlaying = false;     
ns.close();     
timeField.text = "stopped";  
}  

除了在点击Stop按钮时,timeField区域的文字改为”stopped“之外,这里并没有多少新的东西。如果你对数据流媒体的使用不是很熟悉,在使用Sound对象时,你开始、终止或是暂停的并不是音轨本身。你是在告知服务器不再向音频流发送音频数据还是重新向音频流发送音频数据。

  1. 最后需要输入的代码组是Output层的时间显示代码组。击两次回车,然后输入:
  function monitorTime(e:Event):void {     
if(isPlaying){        
timeField.text = Math.round(ns.time) + " seconds...";     
}  
}  

除了在点击Stop按钮时,timeField区域的文字改为”stopped“之外,这里并没有多少新的东西。如果你对数据流媒体的使用不是很熟悉,在使用Sound对象时,你开始、终止或是暂停的并不是音轨本身。你是在告知服务器不再向音频流发送音频数据还是重新向音频流发送音频数据。

多音频文件的播放与控制

这个练习之前的内容都是关于单个音频文件的播放。既然你已经知道了如何去实现它,我们接下来就向你演示如何使用户可以在多音频文件中选择播放。

我们其中一名作者的女婿,Phil Darling,是多伦多市一个相当火爆的”indie”乐队,TinBangs的低音歌手和创始人。这个乐队刚发布了一个包含有三首歌曲的EP唱片,计划把它们以音频流的形式发布出去,让他们的歌迷们听到他们的新作品。

注意:作者在这里要感谢Phil Darling和乐队的其他成员,感谢他们允许我们在这个例子中使用这些文件。

这就意味着要给用户提供可以在这三首歌曲中任意选择的机会。为了实现这一目的,我们选择了使用打包在Flash Professional CS 5.5软件中的List组件。

注意:也可以使用其他的方法来实现这个项目,从使用ComboBox组件到使用XML文件作为DataProvider都可以。由于空间的限制,我们选择了使用List组件。

现在开始:

  1. 打开你的Exercise文件夹里的SelectAudio.fla文件。
  2. 打开文件之后,选择动作层的第一帧,打开Actions面板。
  3. 点击“脚本”面板的第一行,并键入下列代码,以导入下面的7个类:
  import flash.net.NetConnection;  
import flash.net.NetStream;  
import flash.events.NetStatusEvent;  
import flash.events.Event;  
import flash.events.MouseEvent;  
import fl.data.DataProvider;  
import fl.controls.List  

要使用List组件,你需要使用DataProvider级向List组件供给数据,使用controls软件包中的List级使组件运行。

  import flash.net.NetConnection;  
import flash.net.NetStream;  
import flash.events.NetStatusEvent;  
import flash.events.Event;  
import flash.events.MouseEvent;  
import fl.data.DataProvider;  
import fl.controls.List  

要使用List组件,你需要使用DataProvider级向List组件供给数据,使用controls软件包中的List级使组件运行。

  1. 确立分级之后,你现在就可以创建播放列表了。点击Script窗格的Line 6,然后输入:
  var playList:Array = new Array();  
playList.push({label:"White Lies (Timekiller)",data:"WhiteLies(Timekiller)"});  
playList.push({label:"Young Lions", data:"YoungLions"});  
playList.push({label:"Your Sky Is Falling", data:"YourSkyIsFalling"});  
audioList.dataProvider = new DataProvider(playList);  
audioList.addEventListener(Event.CHANGE, switchStream);  

我们通过创建一个名为playList的数组开始。播放列表中的每一个项目都要在List组件中显示出来。这个组件需要两块的信息。第一块是标签,当应用程序运行时在组件中显示的文字信息。第二块是需要使用的数据,在这种情况下指的是音频文件的名字。List组件然后就会被告知,playList会向其提供数据。我们也会听取用户在List ( Event.CHANGE )中做出的选择,在检测到这一点之后,就开始执行switchStream()函数。

  1. 点击Script窗格的line 44,输入下面的代码来编写switchStream()函数:
  function switchStream(e:Event):void {     
ns.play("mp3:" + e.target.selectedItem.data);     
if(!isPlaying){        
ns.pause();     
}  
}  

这里最大的改变是在play()方法上。你直接获取列表项目的数据部分并使用它,而不是输入名字。

  1. 保存并测试文件。正如你所看到(见图3)和听到的,你创建了一个你可以在三个文件中做选择的应用程序。它的圆滑之处在于,把三首歌扩展到30首甚至更多,在算法上并没有很大的

技术分享

图3. 填入了List组件,正在播放Young Lions

这一系列教程的下一部分内容将会向你介绍HTTP动态流转化的过程,并向你演示如何使用Flash Media Server 4.5的多比特率的特性。下一篇教程再见。


 

 

 

Flash Media Server 4.5 (fms4.5)教程五:OSMF播放器流媒体
 

以前,您需要使用FLVPlayback组件通过Flash Media Server 4.5流式传输视频。尽管FLVPlayback组件易于使用,但该组件会创建一个相对较大的SWF文件(大约52KB)。为了减少总文件大小,许多开发人员使用该组件的精减版本来创建特殊的视频播放器,编写自定义ActionScript函数来使他们的播放器更有效地工作。结果,发布了大量份非常复杂或基本的视频播放器——沮丧的开发人员花在尝试使播放器工作上的时间比将精力集中在用户体验上的时间更多。

这一情况在两年前Adobe引入开源媒体框架和Strobe Media Playback组件时就已改变。词语开源表示,您可以访问Flash和ActionScript源文件和并自定义代码来构建您自己的视频播放器。当使用OSMF时,用于视频播放器的SWF文件托管在您自己的HTML服务器上,所以它很容易跟踪和更新。此外,OSMF项目正在开发中,可以确保它得以继续更新以利用Adobe Flash Player中的最新功能。

Strobe Media Playback非常容易使用。您可以通过将嵌入式代码添加到网页中来添加视频内容——通过Flash Media Server 4.5或HTTP流式传输。无需ActionScript编程。

或许只有在媒体流式传输上,Flash Media Server 4.5和Strobe Media Playback的组合才是一种动态的成功组合。下一节将展示这个组合如何工作。

使用Strobe Media Playback组件

当安装Flash Media Server 4.5时,您也会安装一个Strobe播放器。要使用它,请执行以下步骤:

  1. 下载本教程开头提供的示例文件。解压ZIP文件并将Vultures.mp4文件从Video文件夹拖到Flash Media Server 4.5/webroot/vod文件夹。
  2. 导航到Flash Media Server 4.5/samples/videoPlayer并在浏览器中打开videoplayer.html文件。示例视频播放器将会启动,如图1中所示。

技术分享

图1. Flash Media Server 4.5的安装包含一个Strobe Media组件。
  1. 将Stream URL路径更改为rtmp://localhost/vod/mp4:Vultures.mp4。单击Play Stream按钮播放Vultures视频。

执行以下步骤,在网页中通过Strobe Media Player播放该视频:

  1. 向下滚动到Sample Video页面底部。找到Embed Code区域,如图2中所示。
技术分享
图2. 复制嵌入式代码以将播放器添加到一个HTML文档中(单击放大)。
  1. 选择Embed Code字段中的所有代码并将它复制到剪贴板。
  2. 打开Dreamweaver CS5.5或任何其他HTML编辑器。创建一个新HTML文档并将代码粘贴到<body></body>标记之间。
  3. 将文件保存为test.html并退出Dreamweaver(或您使用的HTML编辑器)。

警告:在第4步中,您将文件命名为test.html,而不是index.html,因为Flash Media Server启动屏幕是webroot文件夹中的index.html文件。如果您将一个名为index.html的文件保存到webroot文件夹中,您创建的新文件将覆盖启动屏幕。

  1. 导航到Flash Media Server 4.5/webroot文件夹并将HTML文件复制到该文件夹中。在浏览器中打开该文件,观看通过Strobe Media Player播放的视频(参见图3)。

技术分享

图3. 测试视频在浏览器中播放。

构建Strobe Media Playback应用程序

现在您已知道如何使用Strobe功能,让我们看看它的一个更加实用的用途。在本节中,您将学习如何创建一个应用程序,它使用一个位于您网站中的Strobe Media Player副本,而不是位于安装在您计算机上的服务器中。

前面已经提到,Flash Media Server应用程序始终存在于自己的文件夹中。在本例中,您将创建一个新应用程序。此练习与“真实情景”之间的主要区别在于,您的RTMP路径将指向一个真实的Flash Media Server,而不是此练习中使用的webroot文件夹。

首先为FMS准备项目。打开示例文件中的Exercise文件夹,找到名为StrobemediaPlayback1.5.1-full的文件夹并打开它。

该文件夹包含从SourceForge网站下载的Strobe Media Playback的一个未压缩版本。您将使用名为Flash Player 10.1的文件夹。尽管有许多文件,如图4中所示,但本练习仅需要以下3个文件:

  • StrobeMediaPlayback.swf
  • Expressinstall.swf
  • Swfobject.js found in the lib folder
  • lib文件夹中的Swfobject.js

技术分享

图4. Strobe Playback Player文件。

打开位于Exercise文件夹中的Strobe文件夹。将这些文件复制并粘贴到文件夹中的以下位置:

  • StrobeMediaPlayback.swf的一个副本粘贴到swfs文件夹中
  • 将expressinstall.swf的一个副本粘贴到Scripts文件夹中
  • 将swfobject.js的一个副本粘贴到Scripts文件夹中

找到这些文件的副本之后,将Strobe文件夹拖到Flash Media Server 4.5/webroot文件夹。

设置完成后,您就可以流式传输您在上一个练习中播放的Vultures.mp4文件了:

  1. 在浏览器中打开videoplayer.html文件。将视频更改为Vultures.mp4,向下滚动并将嵌入式代码复制到剪贴板。
  2. 启动Dreamweaver CS5.5并打开Strobe文件夹中的index.html文件。
  3. 在Document工具栏中,单击Code按钮显示Document窗口的代码视图(如果它还未打开)。
  4. 在第19行中单击一次并将剪贴板的内容粘贴到代码中(参见图5)。
技术分享
图5. 粘贴嵌入式代码以将视频添加到HTML页面中(单击放大)。

接下来,您对代码进行一些更改,将它指向Strobe文件夹。您还将更新尺寸以在全屏下播放视频:854 x 480像素。

  1. 找到代码中的第19行。将宽度值更改为854,将高度值更改为480854 x 480,将ID和名称值更改为Strobe。
  2. <embed></embed>标记之间进行相同的更改。
  3. 在第24行末尾单击一次并按下Return/Enter键。添加以下代码:
<param name="allowscriptaccess" value="always">

将相同的代码添加到name="Strobe"设置后的<embed>代码中。

注意AllowScriptAccess属性是<object><embed>标记的一个HTML属性,用于嵌入一个SWF文件。它通过控制SWF文件调用周围的HTML文件中的JavaScript代码的能力,保护一个HTML文件免受可能不受信任的SWF文件访问。AllowScriptAccess有3个可能值:alwayssameDomainnever。在第7步中设置的always值启用JavaScript访问。尽管在技术上不是必需的,但我们认为将这行代码添加到<object><embed>标记中通常是一种好的做法。

您的代码应该类似于图6。如果类似,则保存更改并退出Dreamweaver。

技术分享
图6. 检查代码的最终版本,然后保存HTML页面(单击放大)。

将Strobe文件夹移动到Flash Media Server 4.5/webroot文件夹。双击您刚创建的index.html文件。该页面将打开,视频将播放,并且您将体验捕猎幼兀鹰的过程(参见图7)。

技术分享

图7. 视频使用您的Strobe Media Player副本播放。

 

 

 

Flash Media Server 4.5(fms4.5)教程六:HTTP动态流的使用
 

了解HTTP动态流

从很多方面来讲,HTTP动态流技术(在文章中以下部分简称HDS)是Adobe公司对苹果公司的Adaptive Bitrate Streaming技术以及微软公司的IIS Smooth Streaming技术的一个回应。这三项技术的共同之处在于它们通过HTTP网络连接传递媒体文件以及适应于用户当前带宽的媒体文件传输的能力。相对于连入以太网的个人电脑而言,Android设备的有效带宽就显得尤为不足了。(这项技术的)最终结果是,在各种设备上实现媒体文件的流畅回放,不管这些设备是智能手机还是台式计算机。

要更好地了解HDS是如何工作的,撇开技术上的内容,只考虑下述的虚拟场景:

ABC Video Services刚刚完成了一个一分钟短片的制作,它的老板Pete灵机一动,并没有使用录像带来承载其录音内容。Pete说:“我们何不放弃录像带,而是通过一种更为有效的方式把视频传输给用户呢?”

工作室的人对这个激进的想法都感到有些惊讶,因为每个人都知道,“这是我们一直在使用的方法。”Pete并没有接受这个论据,而是给出了下面一个假设:

“为什么不把录像内容切成十个六秒钟的小片段,然后顺序的把它们传输到设备中去播放?”

有点保守主义的Sam觉得这真是一个愚蠢的想法,但是Pete是他的老板,因此他并不想这么去说。他考虑了一会,想到了一个他认为可以把这个想法从根本上扼杀掉的反驳想法。他说:“Pete,这听起来很有趣,但不合实际啊。(如果按照你的想法,)客户将会拿到一堆看起来一样的录音条。我们如何能确保客户不会弄乱这些录音条的顺序?”

“这很简单”,Pete说,“我们可以给客户一个告诉他们应该在什么时间播放哪一个录音条的文件。我们所要做的就是把这个文件和录音条打包到一起传输给客户。客户所需要做的就是打开并阅读说明文件,然后一切都按计划进行了。”

这并不是HDS的产生过程,但它捕获了这项技术的本质。

HDS和Pete的想法又有什么关联呢?HDS可能就是由你伴随Flash Media Server (FMS)一同安装的Apache模块而来的。在这种情况下,FMS扮演着打包机的角色,制造内容片断,由Apache通过HTTP传输到Flash兼容的视频播放器。为了解决Sam所提出的反对意见,与F4M扩展一起,另外的一个清单文件也是通过同样的一个过程创建出来的。从根本上说,所需视频文件首先使用F4F扩展软件切割成若干片段,作为片段文件。清单文件中包含了视频的一些基本信息,包括每一个片段文件的位置以及其中最为重要的信息——这些片段传输到用户设备上的顺序。

如果这一切都是通过HTTP连接流动的,那么FMS 4.5是如何纳入这个过程的呢?Flash Media Server 4.5包含了两种类型的实时组件:live和Just-In-Time (JIT)。不管在哪种情况下,清单文件和F4F文件都能按照需求创建,并通过HTTP传输给客户来实现回放。例如,如果Sam有一部智能手机,想观看他刚编辑过的视频,他要做的就是打开他的手机上的浏览器,链接到包含这段视频的SWF文件的网页。SWF文件打开时,只需要F4M清单文件来启动视频片段有序的向设备浏览器的传输。

作为一个反对者,Sam马上就看到了这个方案存在的问题。“朋友们,我用的是3G网络,网速很慢;我没有你们所使用的以太网连接的带宽。这将会是一个很糟糕的体验。”

幸运的是,还有Pete。Pete说:“Sam,别激动。这不是问题。这个清单文件会把播放列表附在SWF文件上,它可以检测你的连接状况,如果你的带宽较低,在清单文件中查找该带宽下的最佳视频文件。我们称这个为‘多比特率流媒体’,你会喜欢上它的。”

既然这样说了,是时候让Sam喜欢上它了。

快速入门

虽然HDS的术语听起来是相当的“专业”,HDS应用程序的创建却是非常简单的:

  1. 下载并解压缩本教程所需用到的练习文件。你会在文件夹中看到一个瀑布的视频。这个视频的格式正是HDS所需文件格式:应用了H.264视频编码器和AAC音频编码器的F4V格式。
  2. 如图1所示,将文件置于Program Files/Adobe/Flash Media Server 4.5/webroot/vod文件夹下。把文件放置妥当之后,你就可以开始使用HDS了:

技术分享

图1. 将视频文件添加到vod文件夹中
  1. 打开在目录Flash Media Server 4.5/samples/videoPlayer/videoPlayer.html下找到的媒体播放器实例。
  2. 在Stream URL区输入http://localhost/hds-vod/Waterfall.f4v.f4m,然后点击Play Stream按钮。如图2所示,视频开始播放:
技术分享
图2. 视频通过HTTP传输播放。

View larger (+)

你可能会感觉很疑惑:“到底发生了什么?”你首先要知道的一件事情是,文件路径是关键。F4M扩展插件会告知FMS你需要这个媒体流的清单文件。hds-vod镜像通过寻址服务器上需打包文件路径启动Just-In-Time (JIT)程序。Flash Player打开文件包,获取清单中所需媒体流信息,然后根据用户需求开始播放清单中相应视频文件片段。

如果你已经做完了这一系列教程的学习,你可能还会注意到,(在这个过程中,)HTTP协议取代了RTMP协议的使用。如果你忘记了添加”http://”,播放器就会报错,“对不起,找不到您所需要的文件”。

除了使用RTMP而不是HTTP之外,HDS进程和这一系列中以往的任何进程都存在着很大的不同。Flash Player需要在清单文件中包含大量的逻辑语言来解析清单文件,然后有序地播放视频片段。Flash Media Playback,Strobe以及OSMF都有这样的功能并入其中,使得它们更加适用于HDS环境。它们可以将随选媒体流输送到Android设备,Flash Player 10及更新版本,以及AIR应用程序。对iOS设备的要求会有些许的不同,这个将会在以后的介绍中提及。

多比特率媒体流

这一系列教程的作者之一非常热衷于向他的学生说:“试图在你的移动设备上播放一个在你的电脑上播放的高清视频,无异于试图在一只蠕虫体内拖动一个西瓜。”随着移动设备的不断升级,你可不敢保证你编码的在高带宽环境下播放的视频文件只能在那样的环境中播放。移动设备网络是有带宽限制的,相信你们中很多人都有过在支持Flash的设备上播放视频,体验“在一只蠕虫体内移动一个西瓜”的经历吧。

在同一部视频中编码不同的比特速率的解决方法。在这个例子中,会使用Adobe Flash Media Encoder对Waterfall视频进行500,1000以及1,500 kbps三个不同的比特速率的编码。在这一部分,我将向你演示使用RTMP和HDS编辑多比特率(MBR)媒体流。

RTMP和MBR

正如你在前面练习中看到的那样,你需要从FMS媒体流转化多个文件。在这种情况下,它们是独立的F4V格式文件,与有效带宽而不是视频片段相关。

  1. 在文本编辑器中或是在Adobe Dreamweaver CS5中打开Waterfall_rtmp.f4m文件。文件打开之后,你会看到,它显示的只是一个带有F4M扩展工具的XML文件(如图3所示)。

注意:这里所提供的示例文件是以你在电脑上安装FMS软件时创建的Program FilesAdobeFlash Media Server 4.5webrootvod folder目录下的rtmp_sample1_manifest.f4m文件为基础的。

技术分享
图3. 简单的MBR清单文件

这里重要的部分是<streamType><media>标签。<streamType>有三个可用值。如果你使用的是预先录制的视频,那么recorded就是你所需要的。如果你使用的是Flash Media Live Encoder (FMLE),你就需要选用live。如果你不知道你在使用什么,为了保险起见,选用liveOrRecorded。

<media>标签只是包含了需要装载的文件的文件名以及决定装载哪一个视频文件的比特速率。这里所需要的逻辑语言都已经在Flash Player里面了。

  1. 在Flash Media Server 4.5中调整好所有文件的位置。在你的Programs Folder文件夹中的FMS文件夹下,顺序找到…webroot/vod目录,把清单文件置于这个文件夹中,如图4所示。这个清单文件需要被置于这个文件夹里,因为这个例子使用的是MBR的RTMP“风格”:

技术分享

图4. 清单文件被置于webroot/vod目录下

View larger (+)

  1. 选择RTMP_MBR文件夹中的三个视频文件,把它们复制到…applications/vod/media目录下,如图5所示。这样RTMP媒体流就被输出到了应用程序文件夹之外:

技术分享

图5. 视频文件被置于… applications/vod/media目录下
  1. 视频文件放到适当位置之后,你现在就可以测试多比特率输出了。找到…Flash Media Server 4.5samplesvideoplayer目录下的videoplayer.htm文件。播放器打开之后,在Stream URL区域输入http://localhost/vod/Waterfall_rtmp.f4m。点击Play Stream按钮,视频开始播放(如图6所示):
 
技术分享
 
图6. 由清单文件选择播放最适合有效带宽的文件

View larger (+)

既然已经使用了RTMP协议,为什么还要使用HTTP协议?清单文件是从本地网站根目录提供服务的,这会用到HTTP协议。另一方面,视频文件位于applications/vod目录下,使用RTMP协议生成的流媒体文件也存储在这个位置。

当你点击Play Stream按钮时,清单文件中的播放列表检测设备带宽,开始播放Waterfall_1500.f4v文件,这是因为,媒体流是本地播放的,跟带宽无关。

HTTP动态流(HDS)和MBR

为HDS准备播放列表的过程和前面例子例子中讲到的会有所不同,因为你将要自主创建清单文件,将会直接调用播放列表,而不是由服务器实时的创建播放列表。在这个例子中,你将会用到伴随FMS一起安装的名为“the Configurator(配置器)”的工具。

  1. 打开AdobeFlash Media Server 4.5toolsf4mconfigconfigurator文件夹下的f4mconfig.html文件。文件打开后,你会看到配置器的工作界面(如图7所示):

技术分享

图7. 初识配置器

尽管它看起来是相当的复杂,但你只需要记住,你将要做的最多的就是复制和粘贴。这个工具所要做的就是添加媒体流到清单文件或播放列表中去,然后保存,在HDS中使用。然后你就可以在OSMF或Strobe视频播放器中播放这个文件了。最终的结果是,你会创建一个使用HTTP动态流,通过标准HTTP连接传输最优比特速率视频的视频应用程序或项目。

注意:在给Apple iOS设备创建多比特率播放列表时用到了M3U8标签,这些会在系列教程的下面部分做更加详细的介绍。对其他文件使用f4m标签。

  1. 点击f4m标签,选择Stream URI区域,输入http://localhost/hds-vod/Waterfall_500.f4v.f4m.
  2. 选定你刚输入的文字,复制到剪贴板。
  3. 选择Bitrate区域,输入500
  4. 点击Add,你输入的路径和比特速率就会出现在Playlist上,如图8所示:

技术分享

图8. 路径和比特速率出现在Playlist上
  1. 再次选定Stream URI区域,粘贴剪贴板上文字。把文件名中的500改为1000,在Bitrate区域输入1000,然后点击Add。重复上述步骤,设置比特速率值为1500
  2. 点击Save Manifest,Save As对话框打开之后,更改文件名为Waterfalls_hds.f4m,把文件保存到你的Exercise文件夹下的HDS_MBR文件夹内。打开文件夹,把这三个视频文件以及清单文件复制到剪贴板上。
  3. 找到并打开AdobeFlash Media Server 4.5webrootvod文件夹,把剪贴板上的内容粘贴到vod文件夹中。
  4. 打开videoplayer.html文件,并输入http://localhost/vod/Waterfalls_hds.f4m。当你点击Play Stream按钮时,就可以观看安大略湖北部的Sand River Falls的视频了(如图9所示):

技术分享

图9. 使用配置器生成的F4M文件的HTTP动态流

View larger (+)

Flash,OSMF以及多比特率媒体流

到目前为止,你一直使用的都是FMS 4.5自带的播放器。在最后的这个练习中,你将会使用到网络上的开源媒体框架动作脚本库(Open Source Media Framework ActionScript library)来实现视频流的转化。

  1. 打开Exercise文件夹中,Flash文件夹里的HTTP_Manifest.fla文件。文件打开后,你会看到图10所示的出错信息。不要因此而烦躁。这只是在告诉你,在Flash文件夹中没有找到OSMF.swc文件。点击OK关闭出错信息:

技术分享

图10. 文件打开时你会看到出错信息
  1. 选择Stage,打开属性面板。
  2. 点击Script区域旁边的扳手图标,打开如图11所示的动作脚本设置(ActionScript Settings)对话框:

技术分享

图11. 打开动作脚本3.0设置对话框
  1. 点击Browse to SWC file按钮,找到Flash文件夹中的OSMF.swc文件。点击OK添加文件,这样一切就准备就绪了。

连接到SWC文件之后,看一下OSMF视频播放器的代码。

  1. 选择动作层的第一帧,打开动作面板。输入第一个代码块:
  import org.osmf.media.MediaPlayerSprite;  
import org.osmf.layout.ScaleMode;  
import org.osmf.media.URLResource;  

这个代码块的作用是导入包含于.swc文件内的,这个例子所需的级。
下面一行是很重要的:

  var manifestResource:URLResource = new URLResource("http://localhost/vod/Waterfalls_hds.f4m");

你需要在FMS服务器中指定清单文件。同时,你还要注意到,这需要用到HTTP以及在网站根目录下找到的hds-vod应用程序。(尽管在这个例子中用到的是HTTP,但值得注意的是,RTMP同样能够使用多比特率清单文件来通过FMS智能化地提供视频服务。)

既然Flash Player已经知道了到哪儿去查找清单文件,你就需要添加一个MediaPlayerSprite对象来显示视频流。这个对象同样也需要被置于Stage,它的尺寸则根据视频而定。在尺寸缩放时也并不会对它产生什么坏的影响。这些问题都可以由下面的代码块来解决:

  var  mediaPlayerSprite:MediaPlayerSprite = new MediaPlayerSprite();  
mediaPlayerSprite.scaleMode = ScaleMode.LETTERBOX;  
mediaPlayerSprite.x = 32;  
mediaPlayerSprite.y = 74;  
mediaPlayerSprite.width = 736;  
mediaPlayerSprite.height = 506;  

最后一部分代码块将OSMF播放器添加到Stage并把它指定给清单文件。

this.addChild(mediaPlayerSprite);  
mediaPlayerSprite.resource = manifestResource; 
  1. 关闭动作面板,保存文件并测试项目。

由于其复杂性,Adobe强烈建议你在F4M清单文件中使用OSMF。OSMF大大简化了在各式各样的Flash项目中视频文件的使用。


 

 

 

Flash Media Server(FMS)优化指南

Flash Media Server 强化指南
俗话说少即是多,用到Flash Media Server (FMS) 的安装上意味着更少的头痛,安全噩梦或者来自终端用户的问题。
在这篇文档中,你将会学到一些保护FMS的方法,避免FMS被用于其它目的,并且禁止一些用不到的功能,也许这些都是你所不知道的.
FMS管理员指南
系统级别配置
强化FMS在FMS服务器上包括从网络和系统访问两方面入手。
网络层面
放置一台防火墙可以很好的阻止未知的网络访问。在防火墙上配置白名单和开放FMS使用的端口,默认FMS使用1935,443,80端口。大多数情况下并不需要使用443端口,可以考虑在防火墙关闭这个端口,而1935和80端口总是需要的。
RTMFP使用UDP 协议通讯。大多数防火墙阻止UDP输出,考虑你的需求,如果使用RTMFP就需要开放一定的范围。
FMSAdmin 目前不能通过RTMPS加密的方式访问,adobe公司建议在防火墙禁止1111端口,以阻止外部网络访问控制台。
系统层面的控制
你要确保仅仅是管理员或者授权用户能访问到FMS安装目录,配置文件,注册表等,如果没有很好的控制,那么被人修改或者删除,FMS会被损坏。
对于FMS 视频内容应该限制只有FMS或者内容的上传者或者下载者可以访问。
在unix系统,FMS应该配置作为一个普通用户运行,配置信息在Server.xml,FMS用户应该只有只读的权限对于配置信息,以阻止配置信息被修改。对于FMS的可执行文件,FMS用户应该也仅有读和可执行的权限,以防止FMS DLL文件被攻击。最后,FMS用户应该仅仅能访问自己的文件夹和内容目录,不能访问其它目录。
如果可能,FMS日志位置应该不要存放在系统盘,以免造成系统盘空间不足。
Application FMS默认有VOD和live两个 application,一旦我们没有使用这两个application,应该删除掉。
Server.xml 配置,在Server.xml文件中应该配置以下参数强化安全。
Root/Server/NetworkingIPV6,如果FMS服务器没有部署在IPV6网络,你应该禁用这个参数。
Root/Server/SSL 配置你的服务器通过RTMPS 带SSL的方式通讯。
Root/Server/Process 在linux系统上,正如前面提到的应该谨慎的配置权限。
Root/Server/AdminServer 创建一个白名单去管理控制台。


 

 

Flash Media Server(FMS)基于IIS的安装
 

一般来讲,在windows上安装软件从来都不是什么难事儿,但FMS却在安装过程中"充满"了误导(好吧,其实也就是夸张的说法而已)

 

1.下载FMS 

2.一路Next安装

 注意:不要勾选安装Apache 2.2 (有了IIS,还要apache干嘛?)

看到很多朋友都没注意这里,结果最后与IIS端口冲突,然后对Apache又不熟悉,陷入困境.

 

3.在IIS里设置站点

主目录为C:Program FilesAdobeFlash Media Server 3.5webroot ,为避免与其它网站端口冲突,建议端口改为8080

同时,iis的mime类型里,增加"smil","flv","f4v"三种类型(不然没法通过http播放flv视频)

 

4.修改fms.ini

fms.ini的默认路径为: C:Program FilesAdobeFlash Media Server 3.5conffms.ini

找到
"ADAPTOR.HOSTPORT = :1935,80"

改成
"ADAPTOR.HOSTPORT = :1935,8081" (注意这里的第二个端口,不要跟80端口与第3步中的iis端口冲突即可)

 

5.重启FMS服务

技术分享

所谓重启服务,就是先Stop上图中的二个服务,然后再Start----当然你也可以直接重启电脑,然后去一趟WC回来就好了

 

6.测试一下

浏览http://localhost:8080/,注意右侧的"Samples","Dynamic Stream","Interactive"三个标签

Samples:主要用来测试RTMP,HTTP二种方式能不能播放视频
技术分享

DynamicSteam:主要用来测试不同编码率视频的平滑切换(即:Silverlight中的所谓IIS Smooth Video Play 平滑视频播放)
技术分享

Interactive:用来测试摄像头与麦克风的实时传输(也就是现在满天飞的所有Flash视频聊天室功能)

技术分享

 

引用网络,觉得很赞所以收藏,感谢提供者

Flash Media Server 安装调试教程

标签:

原文地址:http://www.cnblogs.com/tanhao/p/4298023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!