Flash-Player-11中H264和AVC编码视频直播

上传人:re****.1 文档编号:543744998 上传时间:2022-09-25 格式:DOCX 页数:27 大小:222.06KB
返回 下载 相关 举报
Flash-Player-11中H264和AVC编码视频直播_第1页
第1页 / 共27页
Flash-Player-11中H264和AVC编码视频直播_第2页
第2页 / 共27页
Flash-Player-11中H264和AVC编码视频直播_第3页
第3页 / 共27页
Flash-Player-11中H264和AVC编码视频直播_第4页
第4页 / 共27页
Flash-Player-11中H264和AVC编码视频直播_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Flash-Player-11中H264和AVC编码视频直播》由会员分享,可在线阅读,更多相关《Flash-Player-11中H264和AVC编码视频直播(27页珍藏版)》请在金锄头文库上搜索。

1、Flash-Player-11中H264和AVC编码视频直播FlashPlayer11H.264/AVC编码视频直播必备知识使用ActionScript3,你应该有一个基本的了解。用户级别开始所需产品 Adobe媒体服务器5标准 Flash播放器 H264Encoder_START.zip H264Encoder_C0MPLETED.zip随着版本的FlashPlayer11,Adobe已经推出了一些令人兴奋的新功能,包括原生64位支持和异步位图解码性能的升级,如。另外,Flash播放器现在可以直播视频流进行编码H.264/AVC标准。这项新功能允许开发人员创建实时,高品质的视频直播聊天,会议

2、,现场赛事转播的应用。H264VideoStreamSettingsFlashPlayer对对H.264视频进行编码的能力的核心在于内一个称为核64VideoStreamSettings的新类。此新的类是一个子类的VideoStreamSettings,和它是什么使您可以控制视频附加到NetStream的压缩设置。下面的代码允许您对附加到在FlashPlayer中的H.264视频的NetStream到而不是使用默认索伦森火花编解码器的视频进行编码:importflash,media.H264VideoStreamSettings;varh264Settings:H264VideoStreamS

3、ettings二newH264VideoStreamSettings();h264Settings.setProfileLevel(H264Profile.BASELINE,H264LeveLLEVEL31)本文演示了如何利用Flash播放器1L0新H.264编码由你走过发展的一种视频的编码和流媒体应用程序的功能。通过利用Flex4.6SDK和11.0或更高版本的Flash播放器,您将生成的应用程序将执行以T:.捕获从网络摄像头视频直播.建立到使用NetConnection的Flash媒体服务器的连接发布视频流从应用程序到Flash媒体服务器使用NetStream显本在应用程序内Video组件

4、中传出视频流从照相机(之前被编码的)发送编码到FlashPlayer对原始网络摄像头视频为H.264编码的参数显示编码视频的元数据.使用NetStream的另一个实例的应用程序从Flash媒体服务器流活、编码视频.显示新编码、流媒体直播视频在应用程序内的另一个Video组件入门若要获取最大的本演练中,您将需要以下内容: Flash播放器11.0或更高的下载最新FlashPlayer在这里 Flex4.6SDK或更高的下载最新FlexSDK在这里.Flash媒体服务器4.5,或Adobe媒体服务器视频摄像机连接到计算机设置服务器本演练演示带实时视频数据源已编码到h.264/AVC内FlashPl

5、ayer和它通过RTMP发送到Flash媒体服务器。下面的演练假定您使用Flash媒体服务器4.5或Adobe媒体服务器5o如果您不具有媒体服务器安装程序在线您可以下载免费的Flash媒体开发人员服务器4.5副本在这里.Flash媒体服务器4.5或Adobe媒体服务器5的基本安装,以后就没有什么更需要要运行该示例。如果你是新到Flash媒体服务器4.5或Adobe媒体服务器5,并且想要一些关于如何开始使用流媒体的指导,请参阅由约瑟夫拉布雷克和汤姆绿色一一开始Flash媒体服务器4.5本优秀系列.设置在FlashBuilder项目示例应用程序是一个简单的ActionScript3.0项目,在Fl

6、ashPlayer中运行,并利用在中找到的Flash播放器版本11或更高版本,具体的功能。已完成的版本的应用程序提供(H264Encoder_START 和H264Encoder_C0MPLETED)和两个启动。H264Encoder_START导入项目到FlashBuilder通过选择文件-导入Flash生成器项目。在此应用程序正常工作的秩序,FlashBuilder需要Flash播放器11.0或更高的目标。发生这种情况,默认情况下当使用Flex4.6SDK,但在使用较早版本像Flex4.5时没有。有关如何设置与SDK比4.6早项目的说明,请参阅这篇文章.在Flash生成器中与选定的H264

7、Encoder项目,选择项目-属性-ActionScript编译器。验证编译器目标至少Flash播放器11.0。(图1.2)如果不是这样,请选择使用特定的版本的单选按钮,然后键入11.0.0的值。图1.请确保编译器是针对Flash播放器11.0或稍后通过检查项目的属性。创建应用程序第一,你会修改H264Encoder_START,以便它可以与附加的网络摄像头进行通信。此外,您将添加为建立NetConnection来连接到服务器,以及两个NetStream实例;该应用程序所需的代码一个负责从应用程序到Flash媒体服务器,获取视频,一个用于把它带回从服务器应用程连接摄像机,建立一个NetConn

8、ection和NetStreams开放条件下直接类定义语句,但之前的构造函数方法,创建一个名为nc,数据类型为NetConnection的私有变量。使用代码提示有Flash生成器生成必要的导入语句为你,或手动导入flasLnet.NetConnection。您的代码应如下所示:packageimportflasLneteNetConnection;publicclassH264EncoderextendsSpriteprivatevarnc:NetConnection;publicfunctionH264Encoder()创建两个私有变量来表示每个NetStream。为创建一个流从应用程序到服

9、务器(ns_out),和另一种用于在应用程序中的服务器(ns_in)从返回的流走。一定要导入flash,net.NetStream.package(importflash,net.NetConnection;importflash,net.NetStream;publicclassH264EncoderextendsSprite(privatevarnc:NetConnection;privatevarns_out:NetStream;privatevarns_in:NetStream;publicfunctionH264Encoder()()接下来,创建一个私有变量命名为cam的类型Came

10、ra,并将其值设置=Camera.getCamera()。在这你不调用构造函数来实例化类型的对象的Camera,Camera类是比其他类,稍有不同。相反,您调用的Camera类的getCamera()方法。此方法将返回Camera对象的一个实例,除非没有照相机连接到计算机,或者如果有,但相flash,media.Camera.机是由另应用程序使用。定要导入privatevarcam:Camera二Camera.getCamera();它现在是时候添加将允许应用程序连接到使用NetConnection类的一个实例的服务器的代码。内提供的initConnection。函数在有关行44,通过实例化的

11、nc:NetConnection变量,您在步骤1中定义创建新的NetConnection:privatefunctioninitConnectionO:voidnc=newNetConnection();它始终是一个好的做法,以验证NetConnection是成功的之前采取任何进一步的行动。要做到这一点,添加EventListener以侦听NetStatusEvent.NET_STATUS类型的事件的事件。您将在下一节中创建的onNetStatus。事件处理程序。一定要导入flash,events.NetStatusEvent:importflash,events.NetStatusEvent

12、;privatefunctioninitConnectionO:voidnc=newNetConnection();nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);下一步仍在initConnection()函数体,告诉NetConnection在哪里通过调用NetConnection类的connect。方法来连接到。作为此方法的参数,添加的Flash媒体服务器或您想要连接到的Adobe媒体服务器实例中的活”文件夹的位置的URLo例如,要连接到您的计算机上本地运行的Flash媒体服务器的实例,您将设置URL为:rtmp:loc

13、alhost/live”。privatefunctioninitConnectionO:voidnc=newNetConnection();nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);nc.connect(rtmp:YOUR_SERVER_URL/live);)最后,告诉NetConnection服务器应哪里调用回调方法通过将NetConnectione1ient属性的值设置为thiso回调方法是调用由服务器时客户端应用程序建立了NetConnection的特殊处理程序函数。稍后您将在此示例中使用的0nMetaData(

14、)和onBWDone()的回调方法。你将会包括这些回调方法在主应用程序类中,事实上是同一个对象,将建立NetConnection,因此值NetConnection实例(nc)的客户端属性应设置为thisoinitConnection()函数现在应显示如下:privatefunctioninitConnection():void(nc=newNetConnection();nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);nc.connect(rtmp:YOUR_SERVER_URL/live);nc.client=this;验

15、证成功的NetConnection如所述,它总是一个好的做法,以验证成功的一个NetConnection的尝试。若要执行此操作,找到有关行70体上名为onNetStatus()的函数:protectedfunctiononNetStatus(event:NetStatusEvent):void在onNetStatus()事件体内,创建trace语句,这在调试过程中输出到控制台event,info,code的值。代码对象的属性的info在NetStatus事件将包含指示的未遂NetConnection,如“NetGroup.Connect.Success”或NetGroup.Connect.Failed状态的String数据。跟踪此属性的值允许您检查的NetConnection状态很容易,只在调试模式下运行应用程序。functionprotectedonNetStatus(event:NetStatusEvent):voidtrace(event,info,code);)此演练中的示例应用程序将尝试连

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号