• OSMF第二步


    好了,终于腾出来一点时间写“OSMF第二步”,相对于这篇和这篇,第二步我们来关注OSMF本身的架构模式和应用范畴,因为这部分我们在前两篇中介绍的并不清晰,很多人看了,可能结论就是OSMF这个媒体框架Adobe创作发起的,目的是改善互联网媒体开发者的工作重心,让他们更关注于自己的业务逻辑,更少的重新构造基础播放器层面的代码。这个说法很好,但是为什么说OSMF能够起到这些作用,就是我们这篇来讲解的范畴。
    在本篇中,我们会讨论以下话题,第一,Online Flash Video的发展历程,第二,OSMF所能解决的问题。

    Flash Video发展历程,最清晰的模式是通过Flash对于媒体内容支持的进化程度来说明。先来看一下最早的Flash对于Video应用(播放形式)的支持:
    1999年后,Flash Player 5
    当时的视频在Flash中只能采用其他工具将视频逐帧导入时间轴的方式,并且最终发布为SWF格式,不能加载任何外部视频。被导入的视频长度不能大于10秒,编辑被导入后的视频只能逐帧处理,而且会丢失视频原有Metadata及完全改动视频编码(导入的视频已经变成连续的bitmap)。这样的方式处理起来有音频和画面不同步的问题,并且仅有极少量的广告公司或个人在处理某些小短片时用此方法。
    2002年后,Flash Player 7
    播放视频的形式进化为SWF+FLV(终端呈现方式仍然是SWF),这种Progressive Download的观看模式仍然沿用至今。Macromedia公司发布Flash Communication Server 1.0和1.5,开始在FLV上附加Real Stream的概念,所有的FLV的视频编码都是Sorenson Spark H.263,第三方输出和编码工具开始出现。开发者已经可以实现动态媒体播放列表(加载XML),RTMP Streaming和音画同步的问题。
    2005年后,Flash Player 8
    在FLV上引入ON2 VP6编码支持,服务器端扩展为Flash Media Server 2.0,脚本引擎开始引入AS3创作的媒体播放器,加入CuePoint和Alpha Overlay功能(很多广告商开始欢呼),应用模式开始普及,视频播放和社会媒体播放器使用Flash制作的方式大幅度增加。Adobe加入Flash Media Encoder软件。
    2007年后,Flash Player 9.0.115.0 Updater3
    在FLV基础上,Flash又引入了对于H.264和HE-AAC的支持,开始允许GPU硬件加速播放H.264视频,开始支持 MOV,MP4,M4A,3GP,3G2,MP4V直接读取,支持1080p全屏,加入Adobe Media Player 的AIR应用支持。
    2009年,Flash Player 10
    这里又有什么支持?是功能层面的,还是业务层面的?让我们来看看都发生了什么,这就是第二个话题,OSMF的引入所能解决的问题。
    我们来看看Flash Player 10之后,媒体方面支持的进展:
    Flash Media Server决定开始支持动态媒体,组播,HTTP Streaming, P2P等新功能,配合AIR,媒体播放开始支持DRM。面向开发者,放出OSMF开源媒体框架。面向业务,收购Omniture,开始整合媒体Metadata数据应用及业务分析产品。
    我们可以看出,Online媒体功能已经变的越来越复杂,用户需求也越来越多,一个OSMF统一媒体框架的呼声越来越高,大型公司的决策者们面对在线媒体业务已经远远不是有或没有这样1和0的问题,而是将更多的支持业务逻辑的问题抛给了开发团队,比如,广告如何插入,分布式的成本如何降低,CDN部署周期,媒体业务能带来多少收益,怎么跟踪监控媒体应用的使用状况和用户兴趣,怎么能从媒体业务提供更多的有价值的信息给广告主,开发周期如何,是不是支持业务扩展等等,一般玩一玩的尝试开发者还是愿意从头开发(毕竟可以了解NetStream和NetConnection的工作方式),但是一旦面临上面众多来自管理层的问题,我想OSMF开源媒体框架就是一个面向开发者更好的选择。那么这个OSMF能给一个媒体应用开发团队带来什么?让我们来看一下:
    可定制化的UI和窗体特征,Dynamic Streaming,播放列表解析(XML和RemoteObject),支持HTTP和FMS,支持与CDN的整合和验证(后面会有CDN列表),广告整合,跟踪和衡量媒体服务,社会化网络应用Mashup功能,服务质量(QoS)报告,最重要的是,它是开源的。
    除了决策者在媒体业务上的需求越来越苛刻,来自媒体应用创作的问题也在不断显现。1000种不同的Flash Video播放应用,里面对于NetConnection和NetStream的用法可能就有1000种,最新的功能MBR,DVR都很惹人瞩目,但是还没有进入主流市场,如果一个开发团队打算吃螃蟹,风险和投资回报都无法估计。构造一个具备Plug-in扩展机制的通用广告跟踪模块,不同的团队也有不同的方法,要形成一种良好的媒体扩展框架非常困难,因此媒体开发团队需要OSMF,或多或少地需要。
    我在前面讲过,OSMF是纯粹的AS3构造的媒体框架,可以很容易的应用到AS3,Flash和Flex项目中,目前OSMF已经更新到0.8,而且通过OSMF框架的实现的播放器,都将自动的具备一下核心特征:
    1.jpg
    由于正式的1.0版本还未推出,那么我们来先睹为快,看看OSMF 1.0将会加入什么新的支持:
    2.jpg
    接下来,我们通过一个Sample来看看OSMF的一个Video Player的功能:
    从下载的osmf 0.8 source里,找到apps/samples/frameworks/ExamplePlayer,将ExamplePlayer文件夹拷贝到Flash Builder的项目默认空间,MAC下是/Users/ZMA(我的用户名)/Documents/Adobe Flash Builder Beta 2/路径下,Win下是C:\Documents and Settings\zma(我的用户名)\Adobe Flash Builder Beta 2\路径下,使用Import->General->Existing projects into workspace方式,直接将ExamplePlayer项目导入。
    鉴于Flash Player的安全沙箱规则,你需要在Build Project时候,在Run和Debug Configuration面板里设定输出的Web Server路径(或者将你的ExamplePlayer.swf拷贝到你的网站某一个路径下去),我这里是这样的:
    3.jpg
    之后,你所运行的SWF将从web server上启动,就会突破安全沙箱的限制,另外你也可以从这里访问:
    http://www.7yue.com/osmf/ExamplePlayer.swf从这个范例里,你看到了OSMF帮你实现了媒体播放的很多基础功能,包括渐进式下载,流播放,动态码流切换,使用双倍缓冲进行流播放,动态缓冲的渐进式下载,加载位图,加载SWF,渐进式音频播放,流音频播放,不合格的渐进式下载及状态,不合格的流及状态,不合格Image,不合格渐进式音频播放状态,不合格流音频播放状态等等多达40种播放功能支持及检测。
    那么OSMF目前主要在扩展CDN plug-in功能上,开源框架里加入了对于Akamai和Limelight等CDN的支持,可以参考下图:
    4.jpg
    如果是其他CDN,也可以参考其中的插件开发代码来完成自己的集成扩展。
    那么OSMF和OVP(Open Video Player)及JW Player的区别在哪里?OVP和JW都是已经制作好的媒体播放器,两者都是开源,其中JW对于很多小型Video应用而言,非常快捷方便进行定制,尤其是渐进式下载,而OVP则略显庞大一些,播放器输出端大小可能超过300KB了,但是功能全,支持范围广泛,而且扩展能力强大。OVP是采用OSMF来制作的,甚至现在OVP都已经基于OSMF的框架可以打造Silverlight的播放器,可见OSMF的开放和通用程度。OSMF本身是一个框架,其框架编译后大小在210KB左右,你当然可以定制生成想要的功能而降低自身的应用尺寸。
    好了,今天的第二步就聊到这里。

  • 相关阅读:
    作业九 主成分分析
    作业八 特征选择
    作业七 逻辑回归应用
    作业六 逻辑回归
    作业五 线性回归算法
    第十四次作业:手写数字识别-小数据集
    第十三次作业:深度学习-卷积
    第七次作业:7.逻辑回归实践
    第十二次作业:垃圾邮件分类2
    第十一次作业:朴素贝叶斯-垃圾邮件分类
  • 原文地址:https://www.cnblogs.com/chenhaib/p/2248426.html
Copyright © 2020-2023  润新知