HTML 5 <video>标签与Flashvideo。 优缺点都有什么?

似乎新的<video>标签现在是所有的炒作,尤其是在Firefox现在支持它的情况下。 这个消息在各地的博客上都出现了,大家似乎都很兴奋。 但是关于?

就像我search的那样,我找不到比那些好的旧的Flashvideo更好的东西。 事实上,我只看到它的问题:

  • 在所有浏览器开始支持它之前还有一段时间,在大多数人升级之前还有更多时间。
  • Flash已经可用,每个人都有它;
  • 您可以将Flash与任何想要控制播放的奇特UI相结合。 我收集的标签也将是可控的(通过JavaScript可能),但它将能够全屏?

我只能看到<video>标签的两个优点:

  • 这是更“语义” – 这可能不重要,包括我在内的很多人,
  • 它不依赖于单一的商业第三方实体(Adobe) – 我也不认为这是一个令人信服的理由,因为免费的播放器和video转换器已经可用了,而且Adobe并没有以任何方式阻碍整个过程(这甚至不符合他们的利益)。

那么…有什么大不了的?

添加:

好的,所以还有一个Pro …也许。 支持移动设备。 很难说。 一些想法在我的脑海中围绕着这个问题展开:

  • 有多less移动设备实际上能够以适当的速度解码video,Flash或其他?
  • 直到主stream移动设备获得<video>支持多久? 即使通过更新可以得到,有多less人真的这样做?
  • 有多less人在手机上的网页上观看video?

至于语义部分 – 我知道search引擎现在可以更好地检测video,但是…他们会怎么处理呢? 好的,所以他们知道页面上有一个video。 和? 他们不能索引video! 我想在这里有更多的论点。

添加:

只是想到另一个缺点。 这开辟了一个全新的跨浏览器不兼容的领域。 HTML和CSS在这方面已经很杂乱了。 闪光至less在每个地方都是一样的。 但至less有一家主要的浏览器供应商决定使用<video>标签(任何人都可以说“Internet Explorer”)就足够了,我们有一个很好的探索新领域。

添加:

Pro刚刚进来,更多的竞争=更多的创新。 确实如此。 给予Adobe更多的竞争可能会迫使他们改进目前缺乏的Flash领域。 Linux似乎是一个弱点,被许多人引用。

这里有很多优点,就像武术战斗风格一样,每一个点都有其突破,各有所长, 但是每个人都可以通过适当的举动被击败。

任何站在关于“专制”插件的争论上的人都会很快下降。 微软,苹果和Adobe都承认有罪,但那只是商业。 你不会在一夜之间改变业务,而且每一个浏览器都会有一个新的标签,比如支持非常技术性的接口的<video>,每个浏览器的实现都会稍有不同。

HTML 5现在起作用,Flash也起作用。 它是如何实现的,它需要的技能 – 这个定义每个资源,无论是员工的performance,网站pipe理员的权力,还是一个领域的影响力。

虽然我只有40岁,但是当我select橙色或绿色单色显示器作为颜色select时,我开始编程,硬件安装随附祈祷书,而不是指导手册。 也许你可以找出调制解调器的AT命令,当它不configuration你的硬件,64K内存就像,WOWWWWW!

与垃圾相比,HTML 5 / Flash是一个小小的麻烦。 让我们都学习如何在社区中合作,以获得更好的资源。 有一个开源Flash项目,它会有错误。 所以将HTML 5 …

这里的每一个论点都是真实的,但不一定是有成效 用这种能量来解决问题。

想象一下,如果没有img标签。 如果你想要图像,你必须使用第三方插件,这是非常慢,没有标准的方式来embedded到一个页面。 你不能轻易地以这种方式复制图像,search引擎基本上不知道如果它是一个图像或游戏或任何东西。

没有这个,没有图像可用。

然后想象一下浏览器刚刚发布,让你使用这个新的img标签。

video(和audio)标签是合理的工作方式。 我们不需要第三方插件来使用完全标准的媒体格式。

<video>的最大好处是什么? 这很容易。 疯狂的容易。 可笑容易。 你的奶奶可以编码一个video标签容易。 <video src =“myfile.ogv”> </ video>就完成了。

<video>对您的用户也有明显的好处。 他们得到一个浏览器原生的video播放器,这可能是非常有效的。 他们得到一个一致的用户界面,不会改变每个网站。 移动浏览器可能无法实现Flash仍然可以实现<video>。

唯一的骗局是暂时的,那就是兼容性。 IE8不支持<video>,而IE9被广泛安装还需要一段时间。 同样,支持video的编解码器也有一些争议 – Firefox,Chrome和Opera都支持Ogg Theora和WebM,而Safari和IE则支持H.264(尽pipe可以使用正确的编解码器支持Theora / WebM) 。 目前,这意味着您必须以两种格式发布您的video,并为它们提供源元素,即:

 <video> <source src='video.webm' type='video/webm'> <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> </video> 

要添加对IE 8及更早版本和其他低级客户端(如FF / Safari / Opera /等旧版本)的支持,只需将标准videoembedded代码放在<video>标记内<source>元素下面即可。 如果浏览器支持<video>,则会忽略embedded。 如果没有,它会忽略<video>并运行embedded。

Flash在非Windows平台上速度慢,效率低下。 它有潜在的安全缺陷。 它在你的计算机上存储你不知道的“闪存cookies”。 iPhone上没有闪光灯,也不太可能(由于其专有性和高CPU消耗)。

HTML 5:可以杀死Flash和Silverlight吗? 是一篇文章,可能会回答你的问题。

那里可能有更多的原因。

Flash在非Windows平台上非常令人头痛。 (不像其他人指出的那样)速度慢,效率低,但也不是很稳定。 正如我们在最近的苹果WWDC上所了解到的,“浏览器插件”(读取:Flash)占所有 Mac OS X上所有应用程序崩溃的大部分(“多数”,我的意思是一些荒谬的80%有些事情,不记得准确的数字)。 在Mac OS X上,这是一个问题,对于Snow Leopard,Apple重新devise了Safari,以便Flash运行,不仅仅是沙盒,而且实际上是一个完全独立的进程 ,所以当Flash崩溃时整体不受影响。

在OS X上的Flash的不稳定,加上其糟糕的performance,是为什么…

  • Flash现在不是不太可能用于iPhone。 我不同意人们不想在自己的移动设备上观看video的前提 – 这就是为什么苹果公司为了允许其在iPhone上播放而在YouTube上为其内容提供服务的特别安排。 举个例子来说,我很高兴为MLB 2009付了10美元,这完全是因为我可以在iPhone上观看video,如果他们让所有的游戏都可以观看,我会付出更多。
  • …如此多的Mac OS X用户(如我)正在为其浏览器安装Flash拦截器。 根据我的select,未经我的明确许可,Flash内容甚至不会再加载到浏览器中。 由于安装它,我的CPU使用率大幅下降,我的浏览器崩溃已基本消失。 对我来说,这当然是一个好消息,但对于希望为我提供基于Flash的广告的广告客户来说,这是一个坏消息。

就用户必须了解编解码器而言,您可以通过使用简单的非Javascript html代码来避免此问题并为其提供相应的编解码器(包括Flash,如果浏览器不支持OGG或h.264)在这篇文章中find。

优点:

  1. 您可以轻松使用该标签,并让其降级为Flash或其他文件types/编解码器,以实现向后兼容, 而无需使用JavaScript
    • 不需要专有的插件
    • 独立于平台,而不是闪存(参见2)
    • 使用它将鼓励其他浏览器供应商实现它(以IE读取)
    • 标签具有语义意义。
    • 内置于浏览器中。
    • 没有供应商locking

缺点:

  1. 这是未完成的标准的一部分。
    • 已安装的浏览器中的一小部分支持它< – 不是问题(参见1)
    • 浏览器供应商还没有达成一个标准的编解码器< – 也不是一个问题,请参阅中的链接。 1)

这也是一个优点,video标签是原生的HTML,所以它很好地集成。 这听起来像是一个非问题,但事实并非如此。 例如,您可以用一些HTML标题覆盖video。 而且HTML标题可以使用与同一页面上的其他标题相同的样式。

你也可以应用一些(未来的)CSS转换到video元素: 看这个演示 。

Adobe的Flash播放器(作为一个插件)不考虑浏览器的任何隐私设置,而Adobe并没有主动向普通用户清楚所存储的内容。 这是停止使用Flash(或任何video插件)并欢迎<video>一个很好的理由。

有关隐私问题的一些细节(不要与安全问题或漏洞相混淆)可以在如何自动删除Flash历史logging中find? 在超级用户。

就像Vilx在评论中指出的那样:在用<video>replaceFlashvideo时,这些隐私问题仍然存在,因为更多地使用Flash。 尽pipe如此,一旦<video>被支持,那么提供video(并且不以任何其他方式使用Flash)的网站所有者将有权select不使用访问过的Flash网站的这种logging不佳的logging来给访问者造成负担。

(编辑:我用SU的链接取代了细节,这给了更多的洞察力;下面的一些评论只会对之前的修订有意义。)

对于我来说,将内置计算机或其他第三方播放器播放video比Flash更有效率,这将是非常好的。 并非所有的平台都有Flash:iPhone和Android(至less现在是这样),标签可能会更快地工作,而不是晚些时候。 不是在谈论Linux,Flash的工作非常糟糕。

关于互联网更多的语义,这可能对你很重要。 我不确定search引擎如何喜欢谷歌和Bingsearchvideo,但他们可能只是知道一些Flashvideo实现,所以第三方小玩家没有机会。 如果我们都使用相同的标准标签,那么每个人都在一个公平的竞争环境中。

优点:

  • Ogg / Theora / Vorbis是免费的,所有各方都是链接(H.264的H.264宽限期在2015年底结束,编码和解码已经缴纳了版税)
  • 一旦对IE的回退不再需要, <video>将比Flash更容易
  • 没有必要为插件监狱的浏览器供应商可以修复自己的错误
  • 与CSS效果集成
  • 集成了SVG效果
  • 与JavaScript集成
  • 可以在未经Adobe许可的情况下移植到任何平台
  • 用户可以轻松地将video保存到磁盘
  • 可以在联合供稿中安全地工作(但软件还没有准备好)

缺点:

  • IE对video元素的支持必须等到IE9; 当前IE兼容的Ogg fallback渲染器依赖于Java,直到ActiveX解决scheme或Silverlight解决scheme完成
  • Safari需要XiphQT来播放Ogg,因为苹果公司没有发货Theora。
  • iPhone所需的版权保护格式(但不比Flash更糟糕)
  • 在今天发布的每个桌面实现中都无法全屏显示

64位,Linux的支持将是很好的。 闪光仍然(在两千九)在这方面缺乏。 只是有一些真正的竞争总是好的。 如果主要video网站开始使用这个Flash,甚至代替Flash; 这将是一个我需要的专有程序。 开源意味着更快的创新。 花时间,人们将创造一种方式来提供DRM保护的video。

Flash的更多优点:

  • 与浏览器厂商相比,Adobe可以更快地向大众(通常不到一年的用户升级到最新版本的Flash)添加新的function和新的编解码器(仍然有大量的IE6用户在那里那个浏览器在2001年出来)。

  • 在Flash中发现的function,我想最终将使浏览器,但还没有:

    • 全屏video(有一个Firefox插件,支持这个,但没有一个浏览器本身呢)
    • video摄像头,只有less数网站使用这个,但有一些非常酷的东西发生在Flashvideo摄像头和增强现实
    • 点对点video,刚刚添加到Flash Player 10中,随着Flash 10的普及率接近90%,我想您会看到更多

正如那些说Flash不可转位的人一样,请检查一下Google最近为Flash内容编制索引所做的工作,这要归功于Adobe提供的无头播放器。 所以,如果你做一个谷歌search的FLV文件 ,你可以看到,谷歌已经索引Flashvideo文件。

同时,Adobe Premiere CS4具有语音识别function,能够以Flash格式轻松使用XML格式输出video文件的字幕。 因此,预计未来Flash的video将变得更加可search。

  1. 现在很多移动设备都支持:iPhone,iPod Touch,Symbian S60,Android等

  2. Mozilla Firefox,Google Chrome,Apple Safari和Opera都支持该标签(当然,您需要将其编码为H.264和Ogg Theora两种格式,不过,您可以重复使用带有Flash或Silverlight的H.264video老式浏览器和Internet Explorer的故障保护

  • 用户可以控制用户界面:他们可以select要下载和使用的浏览器,也可以根据工作原理(我不清楚细节,但是我对这个概念很熟悉),甚至可以保留它们浏览器,并select它的处理程序npapi插件。 你有多less次使用一个低劣的动作video控制界面卡住,因为你所在的网站的开发人员太懒惰了(或使用stream式播放器 )。 给用户的权力,我说。

  • 它的开源。 现在,我不是RMS或任何其他东西,与伦理或其他任何事情没有任何关系,但OSS只是更有效率,更好的方式。 它产生更好的代码。

  • 更好的平台支持。 现在,Linux + flash =坏了。 Adobe是唯一可以做任何事情的人。 这很糟糕。

  • 就像你说的那样,更多的语义。

塞特得到了大部分的大部分。 其他我可以想到的:

  • testingmatrix的大小爆炸(我看到一个错误只发生在IE7与Flash 9.0.48 – 你想要testing每个浏览器的Flash多less次版本?)
    • 即使你只select一个确切的版本来支持,并强迫其他人升级/降级,但“Flash在所有地方都是一样的”并不是真的:“针对IE的Flash插件”和“针对其他人的Flash插件”aren即使是相同的二进制文件(是的,这很重要:他们以不同的方式访问networking,这是我的IE7 / F9错误的原因之一)
  • 每个人都写自己的播放器,因此UI和可靠性不一致
  • 浏览器被允许为HTML5video实现全屏选项,这意味着如果他们还没有(尽pipe许多Flashvideo播放器有这个但许多不这样做)
  • 不,不是每个人都有Flash(理所当然,现在比HTML5video更普遍,但并不是所有的开心糖果乐园)
  • 脚本是一个巨大的痛苦(有​​自己的DOM,事件,不完全ECMAscript语言等)
  • 如果您不在Windows上(在Mac OS X下运行Windows虚拟机,使用的CPU比使用本机Mac插件less5-10倍)
  • 它的糟糕稳定性(至less3年来我所见过的每一次浏览器崩溃都在Flash页面上;如果你的video杀死了整个浏览器,那么即使它真的是Adobe的错,也不会回来)
  • 它在许多地方都没有运行,例如,在一个64位的过程中(如果你的用户偶然错误地启动“Internet Explorer(64位)”而不是“Internet Explorer”,poof,没有video)

简而言之,使用Flash的唯一原因是“大多数人今天都安装了它” – 只要持续下去,这可能是一个很好的理由。

由于现在浏览器通过普通的HTTP获取video文件,而SWF文件(需要parsing)中定义的一些不明确的方法相比,你现在可以有networking代理,也可以cachingvideo文件! As well as have the very browser be able to cache a video file.

HTML5 Pros:

  1. It supports whole new DOM API for video objects, you can write script which can interact with new HTML5 tags.
  2. You can detect different video format support play, pause, and track video playback.
  3. Its already well supported. Firefox, opera, chrome already support chrome, video , etc… Even youtube is testing some HTML5 player.

Flash Pros/ HTML5 Cons:

  1. Flash is there everywhere. So HTML5 will take lot and lots of time to catch up.
  2. Flash support extensive features, let it be HW rendering, high definition video supports, Animation features it supports are simply irreplaceable(?)
  3. DOM API would never replace AS2/AS3 feature already supported by flash.
  4. Just count the number of professional flash developers out there… they will never switch unless HTML5 answers all their questions. There are number of flash developers who haven't switched from AS2 to AS3 yet 🙂

Here's my pros of HTML 5 in 2012:

  1. I'm using the HTML5 trail of youtube. Now flash player doesn't crash all the time. Now my computer is stable for weeks. Now I'm happier.
  2. I don't see an "update HTML5 player" whenever I reboot my computer like I do with flash.
  3. Once embedded video everywhere works with HTML 5, I can remove flash from my computer because the only use I had for it was to play videos.
  4. This is a pro for website developers: I have a flashblocker because of how annoying flash is. I don't have an HTML5 blocker. Webmasters have a second chance to send me content.
  5. HTML5 will likely be implemented properly on browsers instead of being the #1 security hole on most computers.

My belief for pros:

  • It's catching the HTML standard up to the current practical uses of the web.
  • It seems like it would be easier/better to get mobile devices to support the video/audio tag rather than porting Flash to the devices.
  • Ogg is an open standard, while Adobe controls Flash.
  • I've already seen in some places people putting up solutions to have a fall through, meaning if your browser doesn't support video/audio tags, it will use flash.
  • Easier interaction with standard HTML elements and javascript.

My biggest con would be that Ogg is a bit behind in terms of compression and quality. But I would imagine it's being worked on. More importantly, if more people start adopting it, more people will likely join the the work on Ogg to make it better.

Competition is key as well, as there is no major player forcing Adobe to really do anything with Flash. So Adobe can control the market in terms of video content on the web.

I believe this will demolish Flash, as an open source standard support on iphone and android and other mobile handsets can be rapidly implemented as well as desktop OS support. The OGG format allows me to skip forward in the video file over a regular http connection. I can right click and save the file if allowed, sharing and transporting these files will be easier. As 'proper' markup it can be navigated by the literally 100's of thousands of users using specializad devices to access the Internet. As a 'proper' dom element it can communicate with javascript allowing it to fully interact with the rest of the page content, and finally, Microsoft have a track record of pretending to ignore upcoming standards while promoting their proprietary solution, as user demand peaks they throw the rudder full right and roll out an implementation to secure their user base. Flash has been the only choice for video on the web, but not for much longer, its an excellent piece of software in its own right and I see it holding some position, but for video it's only ever been an 'only choice' runner.

One Con is the fact that the current html 5 spec has not been able to agree on a single codec due to browser vendor dissagreement.

From the article below:

"After an inordinate amount of discussions, both in public and privately, on the situation regarding codecs for and in HTML 5, I have reluctantly come to the conclusion that there is no suitable codec that all vendors are willing to implement and ship"

Browser vendor squabble

Ultimately, even if you do use the video tag, your video codec may not be supported in all browsers, even if they do support the tag.

As others have mentioned, this may not pose any real issue, but I believe having to make multiple versions of the same file available certainly negative.

I would say the definite pro of using <video> instead of Flash is that I will be able to watch videos in my browser without having it crash or go crazy slow. I use 64bit OpenBSD, so gnash is all I can get and I only enable it when I'm feeling really risky because most of the time I'll come across a flash banner ad and my browser(firefox 3.5) will crash.

And my mobile phone browser doesn't support flash, yet it supports the video tag(and it's not an overly "fancy" phone either).

Regarding this point:

"As for the semantics part – I understand that search engines might be able to detect videos better now, but… what will they do with them anyway? OK, so they know that there is a video in the page. And? They can't index a video! I'd like some more arguments here."

if optimized properly, a video will include a transcript, which a search engine can read, and correspondingly divulge all of the information about the video. I guess they can index the video's page? as for the value of it…i guess i won't have to watch crap I don't need, to find something I need, bcz I will know exactly what's in the video

You can use Flash today… it's the most realistic way to reach full-sized audiences.

(FD: I work for Adobe)

My understanding is that the big deal about the tag is that it is an open standard. When only one vendor can implement Flash, you are at their mercy for implementations/ports to new platforms, browsers, or even browser versions.

The excitement is all at that level, not down in the implementation details. Worrying about which is technically superior is sort of beside the point in the same way as concerning yourself about a fascist government's ability to make the trains run on time would be.

It will be nice to use some of the HTML 5 features… in 5-10 years from now…

We still have too many visitors using Internet Explorer 6 to ignore them, it will be quite some time before we can even move on to only testing the pages for IE7+…

I think the large majority of these answers condense to this: Flash is engineered mostly for the mass market, so it provides the easiest way to cover the bulk of the market, but it is deficient in covering less common and emerging platforms (ie shaky Linux and no iPhone). This has been the story with Flash pretty much from day one. It's practically a case study of how proprietary and OS software differ (and complement each other).

On the other hand, I think most answers are seriously underplaying the codec angle. There is one primary reason why Flash video dominates the web today: it's the only way to publish a single version of a video and expect it to be viewable by more than about half your audience. Even though the video tag looks to be designed well, as far as matching up multiple source files to the user's installed codecs, it's still difficult to know how many codecs are needed to cover what percentage of an audience, and impossible to know whether people will upgrade as new codecs emerge. Flash video has more known quantities, and a reasonably good expectation of upgrades for the large bulk of the audience.

I also kind of think that the performance angle is overstated in most answers, as well. It's true that Flash uses more CPU than any other player I have, but it also starts up more quickly – by orders of magnitude. When I come across a web page with an embedded MPG, my browser is frozen for 15+ seconds while QuickTime boots, or perhaps only 5 seconds if it was already running. (Almost as bad as PDF 😉 ) Obviously Flash is less efficient in some ways, but from where I stand it's more efficient in others; like any software solution tradeoffs are involved.

I've been reading around this recently for a site I'm building now. I've gone with Flash video for now, because the launch is pretty soon. Also, we're on a shared hosting environment, so all video conversion has to be done before the video is uploaded. I don't want to ask the client to upload two versions of each video.

But, ultimately, I do want to switch to open video. It looks pretty cool. I've seen a demo which uses javascript to overlay subtitles on a video, degrading gracefully in the absence of javascript to a text transcript below the video. (I think that was on A List Apart.) And Mozilla have some fun demos up. http://arstechnica.com/open-source/news/2009/05/google-dailymotion-endorse-html-5-and-standards-based-video.ars

Flash is controlled by a single company. That company can decide exactly what to do with the future of Flash and nobody else can affect it. Let's say, for example, that they (Adobe) suddenly decide charging a license fee for using Flash. What would happen to all the millions of web sites depending on it?

We need taking action, and that is now. We must use open standards, and we do need it badly. That's the only thing that makes the tag bleeding important to the world.

(Licensing fee for Flash might or might not seem like a realistic move from Adobe, but that does not matter. My point is that they are in control. Another thing that could happen is that Adobe decide to cancel Flash. Imagine what would happen then, if there were no tag.)

Current state of Flash is:

Flash Desktop platforms:

  • IE
  • Microsoft Edge
  • Safari (Mac)
  • FF
  • 歌剧

Mobile browsers:

  • 没有

So you can't use Flash video on mobile browsers because Flash Player is not pre-installed by default.

Optimal way – using HTML5 video with Flash fallback for those browsers where HTML5 video is not supported.