论文部分内容阅读
关于现代交通的奇思妙想
在iOS、Android、Windows这三大系统中,我们要通过一些APP购物、浏览网页,需要HTML5技术为网页提供支持。而在此之前,各大网站绝大部分都还是使用的Flash技术。不过,前不久Adobe正式宣布将于2020年12月31日终止支持Flash。在此之后,Adobe将不会发布Flash的任何更新与安全补丁。此外,Adobe还将从官方网站中删除Flash Player早期版本的所有存档,并阻止基于Flash的内容运行。这也意味着,Flash正式宣告死亡。此外,微软也宣布将于今年年底结束对 Edge/IE 11上的Adobe Flash Player支持。那么,作为曾经互联网霸主地位的Flash,为什么如今不得不走向生命的终点呢?
什么是Flash?
对于很多90后和00后来说,可能还不清楚Flash是什么。Flash其实是一个交互式矢量图以及Web的标准,诞生于90年代初,具备体积小、成本低、制作快的优点。在光纤还没普及的2004年左右引领了视频流媒体行业。Flash一直都是线上媒体内容的主要载体,绝大多数网页的动画,包括曾经风靡一时的“4399” 小游戏等,都要依靠Flash实现。Fl ash也支持高品质的mp3音频流、文字输入字段、交互式接口等等很多东西,最新版本可以观看所有的Flash格式。
Flash的诞生
说到Flash就不得不提到一个人——乔纳森·盖伊,就是这个人缔造了Flash。还是孩童的乔纳森·盖伊就对建筑表现出特别的喜好,并且幻想自己长大后能成为一名建筑工程师,他整日坐在桌前为设计一间小屋而写写画画。由于乔纳森·盖伊不满足局限于纸上的设计,他开始在自家屋后盖起了真正的小屋和车库。因为要打造油漆房,于是他买了一台苹果电脑,并学着使用古老的BASIC语言进行编程。突然一天,他对着电脑屏幕发呆,脑中突然产生了一个想法,如何“让电脑把人的设计思维以图像等形式表现”?于是传奇就从这里开始了。1993年,乔纳森·盖伊成立了自己的公司FutureWave Software,并致力于图像的创作研究。第二年,乔纳森·盖伊决定将绘图软件转移至矢量绘图上。后又根据用户意见,投向了动画软件的制作。1995年,互联网Web应用兴起,人们对于在互联网上获取图像和动画的需求变得强烈。盖伊认为属于他的时机到来。于是,他采用当时成熟的Java嵌入式播放器作为动画播放的第一方案。由于Java速度太慢,动画效果并不令人满意。因此乔纳森·盖伊再次投入开发和研究工作,试图找到更方便制作动画的方案。最终,FutureSplash Animator发行,也就是Flash的前身。1996年11月,Macromedia收购FutureWave公司,并将其改名为Macromedia Flash 1.0。
Flash的成长
时间来到1998年5月,Macromedia发布了Flash 3.0版本,该版本支持影片剪辑、Java插件、透明度、独立播放器。第二年年6月,Macromedia又发布了Flash 4.0版本,这一版本支持变量、文本输入框、增强的Action、流媒体。并且从4.0版本开始,Flash有了自己专用的播放器,称为Flash Player,原本的Shockwave播放器仅供Director使用。不过为了向下兼容,Flash制作的动画仍旧沿用“.swf”作为文件名。到了2000年8月,Macromedia推出了全新的Flash 5.0版本。该版本支持XML和Smart Clip。时过两年,在2002年3月,Flash推出了MX版本,這一版本开始支持对外部JPG图像和MP3音频的调入,并提供了对HTML文本更为精确的控制,改进了swf 文件的压缩技术。2003年9月,Fl ash MX 2004版本发布,该版本支持文本抗锯齿、ActionScript2.0、增强的流媒体视频行为。到了2005年9月,Flash 8.0发布,增强了对视频的支持,可将其打包成flv文件。同年,Adobe公司耗资34亿美元收购了Macromedia公司,而Flash自然也正式成为Adobe公司旗下的产品。也正是Adobe公司的收购,让Flash开始迎来了一生中的巅峰时期。
Flash的壮大
Flash的壮大,除了与它自身相关外,还与赶上了好时代有很大的关系。在2000年左右,国际互联网已经正逐渐走向千家万户,不过当时的互联网发达程度还不高,人们所看到的网页内容基本都是以静态为主。同时,由于带宽的限制,那个时期的互联网图片也并不多,更别说视频内容,在当时也主要以文字为主,即便是有图片,在使用时也需要注意尺寸大小,如果要打开尺寸大一些的图片还需要等上一段时间,而如果是要下载一首2~3MB的MP3格式音乐,则需要等待几十分钟。至于视频,哪怕是看一段清晰度很差的视频还需要等待加载几十分钟,并且还需要先安装第三方插件才能正常观看。也正是由于当时的互联网技术不高,如何提高人们在观看图片、视频的体验,这也成就Flash的发展壮大。
由于当时的浏览器还不支持CSS(层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言)技术,而Flash的优点是可以在浏览器中播放动画。Flash当时的技术特点是超高压缩比的文件格式,矢量绘图、边下边播。正是在这样的背景下,Flash开始成为一枝独秀,并且因为Flash是矢量动画,它的优点是空间占用小,而另一个优点则是可以无限放大且不失真。空间占用小,因此用户打开快,可以在互联网上动起来。可以无限放大,因此用户可以看到清晰的动画。于是Flash开始普及起来,几乎每台电脑都要安装Flash插件。同时,网站也找到了好的广告载体,当年的网站站长也大部分都是依赖广告生存,而体积小、效果炫的Flash似乎天生就是为广告准备的,于是可以看到任何一个网站都是大面积的Flash广告栏。Flash正式兴起,闪客(指做Flash的人)成为时尚。可以说,当时的互联网时代与Flash是相互影响,相互壮大,谁都离不开谁。 互联网的发展是相当迅速的,并且网络带宽也在逐步提高,当有了更高的带宽,人们对图片、视频的需求也在增加。当然,Flash也看到了互联网发展的势头,也开始顺势推出了更多的更新版本。比如从2002年的Flash MX(Flash Player 6)开始,Macromedia当时还没有被收购,就为Flash加入了支持播放视频的功能。当时可以在SWF格式的文件中嵌入视频数据,并依然支持流播放。在2003年的Flash MX 2004(Flash Player 7)开始把视频单独作为一种文件格式提出来,这就是大名鼎鼎的FLV格式。Flash的FLV容器格式和VP6和VP7视频压缩算法的横空出世,这也引爆了视频流媒体整个行业。
到了2007年的时候,也就是Flash 9 alpha阶段,此时Adobe也将9 alpha 改名为FlashCS3 Professional,这一版本开始支持ActionScript3.0和XML,运行效率有了大幅提升。此外,随着Flash交互技术的进步,互联网上各种基于Flash网页的游戏也开始兴起。比较知名的像4399小游戏就是在那个时期开始火爆互联网的。在2008年的时候开始蓬勃发展,加之后来社交游戏的浪潮席卷全球,Flash再次成为网页游戏的标配,很多之前在客户端都做不到的绚丽效果都能展现在web中,大量公司依赖Flash开发的产品赚的盆满钵满。各种Flash的网页游戏兴起,很大程度替代了以前的安装版小游戏,打开网页就能玩游戏成为当时很多人的娱乐方式。于是,在一段时间内,Flash达到巅峰,似乎整个互联网离不开Flash。到了2010年,随着Adobe Flash CS5版本的推出,也催生了一大批知名的网页游戏,比如“人人农场”“QQ农场”等游戏,都是基于Flash开发的经典。
Flash的衰败
可能Adobe公司也没有想到,在2007年的时候苹果公司发布的iPhone和2008年谷歌发布的Android系统,成为Flash走向衰败的导火索。随着Android和iPhone智能手机的飞速发展,全世界进入了移动互联网时代,Flash的悲剧也开始上演。2008年~2010年期间,是Flash技术在PC页游领域快速崛起后如日中天的几年,然而这个时间也是苹果公司iOS生态体系快速发展的时间。苹果公司的赚钱能力远超我们的想象,不论是设计还是生态,在当时都是独树一帜。由于iOS系统与Windows系统并不想通,所以想要在移动端同样支持Flash是非常困难的,并且由于Flash CS3的功能更强大,语法升级、类库升级、虚拟机升级之后,导致内存占用过大,毕竟iPhone 2G和3G的内存容量也仅为128MB。此外,Flash CS3的AVM2虚拟机 ActionScript3.0和Java语言,语言和性能都远远落后于Java和C#虚拟机,导致CPU功耗也比较高。因此移动端无论对浏览器还是对本地应用,Fl ash都显得力不从心。
2007年6月,苹果公司发布了第一代iPhone,人们发现iPhone与Adobe Flash播放器并不兼容。当时Flash已经得到成功推广,几乎全球所有主要手机厂商都付费从Adobe获得授权,将其用于普通手机、智能手机和其他手持设备。Adobe很希望苹果的iPhone也能用上Flash播放器,可乔布斯迟迟不表态。虽然用户们强烈呼吁苹果支持当时还在互联网世界处于统治地位的Flash,但是准备自己管理内容向用户收费的乔布斯不为所动,之后乔布斯在2010年4月发布了一封公开信——《关于Flash的说明》,解释了iPhone为什么不支持Flash。简单说就是三点:“第一Fl ash耗电量大、第二它运行缓慢、第三它存在安全问题”。首先是Flash的功能太多,效率太低。后期的Flash,可以解码H.264,可以做3D渲染,能播放7.1声道环绕声,支持游戏手柄,功能强大却太过臃肿。作为手机页面的话,不仅运行缓慢,而且非常耗电。当然,苹果选择不支持Flash,可以让更多人为iOS创造软件、游戏,苹果也能保持对软件、应用的控制。Flash以插件身份运行,权限很高,能够运行非常复杂的代码。可以轻易打开本地文件,甚至运行程序来关闭、重启电脑。2015年安全机构NNT Group公布的十大最危险的安全漏洞都是来自于Flash。Flash可以跨平台,这意味着一旦Flash出安全问题,多个浏览器、系统都可能被侵入。
此外,HTML5效率更高,安全性更好,还不需要安装插件。微软、苹果公司、谷歌,甚至连Adobe都支持HTML5。乔布斯还提到:Flash是为PC和鼠标设计的,并不适合低功耗、触控屏的移动设备。而且,重点是Adobe拥有Flash 100%的技术产权,HTML5则是一种开放的网络标准,不存在商业授权问题。
在当时由于苹果公司已经具有非常高的影响力,乔布斯的公开信对Flash的打击几乎是致命性的。后来,Adobe另辟蹊径,2011年推出的Adobe Flash CS5.5 Professional版本支持iOS项目开发,不过受限于语言和虚拟机,无论CPU效率还是内存,都沒法和原生相比。而移动端系统对内存管理非常严格,加上Flash程序员整体内存控制意识较弱,Flash始终没有成为主流。从此以后Flash开始不再将移动领域作为重点。然而移动互联网的快速增长,导致全球PC大幅萎缩,Flash自然也开始走下坡路。
正所谓,时势造英雄。21世纪初全球互联网的发展成就了Flash,让它成为了一代王者。不过随着移动互联网的兴起,HTML5技术的浏览器带来了不可替代的体验。Flash在移动时代的失败,其实并不是Flash的技术没有HTML5先进,而是外部环境发生了改变。加上苹果公司拒绝Flash进入iOS平台,而这归根结底是利益的保护。因为苹果公司从一开始就建立了App Store的封闭分发生态策略,不可能允许一个第三方插件进入自己的生态领域?这无异于引狼入室。此外,除了外部环境的原因。Flash的没落很大一部分是其本身造成的。Flash在AIR支持GPU和Stage3D之前都是CPU渲染的,而没有在底层改成GPU架构,作为普通用户的大多人不懂GPU,CPU渲染肯定比GPU慢且费电。这个体验相信每一位用过Macbook的用户都有,风扇转速高和耗电非常明显,我们都知道iPhone是不可以换电池的,理论上在底层把Flash架构改成GPU优先会比CPU优先迅速和省电很多,但Adobe并没有这么做。 Flash生命的终结
其实早在2017年7月的时候,Adobe就宣布将在2020年12月31日(“终止日期”)之后停止分发和更新Flash Player。Adobe与包括苹果、Facebook、谷歌、微软、Mozilla在内的多个技术合作伙伴合作发布了此公告,这些合作伙伴发布了补充公告,其中详细介绍了Flash Player终止服务对使用其特定的操作系统环境或浏览器功能的开发人员,企业和消费者的意义。那么为什么Adobe为什么决定终止Flash Player,并选择2020年结束日期?多年来,诸如HTML5、WebGL和WebAssembly之类的开放标准一直在不断成熟,并可以作为Flash内容的可行替代方案。此外,主要的浏览器供应商正在将这些开放标准集成到他们的浏览器中,并且淘汰了大多数其他插件(例如Adobe Flash Player)。2017年,Adobe在提前三年通知的情况下宣布了业务决策,Adobe认为这将留出足够的时间,为开发人员、设计人员、企业和其他各方可以根据需要将现有Flash内容迁移到新的开放标准上。那么Adobe是否会在2020年之后提供AdobeFlash Player的早期版本供下载?据官方回复是不会的。Adobe将从其站点删除Flash Player下载页面,并且在EOL日期之后,将禁止基于Flash的内容在Adobe FlashPlayer中运行。如果用户发现可以在第三方网站上下载Flash Player,可以使用它吗?答案同样是不可以,这些版本的Flash Player未经Adobe授权,客户不应使用未经授权的Flash Player版本,未经授权的下载是恶意软件和病毒的常见来源。Adobe对未经授权的Flash Player版本不承担任何责任,用户对使用此类版本的风险完全由自己承担。此外,在技术支持终止后,Adobe是否会为Flash Player提供安全更新?当EOL日期之后,Adobe将不会发布FlashPlayer更新或安全补丁。Adobe建议所有用户在EOL日期之前卸载Flash Player。Adobe将在今年晚些时候提示用户卸载其计算机上的FlashPlayer,并且在EOL日期之后,将禁止基于Flash的内容在Adobe Flash Player中运行。
国内将提供特供版支持
Adobe之前在新浪微博上表示,Adobe将会继续与重橙网络合作并支持其在中国大陆地区对Flash Player的独家发行与维护,该合作仅限中国大陆地区。换言之,Flash Player特别为中国制作了一个“特供版”,这到底是个怎么样的存在?值不值得继续使用?
由于国内的互联网生态对Flash的依赖是比较大的,目前国内仍有不少老旧的网站需要借助Flash来实现办公、登录、上传数据等功能。结合这些问题,Adobe和重橙网络合作,推出中国特供版的Flash,并继续为国内用户服务。
一般来说,“特供”都意味着更好,不过事实并非如此。早在2018年的时候,在Adobe的用户协议中写到,Flash Player使用过程中重橙网络可能会搜集用户的上网信息,并可以在合理范围内将信息披露给第三方,如果用户隐私数据安全受到威胁也不用承担责任。消息一经曝光就遭到了网上的一致口诛笔伐,如此恶劣的霸王条款竟然出现在了一家全球知名公司的用户协议中,实在让人愤慨。此外,在协议中反复提到的“重橙网络”正是Adobe Flash Player国内特供版的提供商。在事情败露之后,重橙网络紧急修改了用户协议,改为“在不涉及侵犯用户个人隐私的前提下, 程序可能会记录用户如何使用本程序的信息和用户使用本程序的相关数据”,但这时已经很难再取得用户的信任了。 之所以选择为中国提供特供版支持,Adobe表示,这是为了支持中国大陆地区市场特有的发行渠道、用户习惯和企业、开发者和游戏社区。不过,这到底是为了广告主还是为了用户,似乎还不一定。我们注意到,在Adobe的官方微博下,出现了大量负面评论,不少网友纷纷表示并不欢迎Flash中国特供版,还有人将其斥为“流氓软件”。出现这样的情况其实并不意外,因为从2018年重橙网络代理Flash之后,中国特供版的Flash就已经带上了一些强硬的推广意思。各种网页广告、弹出式广告层出不穷,让很多人不胜其烦。比如当你更新完Flash后,就会弹出一个推广网页,其中的内容基本都是一些以充值为主的网页游戏。此外,Flash之前还出现过捆绑2144游戏中心、强行运行FlashHelperService进程之类的事件,这些做法与流氓软件无异。在这样的情况下,人们自然会对中国特供版Flash产生不信任。另一方面,Flash本身作为落后的互联网产物,用特供版来苟延残喘,其实并不是为了用户的使用体验,而是为了在国内的众多广告主。毕竟彻底停止Flash服务,必将损失很大一笔广告收益。
新晋的王者HTML5
网页超文本技术工作小组(WHATWG)于2004年开始制定新标准,当时HTML 4.01自2000年以来从未更新,同时万维网联盟(W3C)正在将未來的发展重点放在XHTML2.0上。2009年,W3C允许XHTML 2.0工作组章程结束,并且决定不再续订,同时W3C与WHATWG合作,共同为发展HTML5而努力。2004年6月,Mozilla基金会和Opera软件公司在万维网联盟(W3C)所主办的研讨会上提出了一份立场文档,该文档的重点是开发与现有浏览器向后兼容的技术,包括Web Forms 2.0最初草案规范。研讨会最后以8票赞成和14票反对,否决继续对HTML的开发工作。这也引起一些人的不满,在研讨会之后,立即成立了网页超文本技术工作小组(WHATWG),同时也宣布第二个草案——Web Applications 1.0。后来这两种规范合并形成了HTML5。2007年,HTML5获得W3C接纳,并成立了新的HTML工作团队。2008年1月22日,第一份公开工作草案发布。尽管HTML5已经在网络开发人员中非常出名,但它成为主流媒体的话题是在2010年的4月。当时苹果公司的CEO乔布斯发表一篇题为《对Flash的思考》的文章,指出随着HTML5的发展,观看视频或其它内容时,Adobe Flash将不再是必须的。这引发了开发人员间的争论,包括HTML5虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及HTML5和Flash间的功能差异。 简单来说,HTML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求。从广义上来说,HTML5实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少网页浏览器对于需要插件的丰富性网络应用服务(Plug-in-Based Rich Internet Application,RIA),例如:Adobe Flash、Microsoft Silverlight与OracleJavaFX的需求,并且提供更多能有效加强网络应用的标准集。
HTML5作为Flash的替代者,它技术结合了HTML4.01 的相关标准并革新,符合现代网络发展要求,在2008年正式发布。HTML5由不同的技術构成,其在互联网中得到了非常广泛的应用,提供更多增强网络应用的标准机制。与传统的技术相比,HTML5 的语法特征更加明显,并且结合了 SVG的内容。这些内容在网页中使用可以更加便捷地处理多媒体内容,而且 HTML5中还结合了其他元素,对原有的功能进行调整和修改,进行标准化工作,HTML5 在2012年已形成了稳定的版本。
利益同盟,促使HTML5发展
2015年,微软宣布鼓励网站停止使用该公司的Silverlight技术,转而使用更新的、基于HTML5 技术的媒体播放系统。
2015年1月,YouTube彻底抛弃了Flash,实现向HTML5的全面过渡。
2015年7月23日,Twitch宣布将逐渐放弃基于Flash的直播技术,全面转向HTML5。
2016年2月9日,Google宣布自7月后,将不再接受Flash展示广告,所有广告必须100%使用HTML 5格式。
虽然互联网巨头都在维护自家的利益而明争暗斗,但是大家还是希望有一个标准化的产物。自1999年12月发布的HTML4.01后,后继的HTML5和其它标准被束之高阁。HTML5一直没有出现,业界没有一个统一的标准,而互联网又在不断地快速发展,这才成就了Flash的如日中天。而从2004年开始,人们就在为HTML5而努力。在HTML5中,Flash几乎所有的功能都可以实现,与Flash不同的是,HTML5是一个开放的标准,而Flash是Adobe公司的。无论是苹果,还是谷歌、微软都不希望被一家公司所左右,它们更喜欢一个开放的标准。当微软、苹果、谷歌三大巨头的浏览器都支持HTML5的时候,这个标准事实上就建立起来了。随之,各个网站都开始从Flash转向HTML5,Flash也不仅仅是在移动市场没落的问题,而是全面走向边缘化。取而代之的则是HTML5,终于以挑战者的姿态,在互联网发展的潮流中站稳了脚跟。
很多初次认识HTML5的人可能会非常惊讶,HTML5规范早在数年前就开始制定了,但是直到2014年10月才有了第一版标准语言规范。HTML 5 诞生多年以来,受到多数主流浏览器的支持。如今尽管HTML5规范草案已经非常完善,但何时能真正成为标准却仍然不确定。接下来,这门互联网编程语言也将走上更加规范化的道路。关于如何改进浏览器和改进Web世界,不管是浏览器供应商还是其他人都有太多的想法,而这些都要汇聚到HTML5规范中并达成一致,这需要时间。
在2016年的时候,W3C组织就宣布,正在编写HTML 5.1的语言标准规范,预计在同年的6月中旬完成初稿,9月份正式发布。W3C表示,相比于HTML 5,HTML 5.1不仅功能更强,而且更加友善,执行效率更高。未来W3C还计划和谷歌一起建立一个专门针对HTML 5的扩展插件库,方便开发者发布自己制作的浏览器插件。
到了2017年12月14日,W3C 万维网联盟宣布HTML5.2 已准备就绪,并且已经成为 W3C 推荐标准。HTML5.2 是 HTML 语言第五大版本的第二个小版本。该版本添加了可以帮助 Web 应用程序开发者的新特征,同时基于开发者的普遍使用习惯进一步引入了新的元素,重点关注定义清晰的一致性准则,以确保 Web 应用和内容在不同用户代理(浏览器)中的互操作性。
HTML5.2规范在iframe标签上新增了一些重要属性用于支持新的JavaScript API。其添加了allowpaymentrequest属性以允许iframe控制支付请求API的访问。这也意味着嵌入了第三方内容的页面能够控制该第三方内容是否可向用户请求获取支付凭证,进而让可嵌入的购物车工具可以利用新的API。来自Forrester的Brendan Miller阐述了支付请求API所带来的好处,他说:“该新标准让开发者可以创建一个简化的结帐页面,用户可以重复使用保存的付款和地址信息来加快结账速度,并减少错误输入。”
HTML5.2规范还增加了allowpresentation属性,该属性允许iframe可以访问演示API来让页面嵌入可以访问投影仪、监控器或网络连接电视等设备的第三方演示。在HTML5.2规范中也越来越重视安全性。其中集成了来自内容安全策略3级草案中的多项建议。link标签正式支持nonce属性、内容安全策略可以事先阻止style和script标签的内联行为。这些工具使开发者能够更灵活地控制其Web应用程序允许加载的资源,从而减少跨站脚本攻击可能带来的破坏。开发人员可以通过MDM上的指南和文档了解如何使用内容安全策略来保护自己的应用程序。
此外,HTML5.2还提供了对ES6 JavaScript模块的官方支持。大多数浏览器已经实现了这一功能。从Safari 10.1、Chrome 61、Edge 16开始都已提供支持,Firefox则需要打开特定的功能开关。HTML5.2是对HTML5规范的第二次重大修订,它遵循了2014年W3C承诺的大致每年发布一次规范修订。这一修订版本中还包括大量的清理和错误修复、主要的安全更新、其他委员会的进展整合以及其他用以保持规范符合最新网络广泛使用方式的更新。 2018年10月18日,W3C发布了最新的HTML5.3版本。在此版本中,将继续引入新功能以帮助Web应用开发者,并且在基于上一版本的基础上继续引入新元素,同时也努力改善交互性。
带动了直播产业的发展
如今,各类视频直播网站层出不穷。PC、手机端应有尽有,这不仅与互联网的发展和用户的需求有关,与HTML技术的发展也有很大的关系。各大视频网站花费巨资引入视频资源,证明网络视频市场是一块很大的蛋糕。如今正兴起的直播平台,让原本竞争激烈的视频网站战场更是风起云涌。
现如今的笔记本电脑之所以越做越薄,越来越轻,主要考虑的是便携性。不过,过于追求轻薄就会损失某些方面的性能,比如显示方面。很多拥有苹果笔记本的用户在基于Flash视频网站观看视频时,不得不忍受风扇狂转的痛苦折磨。以某视频网站为例,视频播放已全面转向HTML5,不论是点播还是直播。再加上最大的视频直播平台之一Twitch也宣布转向HTML5技术,终于让国内的视频网站稍微有了压力。为什么之前国内各网站仍坚守Flash阵地而不去拥抱HTLM5,其中必然有商业利益上的考量,但或许也有技术上的困难。
早在6年前,YouTube就开始尝试HTML5技术,当时HTML5缺乏对自适应码率技术的支持,无法更快地缓冲视频。如今,借助于ABR技术减少缓冲,VP9更高效的编解码技术,WebRTC的视频直播技术和全屏幕API支持,YouTube终于可以全面转向HTML5。
在技术层面上,视频无论是点播还是直播,大致有两种协议可选,一种是由Adobe公司开发的RTMP(Real Time Messaging Protocol)和由苹果公司开发HLS(HTTPLive Streaming)。RTMP的优点是全球大约90%以上的电脑都安装了Flash,Chrome浏览器更是内置Flash。可以不用下载,直接观看网站服务器上的视频。支持点播,也支持直播。HLS的优点是可变码率,通过HTTP Server分发节目,同时提供合适的缓存。
目前国内大多数视频网站在实现视频点播或直播时,PC端使用Flash RTMP技术,移动端因为苹果设备的优势,一般使用HTML5 HLS技术。而HTML5的video标签只支持MP4、webM、ogg三种格式。H.264已经占领视频市场的80%。如果移动应用视频,建议编译成H.264格式,有更高的压缩比、高画质。webM作为谷歌力推的视频标准,虽然免费,但在硬件解码器上存在短板。HLS协议基于HTTP,一个提供HLS的服务器需要做两件事:
1、编码:以 H.263 格式对图像进行编码,以 MP3 或者 HE-AAC 对声音进行编码,最终打包到 MPEG-2 TS(Transport Stream)容器之中。
2、分割:把编码好的 TS 文件等长切分成后缀为 ts 的小文件,并生成一个 .m3u8 的纯文本索引文件。
目前,大部分浏览器都是使用的m3u8文件。m3u8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。播放器按顺序逐个播放,全部放完再请求一下m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的m3u8和一堆小的 ts 文件组成。
求一下m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的m3u8和一堆小的 ts 文件组成。
1.稳定性。Flash最大的问题就是容易崩溃,经常会让浏览器一起闪退、卡死等问题。而HTML5利用标签和JavaScript来播放视频,一般情况下,不会出现浏览器崩溃的情况。
2.开放性。HTML5和Android一样都是开源的,开发者们可以根据自身喜好去进行个性化定制。Fl ash上文也提到过,它的控制权在Adobe手中。
3.跨平台。HTML5可以进行跨平台使用,例如开发一款游戏,你可以轻松移植到UC的开放平台、Opera的游戏中心、FaceBook应用平台,甚至可以通过封装技术发放到苹果的App Store或Google Play上。
4.自适应网页。凡是使用HTML5制作的网页都可以根据设备屏幕的大小,自动调整布局。
从现阶段来看,如果要说Flash对我们会产生什么影响,如果你没有玩诸如4399这类网页Flash小游戏的需求,那么对你几乎不会产生影响。
国内部分视频网站投向HTML5怀抱
前面我们讲过,谷歌旗下的YouTube和亚马逊旗下的Twitch都开始转向HTML5。其实国内也有部分网站开始在投向HTML5的怀抱,虽然表面风平浪静,但国内主流视频网站已经开始支持HTML5播放。国内游戏直播平台虎牙直播就已经开始全面启用HTML 5实现Web端的视频直播,成为国内首家全面启用HTML 5直播技术的平台。
据介绍,启用HTML 5技术后的虎牙直播,在视频加载的过程中不仅能够做到视频秒出,更降低了视频延迟,与Flash相比将给用户带来更好的直播互动体验。业内人士分析,虎牙此举或将引发直播平台共振,未来HTML 5技术或将加速取代Flash成为业界新趋势和新标准。
写在最后
Flash已成回忆,HTML5未来可期
自1996年诞生的Flash用了10年的时间登上巅峰,然后又走了10年的下坡路,“生命”的终点将定格在2020年12月31日。这其实就是互联网时代的一个缩影,新技术淘汰落后技术。虽然现在看来它已经无法胜任我们的需求,但我们仍感谢它曾经带给了我们很多美好的回忆。那么现如今Flash还有存在的必要吗?我们从前面提到的Flash中国特供版就可以看出的确有需求,至少Adobe是这样认为的。其中为了广告主是一部分,另外一部分还有部分网课网站几乎都是基于Flash的,我們预测,Flash与HTML5将会在市场上共同存活很长一段时间。
在iOS、Android、Windows这三大系统中,我们要通过一些APP购物、浏览网页,需要HTML5技术为网页提供支持。而在此之前,各大网站绝大部分都还是使用的Flash技术。不过,前不久Adobe正式宣布将于2020年12月31日终止支持Flash。在此之后,Adobe将不会发布Flash的任何更新与安全补丁。此外,Adobe还将从官方网站中删除Flash Player早期版本的所有存档,并阻止基于Flash的内容运行。这也意味着,Flash正式宣告死亡。此外,微软也宣布将于今年年底结束对 Edge/IE 11上的Adobe Flash Player支持。那么,作为曾经互联网霸主地位的Flash,为什么如今不得不走向生命的终点呢?
什么是Flash?
对于很多90后和00后来说,可能还不清楚Flash是什么。Flash其实是一个交互式矢量图以及Web的标准,诞生于90年代初,具备体积小、成本低、制作快的优点。在光纤还没普及的2004年左右引领了视频流媒体行业。Flash一直都是线上媒体内容的主要载体,绝大多数网页的动画,包括曾经风靡一时的“4399” 小游戏等,都要依靠Flash实现。Fl ash也支持高品质的mp3音频流、文字输入字段、交互式接口等等很多东西,最新版本可以观看所有的Flash格式。
Flash的诞生
说到Flash就不得不提到一个人——乔纳森·盖伊,就是这个人缔造了Flash。还是孩童的乔纳森·盖伊就对建筑表现出特别的喜好,并且幻想自己长大后能成为一名建筑工程师,他整日坐在桌前为设计一间小屋而写写画画。由于乔纳森·盖伊不满足局限于纸上的设计,他开始在自家屋后盖起了真正的小屋和车库。因为要打造油漆房,于是他买了一台苹果电脑,并学着使用古老的BASIC语言进行编程。突然一天,他对着电脑屏幕发呆,脑中突然产生了一个想法,如何“让电脑把人的设计思维以图像等形式表现”?于是传奇就从这里开始了。1993年,乔纳森·盖伊成立了自己的公司FutureWave Software,并致力于图像的创作研究。第二年,乔纳森·盖伊决定将绘图软件转移至矢量绘图上。后又根据用户意见,投向了动画软件的制作。1995年,互联网Web应用兴起,人们对于在互联网上获取图像和动画的需求变得强烈。盖伊认为属于他的时机到来。于是,他采用当时成熟的Java嵌入式播放器作为动画播放的第一方案。由于Java速度太慢,动画效果并不令人满意。因此乔纳森·盖伊再次投入开发和研究工作,试图找到更方便制作动画的方案。最终,FutureSplash Animator发行,也就是Flash的前身。1996年11月,Macromedia收购FutureWave公司,并将其改名为Macromedia Flash 1.0。
Flash的成长
时间来到1998年5月,Macromedia发布了Flash 3.0版本,该版本支持影片剪辑、Java插件、透明度、独立播放器。第二年年6月,Macromedia又发布了Flash 4.0版本,这一版本支持变量、文本输入框、增强的Action、流媒体。并且从4.0版本开始,Flash有了自己专用的播放器,称为Flash Player,原本的Shockwave播放器仅供Director使用。不过为了向下兼容,Flash制作的动画仍旧沿用“.swf”作为文件名。到了2000年8月,Macromedia推出了全新的Flash 5.0版本。该版本支持XML和Smart Clip。时过两年,在2002年3月,Flash推出了MX版本,這一版本开始支持对外部JPG图像和MP3音频的调入,并提供了对HTML文本更为精确的控制,改进了swf 文件的压缩技术。2003年9月,Fl ash MX 2004版本发布,该版本支持文本抗锯齿、ActionScript2.0、增强的流媒体视频行为。到了2005年9月,Flash 8.0发布,增强了对视频的支持,可将其打包成flv文件。同年,Adobe公司耗资34亿美元收购了Macromedia公司,而Flash自然也正式成为Adobe公司旗下的产品。也正是Adobe公司的收购,让Flash开始迎来了一生中的巅峰时期。
Flash的壮大
Flash的壮大,除了与它自身相关外,还与赶上了好时代有很大的关系。在2000年左右,国际互联网已经正逐渐走向千家万户,不过当时的互联网发达程度还不高,人们所看到的网页内容基本都是以静态为主。同时,由于带宽的限制,那个时期的互联网图片也并不多,更别说视频内容,在当时也主要以文字为主,即便是有图片,在使用时也需要注意尺寸大小,如果要打开尺寸大一些的图片还需要等上一段时间,而如果是要下载一首2~3MB的MP3格式音乐,则需要等待几十分钟。至于视频,哪怕是看一段清晰度很差的视频还需要等待加载几十分钟,并且还需要先安装第三方插件才能正常观看。也正是由于当时的互联网技术不高,如何提高人们在观看图片、视频的体验,这也成就Flash的发展壮大。
由于当时的浏览器还不支持CSS(层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言)技术,而Flash的优点是可以在浏览器中播放动画。Flash当时的技术特点是超高压缩比的文件格式,矢量绘图、边下边播。正是在这样的背景下,Flash开始成为一枝独秀,并且因为Flash是矢量动画,它的优点是空间占用小,而另一个优点则是可以无限放大且不失真。空间占用小,因此用户打开快,可以在互联网上动起来。可以无限放大,因此用户可以看到清晰的动画。于是Flash开始普及起来,几乎每台电脑都要安装Flash插件。同时,网站也找到了好的广告载体,当年的网站站长也大部分都是依赖广告生存,而体积小、效果炫的Flash似乎天生就是为广告准备的,于是可以看到任何一个网站都是大面积的Flash广告栏。Flash正式兴起,闪客(指做Flash的人)成为时尚。可以说,当时的互联网时代与Flash是相互影响,相互壮大,谁都离不开谁。 互联网的发展是相当迅速的,并且网络带宽也在逐步提高,当有了更高的带宽,人们对图片、视频的需求也在增加。当然,Flash也看到了互联网发展的势头,也开始顺势推出了更多的更新版本。比如从2002年的Flash MX(Flash Player 6)开始,Macromedia当时还没有被收购,就为Flash加入了支持播放视频的功能。当时可以在SWF格式的文件中嵌入视频数据,并依然支持流播放。在2003年的Flash MX 2004(Flash Player 7)开始把视频单独作为一种文件格式提出来,这就是大名鼎鼎的FLV格式。Flash的FLV容器格式和VP6和VP7视频压缩算法的横空出世,这也引爆了视频流媒体整个行业。
到了2007年的时候,也就是Flash 9 alpha阶段,此时Adobe也将9 alpha 改名为FlashCS3 Professional,这一版本开始支持ActionScript3.0和XML,运行效率有了大幅提升。此外,随着Flash交互技术的进步,互联网上各种基于Flash网页的游戏也开始兴起。比较知名的像4399小游戏就是在那个时期开始火爆互联网的。在2008年的时候开始蓬勃发展,加之后来社交游戏的浪潮席卷全球,Flash再次成为网页游戏的标配,很多之前在客户端都做不到的绚丽效果都能展现在web中,大量公司依赖Flash开发的产品赚的盆满钵满。各种Flash的网页游戏兴起,很大程度替代了以前的安装版小游戏,打开网页就能玩游戏成为当时很多人的娱乐方式。于是,在一段时间内,Flash达到巅峰,似乎整个互联网离不开Flash。到了2010年,随着Adobe Flash CS5版本的推出,也催生了一大批知名的网页游戏,比如“人人农场”“QQ农场”等游戏,都是基于Flash开发的经典。
Flash的衰败
可能Adobe公司也没有想到,在2007年的时候苹果公司发布的iPhone和2008年谷歌发布的Android系统,成为Flash走向衰败的导火索。随着Android和iPhone智能手机的飞速发展,全世界进入了移动互联网时代,Flash的悲剧也开始上演。2008年~2010年期间,是Flash技术在PC页游领域快速崛起后如日中天的几年,然而这个时间也是苹果公司iOS生态体系快速发展的时间。苹果公司的赚钱能力远超我们的想象,不论是设计还是生态,在当时都是独树一帜。由于iOS系统与Windows系统并不想通,所以想要在移动端同样支持Flash是非常困难的,并且由于Flash CS3的功能更强大,语法升级、类库升级、虚拟机升级之后,导致内存占用过大,毕竟iPhone 2G和3G的内存容量也仅为128MB。此外,Flash CS3的AVM2虚拟机 ActionScript3.0和Java语言,语言和性能都远远落后于Java和C#虚拟机,导致CPU功耗也比较高。因此移动端无论对浏览器还是对本地应用,Fl ash都显得力不从心。
2007年6月,苹果公司发布了第一代iPhone,人们发现iPhone与Adobe Flash播放器并不兼容。当时Flash已经得到成功推广,几乎全球所有主要手机厂商都付费从Adobe获得授权,将其用于普通手机、智能手机和其他手持设备。Adobe很希望苹果的iPhone也能用上Flash播放器,可乔布斯迟迟不表态。虽然用户们强烈呼吁苹果支持当时还在互联网世界处于统治地位的Flash,但是准备自己管理内容向用户收费的乔布斯不为所动,之后乔布斯在2010年4月发布了一封公开信——《关于Flash的说明》,解释了iPhone为什么不支持Flash。简单说就是三点:“第一Fl ash耗电量大、第二它运行缓慢、第三它存在安全问题”。首先是Flash的功能太多,效率太低。后期的Flash,可以解码H.264,可以做3D渲染,能播放7.1声道环绕声,支持游戏手柄,功能强大却太过臃肿。作为手机页面的话,不仅运行缓慢,而且非常耗电。当然,苹果选择不支持Flash,可以让更多人为iOS创造软件、游戏,苹果也能保持对软件、应用的控制。Flash以插件身份运行,权限很高,能够运行非常复杂的代码。可以轻易打开本地文件,甚至运行程序来关闭、重启电脑。2015年安全机构NNT Group公布的十大最危险的安全漏洞都是来自于Flash。Flash可以跨平台,这意味着一旦Flash出安全问题,多个浏览器、系统都可能被侵入。
此外,HTML5效率更高,安全性更好,还不需要安装插件。微软、苹果公司、谷歌,甚至连Adobe都支持HTML5。乔布斯还提到:Flash是为PC和鼠标设计的,并不适合低功耗、触控屏的移动设备。而且,重点是Adobe拥有Flash 100%的技术产权,HTML5则是一种开放的网络标准,不存在商业授权问题。
在当时由于苹果公司已经具有非常高的影响力,乔布斯的公开信对Flash的打击几乎是致命性的。后来,Adobe另辟蹊径,2011年推出的Adobe Flash CS5.5 Professional版本支持iOS项目开发,不过受限于语言和虚拟机,无论CPU效率还是内存,都沒法和原生相比。而移动端系统对内存管理非常严格,加上Flash程序员整体内存控制意识较弱,Flash始终没有成为主流。从此以后Flash开始不再将移动领域作为重点。然而移动互联网的快速增长,导致全球PC大幅萎缩,Flash自然也开始走下坡路。
正所谓,时势造英雄。21世纪初全球互联网的发展成就了Flash,让它成为了一代王者。不过随着移动互联网的兴起,HTML5技术的浏览器带来了不可替代的体验。Flash在移动时代的失败,其实并不是Flash的技术没有HTML5先进,而是外部环境发生了改变。加上苹果公司拒绝Flash进入iOS平台,而这归根结底是利益的保护。因为苹果公司从一开始就建立了App Store的封闭分发生态策略,不可能允许一个第三方插件进入自己的生态领域?这无异于引狼入室。此外,除了外部环境的原因。Flash的没落很大一部分是其本身造成的。Flash在AIR支持GPU和Stage3D之前都是CPU渲染的,而没有在底层改成GPU架构,作为普通用户的大多人不懂GPU,CPU渲染肯定比GPU慢且费电。这个体验相信每一位用过Macbook的用户都有,风扇转速高和耗电非常明显,我们都知道iPhone是不可以换电池的,理论上在底层把Flash架构改成GPU优先会比CPU优先迅速和省电很多,但Adobe并没有这么做。 Flash生命的终结
其实早在2017年7月的时候,Adobe就宣布将在2020年12月31日(“终止日期”)之后停止分发和更新Flash Player。Adobe与包括苹果、Facebook、谷歌、微软、Mozilla在内的多个技术合作伙伴合作发布了此公告,这些合作伙伴发布了补充公告,其中详细介绍了Flash Player终止服务对使用其特定的操作系统环境或浏览器功能的开发人员,企业和消费者的意义。那么为什么Adobe为什么决定终止Flash Player,并选择2020年结束日期?多年来,诸如HTML5、WebGL和WebAssembly之类的开放标准一直在不断成熟,并可以作为Flash内容的可行替代方案。此外,主要的浏览器供应商正在将这些开放标准集成到他们的浏览器中,并且淘汰了大多数其他插件(例如Adobe Flash Player)。2017年,Adobe在提前三年通知的情况下宣布了业务决策,Adobe认为这将留出足够的时间,为开发人员、设计人员、企业和其他各方可以根据需要将现有Flash内容迁移到新的开放标准上。那么Adobe是否会在2020年之后提供AdobeFlash Player的早期版本供下载?据官方回复是不会的。Adobe将从其站点删除Flash Player下载页面,并且在EOL日期之后,将禁止基于Flash的内容在Adobe FlashPlayer中运行。如果用户发现可以在第三方网站上下载Flash Player,可以使用它吗?答案同样是不可以,这些版本的Flash Player未经Adobe授权,客户不应使用未经授权的Flash Player版本,未经授权的下载是恶意软件和病毒的常见来源。Adobe对未经授权的Flash Player版本不承担任何责任,用户对使用此类版本的风险完全由自己承担。此外,在技术支持终止后,Adobe是否会为Flash Player提供安全更新?当EOL日期之后,Adobe将不会发布FlashPlayer更新或安全补丁。Adobe建议所有用户在EOL日期之前卸载Flash Player。Adobe将在今年晚些时候提示用户卸载其计算机上的FlashPlayer,并且在EOL日期之后,将禁止基于Flash的内容在Adobe Flash Player中运行。
国内将提供特供版支持
Adobe之前在新浪微博上表示,Adobe将会继续与重橙网络合作并支持其在中国大陆地区对Flash Player的独家发行与维护,该合作仅限中国大陆地区。换言之,Flash Player特别为中国制作了一个“特供版”,这到底是个怎么样的存在?值不值得继续使用?
由于国内的互联网生态对Flash的依赖是比较大的,目前国内仍有不少老旧的网站需要借助Flash来实现办公、登录、上传数据等功能。结合这些问题,Adobe和重橙网络合作,推出中国特供版的Flash,并继续为国内用户服务。
一般来说,“特供”都意味着更好,不过事实并非如此。早在2018年的时候,在Adobe的用户协议中写到,Flash Player使用过程中重橙网络可能会搜集用户的上网信息,并可以在合理范围内将信息披露给第三方,如果用户隐私数据安全受到威胁也不用承担责任。消息一经曝光就遭到了网上的一致口诛笔伐,如此恶劣的霸王条款竟然出现在了一家全球知名公司的用户协议中,实在让人愤慨。此外,在协议中反复提到的“重橙网络”正是Adobe Flash Player国内特供版的提供商。在事情败露之后,重橙网络紧急修改了用户协议,改为“在不涉及侵犯用户个人隐私的前提下, 程序可能会记录用户如何使用本程序的信息和用户使用本程序的相关数据”,但这时已经很难再取得用户的信任了。 之所以选择为中国提供特供版支持,Adobe表示,这是为了支持中国大陆地区市场特有的发行渠道、用户习惯和企业、开发者和游戏社区。不过,这到底是为了广告主还是为了用户,似乎还不一定。我们注意到,在Adobe的官方微博下,出现了大量负面评论,不少网友纷纷表示并不欢迎Flash中国特供版,还有人将其斥为“流氓软件”。出现这样的情况其实并不意外,因为从2018年重橙网络代理Flash之后,中国特供版的Flash就已经带上了一些强硬的推广意思。各种网页广告、弹出式广告层出不穷,让很多人不胜其烦。比如当你更新完Flash后,就会弹出一个推广网页,其中的内容基本都是一些以充值为主的网页游戏。此外,Flash之前还出现过捆绑2144游戏中心、强行运行FlashHelperService进程之类的事件,这些做法与流氓软件无异。在这样的情况下,人们自然会对中国特供版Flash产生不信任。另一方面,Flash本身作为落后的互联网产物,用特供版来苟延残喘,其实并不是为了用户的使用体验,而是为了在国内的众多广告主。毕竟彻底停止Flash服务,必将损失很大一笔广告收益。
新晋的王者HTML5
网页超文本技术工作小组(WHATWG)于2004年开始制定新标准,当时HTML 4.01自2000年以来从未更新,同时万维网联盟(W3C)正在将未來的发展重点放在XHTML2.0上。2009年,W3C允许XHTML 2.0工作组章程结束,并且决定不再续订,同时W3C与WHATWG合作,共同为发展HTML5而努力。2004年6月,Mozilla基金会和Opera软件公司在万维网联盟(W3C)所主办的研讨会上提出了一份立场文档,该文档的重点是开发与现有浏览器向后兼容的技术,包括Web Forms 2.0最初草案规范。研讨会最后以8票赞成和14票反对,否决继续对HTML的开发工作。这也引起一些人的不满,在研讨会之后,立即成立了网页超文本技术工作小组(WHATWG),同时也宣布第二个草案——Web Applications 1.0。后来这两种规范合并形成了HTML5。2007年,HTML5获得W3C接纳,并成立了新的HTML工作团队。2008年1月22日,第一份公开工作草案发布。尽管HTML5已经在网络开发人员中非常出名,但它成为主流媒体的话题是在2010年的4月。当时苹果公司的CEO乔布斯发表一篇题为《对Flash的思考》的文章,指出随着HTML5的发展,观看视频或其它内容时,Adobe Flash将不再是必须的。这引发了开发人员间的争论,包括HTML5虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及HTML5和Flash间的功能差异。 简单来说,HTML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求。从广义上来说,HTML5实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少网页浏览器对于需要插件的丰富性网络应用服务(Plug-in-Based Rich Internet Application,RIA),例如:Adobe Flash、Microsoft Silverlight与OracleJavaFX的需求,并且提供更多能有效加强网络应用的标准集。
HTML5作为Flash的替代者,它技术结合了HTML4.01 的相关标准并革新,符合现代网络发展要求,在2008年正式发布。HTML5由不同的技術构成,其在互联网中得到了非常广泛的应用,提供更多增强网络应用的标准机制。与传统的技术相比,HTML5 的语法特征更加明显,并且结合了 SVG的内容。这些内容在网页中使用可以更加便捷地处理多媒体内容,而且 HTML5中还结合了其他元素,对原有的功能进行调整和修改,进行标准化工作,HTML5 在2012年已形成了稳定的版本。
利益同盟,促使HTML5发展
2015年,微软宣布鼓励网站停止使用该公司的Silverlight技术,转而使用更新的、基于HTML5 技术的媒体播放系统。
2015年1月,YouTube彻底抛弃了Flash,实现向HTML5的全面过渡。
2015年7月23日,Twitch宣布将逐渐放弃基于Flash的直播技术,全面转向HTML5。
2016年2月9日,Google宣布自7月后,将不再接受Flash展示广告,所有广告必须100%使用HTML 5格式。
虽然互联网巨头都在维护自家的利益而明争暗斗,但是大家还是希望有一个标准化的产物。自1999年12月发布的HTML4.01后,后继的HTML5和其它标准被束之高阁。HTML5一直没有出现,业界没有一个统一的标准,而互联网又在不断地快速发展,这才成就了Flash的如日中天。而从2004年开始,人们就在为HTML5而努力。在HTML5中,Flash几乎所有的功能都可以实现,与Flash不同的是,HTML5是一个开放的标准,而Flash是Adobe公司的。无论是苹果,还是谷歌、微软都不希望被一家公司所左右,它们更喜欢一个开放的标准。当微软、苹果、谷歌三大巨头的浏览器都支持HTML5的时候,这个标准事实上就建立起来了。随之,各个网站都开始从Flash转向HTML5,Flash也不仅仅是在移动市场没落的问题,而是全面走向边缘化。取而代之的则是HTML5,终于以挑战者的姿态,在互联网发展的潮流中站稳了脚跟。
很多初次认识HTML5的人可能会非常惊讶,HTML5规范早在数年前就开始制定了,但是直到2014年10月才有了第一版标准语言规范。HTML 5 诞生多年以来,受到多数主流浏览器的支持。如今尽管HTML5规范草案已经非常完善,但何时能真正成为标准却仍然不确定。接下来,这门互联网编程语言也将走上更加规范化的道路。关于如何改进浏览器和改进Web世界,不管是浏览器供应商还是其他人都有太多的想法,而这些都要汇聚到HTML5规范中并达成一致,这需要时间。
在2016年的时候,W3C组织就宣布,正在编写HTML 5.1的语言标准规范,预计在同年的6月中旬完成初稿,9月份正式发布。W3C表示,相比于HTML 5,HTML 5.1不仅功能更强,而且更加友善,执行效率更高。未来W3C还计划和谷歌一起建立一个专门针对HTML 5的扩展插件库,方便开发者发布自己制作的浏览器插件。
到了2017年12月14日,W3C 万维网联盟宣布HTML5.2 已准备就绪,并且已经成为 W3C 推荐标准。HTML5.2 是 HTML 语言第五大版本的第二个小版本。该版本添加了可以帮助 Web 应用程序开发者的新特征,同时基于开发者的普遍使用习惯进一步引入了新的元素,重点关注定义清晰的一致性准则,以确保 Web 应用和内容在不同用户代理(浏览器)中的互操作性。
HTML5.2规范在iframe标签上新增了一些重要属性用于支持新的JavaScript API。其添加了allowpaymentrequest属性以允许iframe控制支付请求API的访问。这也意味着嵌入了第三方内容的页面能够控制该第三方内容是否可向用户请求获取支付凭证,进而让可嵌入的购物车工具可以利用新的API。来自Forrester的Brendan Miller阐述了支付请求API所带来的好处,他说:“该新标准让开发者可以创建一个简化的结帐页面,用户可以重复使用保存的付款和地址信息来加快结账速度,并减少错误输入。”
HTML5.2规范还增加了allowpresentation属性,该属性允许iframe可以访问演示API来让页面嵌入可以访问投影仪、监控器或网络连接电视等设备的第三方演示。在HTML5.2规范中也越来越重视安全性。其中集成了来自内容安全策略3级草案中的多项建议。link标签正式支持nonce属性、内容安全策略可以事先阻止style和script标签的内联行为。这些工具使开发者能够更灵活地控制其Web应用程序允许加载的资源,从而减少跨站脚本攻击可能带来的破坏。开发人员可以通过MDM上的指南和文档了解如何使用内容安全策略来保护自己的应用程序。
此外,HTML5.2还提供了对ES6 JavaScript模块的官方支持。大多数浏览器已经实现了这一功能。从Safari 10.1、Chrome 61、Edge 16开始都已提供支持,Firefox则需要打开特定的功能开关。HTML5.2是对HTML5规范的第二次重大修订,它遵循了2014年W3C承诺的大致每年发布一次规范修订。这一修订版本中还包括大量的清理和错误修复、主要的安全更新、其他委员会的进展整合以及其他用以保持规范符合最新网络广泛使用方式的更新。 2018年10月18日,W3C发布了最新的HTML5.3版本。在此版本中,将继续引入新功能以帮助Web应用开发者,并且在基于上一版本的基础上继续引入新元素,同时也努力改善交互性。
带动了直播产业的发展
如今,各类视频直播网站层出不穷。PC、手机端应有尽有,这不仅与互联网的发展和用户的需求有关,与HTML技术的发展也有很大的关系。各大视频网站花费巨资引入视频资源,证明网络视频市场是一块很大的蛋糕。如今正兴起的直播平台,让原本竞争激烈的视频网站战场更是风起云涌。
现如今的笔记本电脑之所以越做越薄,越来越轻,主要考虑的是便携性。不过,过于追求轻薄就会损失某些方面的性能,比如显示方面。很多拥有苹果笔记本的用户在基于Flash视频网站观看视频时,不得不忍受风扇狂转的痛苦折磨。以某视频网站为例,视频播放已全面转向HTML5,不论是点播还是直播。再加上最大的视频直播平台之一Twitch也宣布转向HTML5技术,终于让国内的视频网站稍微有了压力。为什么之前国内各网站仍坚守Flash阵地而不去拥抱HTLM5,其中必然有商业利益上的考量,但或许也有技术上的困难。
早在6年前,YouTube就开始尝试HTML5技术,当时HTML5缺乏对自适应码率技术的支持,无法更快地缓冲视频。如今,借助于ABR技术减少缓冲,VP9更高效的编解码技术,WebRTC的视频直播技术和全屏幕API支持,YouTube终于可以全面转向HTML5。
在技术层面上,视频无论是点播还是直播,大致有两种协议可选,一种是由Adobe公司开发的RTMP(Real Time Messaging Protocol)和由苹果公司开发HLS(HTTPLive Streaming)。RTMP的优点是全球大约90%以上的电脑都安装了Flash,Chrome浏览器更是内置Flash。可以不用下载,直接观看网站服务器上的视频。支持点播,也支持直播。HLS的优点是可变码率,通过HTTP Server分发节目,同时提供合适的缓存。
目前国内大多数视频网站在实现视频点播或直播时,PC端使用Flash RTMP技术,移动端因为苹果设备的优势,一般使用HTML5 HLS技术。而HTML5的video标签只支持MP4、webM、ogg三种格式。H.264已经占领视频市场的80%。如果移动应用视频,建议编译成H.264格式,有更高的压缩比、高画质。webM作为谷歌力推的视频标准,虽然免费,但在硬件解码器上存在短板。HLS协议基于HTTP,一个提供HLS的服务器需要做两件事:
1、编码:以 H.263 格式对图像进行编码,以 MP3 或者 HE-AAC 对声音进行编码,最终打包到 MPEG-2 TS(Transport Stream)容器之中。
2、分割:把编码好的 TS 文件等长切分成后缀为 ts 的小文件,并生成一个 .m3u8 的纯文本索引文件。
目前,大部分浏览器都是使用的m3u8文件。m3u8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。播放器按顺序逐个播放,全部放完再请求一下m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的m3u8和一堆小的 ts 文件组成。
求一下m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的m3u8和一堆小的 ts 文件组成。
1.稳定性。Flash最大的问题就是容易崩溃,经常会让浏览器一起闪退、卡死等问题。而HTML5利用标签和JavaScript来播放视频,一般情况下,不会出现浏览器崩溃的情况。
2.开放性。HTML5和Android一样都是开源的,开发者们可以根据自身喜好去进行个性化定制。Fl ash上文也提到过,它的控制权在Adobe手中。
3.跨平台。HTML5可以进行跨平台使用,例如开发一款游戏,你可以轻松移植到UC的开放平台、Opera的游戏中心、FaceBook应用平台,甚至可以通过封装技术发放到苹果的App Store或Google Play上。
4.自适应网页。凡是使用HTML5制作的网页都可以根据设备屏幕的大小,自动调整布局。
从现阶段来看,如果要说Flash对我们会产生什么影响,如果你没有玩诸如4399这类网页Flash小游戏的需求,那么对你几乎不会产生影响。
国内部分视频网站投向HTML5怀抱
前面我们讲过,谷歌旗下的YouTube和亚马逊旗下的Twitch都开始转向HTML5。其实国内也有部分网站开始在投向HTML5的怀抱,虽然表面风平浪静,但国内主流视频网站已经开始支持HTML5播放。国内游戏直播平台虎牙直播就已经开始全面启用HTML 5实现Web端的视频直播,成为国内首家全面启用HTML 5直播技术的平台。
据介绍,启用HTML 5技术后的虎牙直播,在视频加载的过程中不仅能够做到视频秒出,更降低了视频延迟,与Flash相比将给用户带来更好的直播互动体验。业内人士分析,虎牙此举或将引发直播平台共振,未来HTML 5技术或将加速取代Flash成为业界新趋势和新标准。
写在最后
Flash已成回忆,HTML5未来可期
自1996年诞生的Flash用了10年的时间登上巅峰,然后又走了10年的下坡路,“生命”的终点将定格在2020年12月31日。这其实就是互联网时代的一个缩影,新技术淘汰落后技术。虽然现在看来它已经无法胜任我们的需求,但我们仍感谢它曾经带给了我们很多美好的回忆。那么现如今Flash还有存在的必要吗?我们从前面提到的Flash中国特供版就可以看出的确有需求,至少Adobe是这样认为的。其中为了广告主是一部分,另外一部分还有部分网课网站几乎都是基于Flash的,我們预测,Flash与HTML5将会在市场上共同存活很长一段时间。