写点什么

HTML5、H.264 及 Flash 综述

  • 2010-02-11
  • 本文字数:1926 字

    阅读完需:约 6 分钟

上周,InfoQ 报道了一篇新闻: YouTube 发布 HTML5 视频 Beta 版,使用 H.264 格式。紧接着, Vimeo 也发布了 HTML5 Beta ,同样使用了 H.264 作为视频 codec。

Mozilla 的开源布道者 Chris Blizzard 谈到了他们为何要坚持使用Ogg ,他用 GIF 这个专利解释了什么地方可能会出问题。GIF 专利(那时还是免费的)所涉及的图像格式成为了 Web 事实上的标准,随后其目标就变成了敲诈勒索(该专利在 2003 年和 2004 年过期了)。在那时,有人创建了免费的 PNG 格式以替代 GIF,现在 PNG 已经成为 Web 图象事实上的标准了。

H.264 的许可是由 MPEG-LA 发放的。Mozilla 工程部副总裁 Mike Shaver 说使用H.264 但却不支付协议费用是违法的。一开始可以延期支付在网络上使用H.264 所产生的协议费用,期限为今年底;最近又延长到了2015 年底;但协议费用依旧会影响到其他方面,受牵连的还有对H.264 进行解码的硬件(Apple 和Google 都为其产品购买了H.264 许可,而协议费用是有上限的,这就意味着他们所支付的协议费涵盖了其所有的产品)。

毋庸置疑,Apple 为H.264 所付出的要超过任何一家厂商(需要注意的是,H.264 也是蓝光规范的一部分),这是因为其生产的电脑带有H.264 硬件加速,同时还有众多的手持设备(iPhone、iPod Touch 以及新近发布的iPad)也要能显示H.264 视频。事实上,YouTube 之所以首先支持H.264 而不是Flash 的重要原因在于Apple 的坚持,因为Apple 为其iPhone YouTube 应用提供了低分辨率的H.264 视频流。

随着上周iPad 的发布,争论又到达了一个新的高度。细心的读者可能会发现纽约时报的Flash 插件图标显示为缺失;这并不令人感到惊讶,因为iPhone 还不支持Flash。乔布斯在最近的 Apple Town Hall 上公开表示 iPhone 与 iPad 绝不会支持 Flash:

Adobe 简直太懒了。他们本来可以做的更好,但却没有去做。他们做事情的方式与 Apple 完全不同,比如 Carbon。Apple 之所以不支持 Flash 是因为 Flash 的 bug 太多了。Mac 之所以会崩溃很大一部分原因是 Flash 造成的。没人会用 Flash,全世界都在向 HTML5 迈进。

Kevin Lynch 则说事实并非如此:

关于崩溃这个问题,我想说的是我们所发布的 Flash 绝不会带有已知的会导致崩溃的 bug,如果真的有这样的 bug 存在,Flash 也不会得到这么广泛的应用。 关于性能问题,在相同的硬件条件下,Windows 上的 Flash Player 一直以来都要比 Mac 上的快,另外我们也尽最大努力保证运行在不同操作系统上的 Flash 代码是一致的。在 Flash Player 10.1 中,我们转向了 CoreAnimation,它会进一步降低 CPU 的使用率,我们相信在其帮助下,Mac 上的图形渲染速度会超过 Windows。

视频渲染是我们非常重视的一个领域,比如说,1.8 Ghz Mac Mini 上的 Safari 播放 480p 视频时的 CPU 使用率为 34%,而 Windows 仅为 16%(同样的硬件条件下运行在 BootCamp 中)。在 Flash Player 10.1 中,我们对 Mac 上的视频渲染进行了优化,期望能降低一半的 CPU 使用率,这样 Mac 和 Windows 对视频渲染的速度就差不多了。

一些草根用户已经发起了请愿,请求为iPhone/iPad 增加Flash 支持,然而iPhone 在过去几年中即便是不支持Flash 也发展地非常好,鉴于这个原因,我觉得iPhone 还是不太可能增加Flash 支持。来自Daring Fireball 的John Gruber 问到谁能解决这个问题呢?现在我们已经将球踢到了Apple 那边。

TheFlashBlog 将几个知名的网站截图放到了站点上,比较了在使用 Flash 与不使用 Flash 的情况下这些网站都是什么样子的。在本应该显示 Flash 的地方,这些站点用 Photoshop 画了一些图占据了 Flash 插件的位置。然而,当用户浏览这些站点时(提供了针对移动设备的网页,使用了 H.264),他根本就看不到任何的提示信息。Kendell Geiner 在 iPhone 上也做了同样的试验,Hulu 和Farmville 根本不行,依然显示之前的提示信息。

在过去的两周内,有两个动力促使一些视频网站从Flash 迁移到HTML5:首先就是使用新技术(当然就是Apple iPad 了,但同样的情况依旧出现在Apple iPhone 上)的一些高端视频站点。然而未来到底哪种视频codec 会占据统治地位依旧是个未知数。可能出现的情况是一些站点会使用兼容于H.264 的视频,而免费站点(比如Wikimedia)依旧会使用Ogg。最终,服务于iPhone/iPad(到目前为止提供了最棒的移动浏览体验)的站点会推进H.264 的普及;视频将会代替Flash,而Google 的Chrome 浏览器则会蚕食掉Firefox 的优势(主要是因为Chrome 既能播放Ogg,也能播放H.264)。除非Firefox 事先安装好某些私有的视频codec 或者MPEGLA 为软件解码商提供一个通用的协议,否则围绕着最终的HTML5 视频codec 的争论将永远不会停止。

查看英文原文: HTML5, H.264 and Flash roundup

2010-02-11 01:372877
用户头像

发布了 88 篇内容, 共 271.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

深入浅出,Andorid 端屏幕采集技术实践(1),android面试题整理最新

android 程序员 移动开发

热修复设计之热修复原理(三),kotlin后端框架

android 程序员 移动开发

玩转Android事件分发机制,kotlinnative内存管理

android 程序员 移动开发

没有对象怎么面向对象编程呢?真让人头秃!,sharedpreferences跨进程

android 程序员 移动开发

深入理解Flutter动画原理,安卓framework

android 程序员 移动开发

熟悉Android打包编译的流程,超硬核

android 程序员 移动开发

深入学习-Gradle-自动化构建技术(五)Gradle-插件架构实现原理剖析-

android 程序员 移动开发

王者荣耀MVP-不不不,一个小例子彻底搞懂Android的-MVP到底是什么

android 程序员 移动开发

注意!关于怎么理解 onStart可见但不可交互,程序员千万不要小瞧了这个问题

android 程序员 移动开发

流媒体协议之WebRTC实现p2p视频通话(二),kotlin数组转集合

android 程序员 移动开发

浅谈ConcurrentHashMap,android游戏开发大全第二版代码

android 程序员 移动开发

深入Flutter TextField,android开发流程图

android 程序员 移动开发

深入探索 Android 内存优化(炼狱级别-上)(1),2021年最新Android面试点梳理

android 程序员 移动开发

深入浅出,Andorid 端屏幕采集技术实践,附大厂真题面经

android 程序员 移动开发

独立开发者为什么,不需要运营也能月薪几万,甚至几十万?

android 程序员 移动开发

深入探索 Android 网络优化(二、网络优化基础篇,移动开发框架

android 程序员 移动开发

深入解析Android的StateListDrawable,【工作感悟】

android 程序员 移动开发

热修复——Tinker的集成与使用,android系统工程师面试题

android 程序员 移动开发

深入Android系统 Binder-2-使用,阿里P7亲自讲解

android 程序员 移动开发

温故知新:深入理解Android插件化技术,Android高级插件化强化实战

android 程序员 移动开发

炸裂!万字长文拿下HTTP 我在鹅厂等你!,入职阿里啦

android 程序员 移动开发

浅谈Android网络通信的前世今生--网络基础,深度剖析原理

android 程序员 移动开发

深入RecyclerView学习—缓存机制,kotlin带参数的单例模式

android 程序员 移动开发

深入探索 Android 内存优化(炼狱级别-上),安卓消息分发机制

android 程序员 移动开发

炸裂!万字长文拿下HTTP 我在鹅厂等你!(1),html5移动开发框架

android 程序员 移动开发

滴滴DoKit Android核心原理揭秘之函数耗时,android组件化

android 程序员 移动开发

用最通俗简单的方式,带你全面理解Android事件传递机制,有一句废话你砍我

android 程序员 移动开发

浅析NestedScrolling嵌套滑动机制之实践篇-仿写饿了么商家详情页

android 程序员 移动开发

深入探索编译插桩技术(三、解密 JVM 字节码,都是精髓

android 程序员 移动开发

深入浅出:MVVM+ViewBinding,互联网寒冬公司倒闭后

android 程序员 移动开发

深入理解 RecyclerView 的绘制流程和滑动原理,android应用开发教程答案

android 程序员 移动开发

HTML5、H.264及Flash综述_Google_Alex Blewitt_InfoQ精选文章