Hacker News new | past | comments | ask | show | jobs | submit login
Daring Fireball: GIF, H.264, and Patents (daringfireball.net)
83 points by barredo on March 22, 2010 | hide | past | favorite | 55 comments



> If some patent troll decides H.264 violates a patent, they must go to court with MPEG LA, not individual licensees.

This is not true, check your facts! From http://www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx

Q: Are all AVC essential patents included?

A: No assurance is or can be made that the License includes every essential patent. The purpose of the License is to offer a convenient licensing alternative to everyone on the same terms and to include as much essential intellectual property as possible for their convenience. Participation in the License is voluntary on the part of essential patent holders, however.

If someone holds additional patents on H264 and is not part of the licensing pool they can sue individual licensees, they even get a nice list of parties to sue at http://www.mpegla.com/main/programs/AVC/Pages/Licensees.aspx


There is still some protection, though. If I were a patent troll and found some patents that might be applicable to h264, it might be a better idea to sign up with MPEG LA and get a cut of the existing pie than to go after MS or Apple for a bigger slice.


The patent holder can also decide not to bother MS/Apple/etc, and only prosecute open source implementations.

The patent holder could be bought by MS/Apple/etc

Unlike copyright there is no requirement to assiduously defend a patent.


You're thinking of trademarks, not copyright.


Yes sorry, however the point remains.

It's perfectly legitimate (and common) for a patent holder to sue a single strategic competitor while leaving a larger player alone.

An impartial (commercial) industry body could decide to sue only FOSS implementations in order to keep the field open for their members.


You can't sue FOSS authors for infringing patents (source code) -- you can only sue the distributors of executable implementations (binaries)

The text of an ideal software patent is (or has a direct mapping to) the source code of an implementation, just as an ideal steam engine patent would be blueprints and schematics. The text of patents must always be publicly available to be enforceable -- it's the whole point, absolutely central to "the promotion of the useful arts and sciences".

You license the production of artifacts, not the spread of ideas.


It's called contributory infringement.

If I supply you with tailored parts necessary to perform/make a patented invention then that's contributory infringement.

In the US Findlaw says:

"Contributory infringement occurs when a party supplies a direct infringer with a part that has no substantial non-infringing use. Literal infringement exists if there is a direct correspondence between the words in the patent claims and the infringing device."

http://smallbusiness.findlaw.com/patent/enforce-patent/paten...


You could argue that the source code is an implementation.

Anyway the point is rather irrelevent, you aren't going to sue anonymous contributer100. You are going to sue, or threaten to sue, companies who propose using opensource platforms for their new website rather than buying from one of your members.


If some patent troll decides H.264 violates a patent, they must go to court with MPEG LA, not individual licensees.

This is incorrect in multiple ways:

- The MPEG-LA is a licensing body, so it's extremely unlikely to be practicing the patent in question. Therefore it would be hard to sue them directly for infringement. It'd also be very difficult to sue them for inducing infringement due to the following point.

- The H.264 license explicitly disclaims warranty that the license provided by the MPEG-LA covers all essential patents to practice H.264. This is also mention in the public FAQ: http://www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx

Like most people on the internet, I Am Not A Lawyer.


> But they can’t say Firefox only supports free and open video formats while still supporting Flash.

Mr. Gruber should be more precise by what he means by support.

Firefox's support for Flash is not like the proposed support for H.264. There is no Flash code in the Firefox codebase, to my knowledge. There is only a generic plugin interface, and there is one dominant, proprietary Flash plugin that Mozilla has nothing to do with (in addition to other less-featured Flash plugins).

What Mr. Gruber seems to be saying is that he wants Firefox to distribute H.264 code with their browser. Either that or Firefox should rely on codecs that may or may not be installed on the underlying system.

In the former case, the analogy is fatally flawed, while if the latter is intended, it should be explicitly addressed.


And, just to swirl the controversy, support for Flash is also support for H.264: http://www.adobe.com/support/documentation/en/flashplayer/9/...

"Fixes and improvements in Adobe Flash Player 9 Update 3, Version 9.0.115.0

Flash Player 9 Update 3 extends the performance and standards compliance advances introduced in Flash Player 9. Of key importance, this update adds H.264 video and High Efficiency AAC (HE-AAC) audio codec support that opens up a broad ecosystem and selection of standards-based video — up to HD quality — that developers can leverage in their applications. The update also features hardware accelerated, multi-core enhanced, full-screen video playback for high-resolution viewing across major operating systems and browsers."

(my emphasis)


>"support for Flash is also support for H.264"

That's largely irrelevant to the issue at hand being just Adobe trying to grasp the last few straws of universal flash desirability before browsers offer the codecs necessary aside from Flash and Canvas becomes the standard format for online animation.


My thoughts exactly. Doesn't this also hint to a possible solution to this HTML5 video problem? Someone should just make a FF plugin that provides the H.264 code to work with the video element. Maybe Google could be that someone?


I believe Mozilla distributes Flash as a plugin in the Firefox download. If they don't, they certainly make special allowances to make Flash easier to download and install than other plugins.

I assume Firefox has a public API for video codecs, and they choose to distribute codecs or not. So I don't see the difference, really.


<i>Firefox has a public API for video codecs</i>

They really don't and they really should. Building a plugin architecture where users could decide based on their local laws which technology to use when some may be patent encumbered would be a big win for open source, standards, and freedom on the Internet.


The Mozilla people already stated there is no technical reason they are not supporting H.264. It is idealogical. They are well aware that they could make it pluggable or use the system codecs, they just don't want to.


It seems like we went through this in the 90s with wmv/quicktime/etc. I can't recall why it failed & I'm not sure why it should be better this time around.


Because there's a single, vendor-neutral, scriptable, unbranded API: <video>


I'm not sure why it should be better this time around.

Because today instead of WMV/QuickTime/etc. we have H.264/H.264/Flash (which streams H.264).


http://en.wikipedia.org/wiki/Comparison_of_video_services#St...

I see a lot of VP6 and Sorenson listed there. What we really have today is Flash/Flash/Flash. I'm curious about how much VC-1 use there is in the wild in the large Microsoft/Silverlight streaming video installations.


I believe Mozilla distributes Flash as a plugin in the Firefox download.

This is most definitely false. Why make a claim like this when you could easily verify it?


He's only misstating it somewhat.

Firefox (at least on Windows) has a special Flash installer baked into it for several years -- if it can't find the plugin, it prompts you with an infobar, which then kicks off a streamlined installer that downloads a xpi package and installs it even without administrative privileges.

When they first implemented it, they got a special license to distribute the Flash xpi from addons.mozilla.org, and did so happily. Mozilla has absolutely distributed the Flash binaries themselves before, but I think the file is hosted by Adobe these days.

Fairly recently they baked in a special Flash updater too -- if your Flash plugin has known security vulnerabilities Firefox will prompt you to automatically update it: http://blog.mozilla.com/metrics/2009/09/16/helping-people-up...


There's no "special Flash installer". I think you're talking about the Plugin Finder Service, which is generic and works with any plugin. PFS serves metadata that points the user to the vendor's plugin download page (possibly to a streamlined installer built by the plugin vendor): https://wiki.mozilla.org/PFS

The "special Flash updater" detects if the user has Flash installed and is out of date, and only if so, it points them to Adobe's website to download the latest version. This is likely to happen for all widely used plugins. Flash is the first because it's so widely installed. More details here: http://blog.mozilla.com/security/2009/09/04/helping-users-ke...

It's pretty easy to find this all out with a search engine, so I'm beginning to wonder if your "slightly incorrect" claims are deliberate misrepresentations. I'd question your agenda, but honestly I don't care. The facts are available for anybody with a search engine handy.


Sure it's theoretically generic, but is there a single other plugin available through Mozilla's PFS server as an xpi? They have records for the other standard plugins, but those all use native installers. I can't find a dump of their database, and it looks like there's no way to enumerate it through the API.

Gnash and swfdec are available via Debian and Ubuntu's independent PFS servers as an xpi in their Mozilla forks, but not through Mozilla normally since I don't think their UI will present multiple options for one set of <embed> attributes.

The feature exists solely because Flash doesn't ship in the default installs of Windows (or in OEM installs in NPAPI form), or any of the Linux distros (just OS X).

Mozilla are collaborators: they don't have the moral high ground here.


I assume Firefox has a public API for video codecs

No, Theora is hardcoded in.


Just one point of interest is that Unisys only attempted to charge for the compression of data not the playback. So, browsers were never subject to the licensing fees that Unisys was asking for, only products like Photoshop which created/compressed data.

Also, they were nice enough to grandfather many programs so things like the PBM tools were not subject to licensing fees.


That was not out of any sense of generosity. That was because their patent clearly only applied to a (good) method for compressing gifs. Therefore their patent did not apply to creating or reading gifs.


Marginally related:

MP4 as a container, H.264 (AVC) for the video track, AAC for the audio track - this video file format is playable everywhere. Windows, Linux, Mac, PS3, PSP, iPhone... if the kitchen sink had a display, it would probably play it.

When I get a new file, if it's playable on the devices where it's supposed to be viewed, I don't do anything. Otherwise, I convert it to the format indicated above. No deliberation, I just convert it by default to MP4 AVC/AAC. Often I'll use MeGUI if I need some kind of GUI to simplify the process.

Very often, .flv files from Youtube are just AVC/AAC (I think they use x264 to encode the video track) encapsulated as Flash - a simple re-encapsulation (ffmpeg on Linux, Yamb on Windows) solves the problem and - voila - the result is an MP4 that is playable pretty much anywhere.

Blu-Ray and AVCHD disks use AVCHD (H.264 at high rez) almost always. HD camcorders use AVCHD. And so on.

So, I guess my point is - H.264 is already used by many people. It's more or less everywhere. Very likely, it's here to stay.


If Gruber was not a well known defender of whatever Apple wants to happen in the world I would say that his viewpoint was meaningful, but it's not, he simply want to advance the Apple wishes... if we will need to migrate to other formats after some time, because of patent enforcement, then why adopt a format as a standard? Why not just adopt multiple formats or no format at all? What about the legacy devices that will not support the new format?

See, he also does not have any practical concerns, he just lives in a world where Apple idealism is the norm.

That said, my demands from a codec is simple: it must be free to encode/decode using the codec, free to be included in the nightly builds/repository of WebKit and Gecko (H.264 is not) or every other project, free for a guy in a university dorm develop a new product using the codec without paying for any royalties, it must be patent free as it is the desirable for every other W3C standard, I think it will be better to not have a standard at all if we do not have these guarantees.

EDIT: lanaer and GHFigs comments were eye-openers for me, I recommend you people to read them.


Since there is no standard video codec for HTML5 playback, it sounds like your last clause, at least, is satisfied.

Personally, I'll probably use H.264. Why? Because I find it preferable than flash, and if I want my web video to be viewable without flash to most of my visitors, H.264 seems like the only practical solution (and possibly encoding in Theora as well).

It's not a standard, and browser vendors & others can continue to offer alternatives, one of which may supplant H.264, as PNG replaced GIF. Or maybe Theora will turn out to infringe on patents that H.264 legally relies on, and H.264 will stay around for a while.

Whatever the case may be, this is only the first generation of video-capable browsers. It wouldn't surprise me at all to see future generations be much more flexible in terms of codec support.


Why not just adopt multiple formats or no format at all?

HTML5's video tag supports multiple formats (it always has) and the spec does not mandate any specific codec. Nobody is proposing to adopt h.264 as part of the standard.


Just to be more specific because this seems to be a point of confusion:

HTML5 video tag was always supposed to allow any codec to be used.

It was also, from the first time it was proposed by Opera, intended to use Theora as a baseline interoperability codec which everyone could implement for free so that if you wanted to guarantee someone could see it on any HTML5 compliant platform you could use that.

Just to underline that point. No-one, at any point said "Theora is the best codec in the world lets force everyone to use that", instead they said "What are the best, freely implementable codecs" and the only good answer was Theora (and maybe Dirac at some point in the future).

This was all written up in the spec.

Apple and Nokia said "we don't care what you write in the spec, we're not going to implement Theora".

The spec author didn't want to have anything in the spec that didn't reflect reality, and didn't think having such things in the spec would help change that reality, so he took Theora out and said no baseline default codec would be added until there was a royalty free option that the main players could agree on.

Again, just to underline this twice, no-one proposed H.264 (or any other royalty bearing codec) for inclusion in the spec because W3C specs do not allow royalties.

Even Apple thinks this is a good thing:

"After careful consideration of the draft patent policy, Apple believes that it is essential to continued interoperability and development of the Web that fundamental W3C standards be available on a royalty-free basis. In line with the W3C’s mission to “lead the Web to its full potential,” Apple supports a W3C patent policy with an immutable commitment to royalty-free licensing for fundamental Web standards. Apple offers this statement in support of its position."

http://www.apple.com/about/w3c/

Yet thanks to Apple (and others) we have a W3C standard that specifies no codecs and a de facto web standard codec with royalties as a result.

(And before anyone brings up IMG, name 5 royalty free image formats, then name 5 royalty free video codecs)


I think a while back that was under consideration, but the spec-writers gave up since they knew that no matter what codec they picked, they knew they couldn’t get all browser vendors to implement it.


You're probably confusing it with Theora, which was actually part of the spec for a while but was removed around last June for the reasons you mention. That's when the public shitstorms started. I was an avid reader of what WHAT-WG list around the time leading up to that and I never recall anybody seriously proposing H.264 be put into the spec.


Ah ok. I didn't learn of the issue until after Theora was removed, so all I saw were the reasons why neither H.264 nor Theora were in the spec (and the impression that at least one of those had been considered for it).


Gruber isn't as uncritical of Apple as you claim, you should probably read more of what it is he has to say, and assume less.


Thank you for point this out, I promise I'll read more from him, I generally only read the iPhone-related articles from his blog and this is the way I saw it, of course I could be biased, and generally I am, to comment about anything. But thanks anyway.


Gruber isn't non-critical of Apple's iPhone business either. He has consistently criticized them for how they're managing the AppStore, for instance.

However, because he also has deep insight into Apple's business and culture (probably better than any industry analyst), he understands the underlying reasoning and motivations, and so he doesn't just spout out ignorant rants nor pretends to know how to "easily" solve the problem, either.

Now, I might come off as a Gruber fanboy here, but just read up and you'll find that this is true. He speaks from humility and insight, and he doesn't serve up advice on how Apple should improve their business — in all respects — with a quick fix, like most other Apple critics do.


But I think history shows that practical concerns, not idealism, is what drives web publishers to adopt new formats.

A bit off topic, but if you replace "practical" and "idealism" by their true meaning ("short term", and "long term" respectively), you quickly realize that this attitude is nearly universal: "Short term concerns, not long term ones, is what drives most people".


Could anyone explain the if it was really about idealism, Firefox would remove the plugin API that Flash (and e.g. Silverlight) uses argument?

I'm genuinely curious as I've seen this from both Gruber and Mark Pilgrim so clearly some people who aren't known for being loonies think there's logic there, but I'm just not seeing it.

Basically I read it as if they are saying you're not allowed to choose your battles, or be pragmatic in pursuit of an idealistic goal, you have only two options; to be more extreme than Richard Stallman or you have to shut up and follow the crowd.

And even that ignores all the plugins that don't push patent encumbered formats that would be collateral damage (or is he suggesting a plugin blacklist? For patented code, all proprietary code, any code that Gruber thinks makes them hypocrites?). Or is there more here I'm not seeing?


"web site publishers are clearly betting on H.264 remaining free to use for freely distributed web video"...

Yes, and MPEG LA might be perfectly content with a $5 million check from every browser maker every year.


A bit sad that he made the usual silly argument that somehow Theora is more susceptible to submarine patents than H.264.

Sure there can be submarine patents in Theora, but they can exists for H.264 too, and then you have to deal with the patent trolls and the MPEG-LA.

Also, leaving your business at the mercy of someone else's future patent licensing whims is not a very good business decision.

And of course, he didn't touch at all on the whole open source issue, which was a big part of the problem with .gif, and which in my opinion are the main reason H.264 is not acceptable: it is not acceptable to basically bar open source from a huge part of the web. (And expecting all open source projects and users to just ignore the insane patent laws is not acceptable either.)

Yes, Flash is even worse, but that is besides the point, flash is not part of the standard web ecosystem and never will be.


Also, leaving your business at the mercy of someone else's future patent licensing whims is not a very good business decision.

This is an hard pill to swallow for companies who have profited greatly from the interoperability that such licensing affords them.

it is not acceptable to basically bar open source from a huge part of the web

Who exactly is doing that? H.264 is not proposed to be part of the HTML5 spec. It's just what people use.

flash is not part of the standard web ecosystem

In the sense of de jure standards, neither is H.264. In the sense of de facto standards, it is even more of a standard than H.264.


On the web, people use H.264 involuntarily because Flash supports it and most video sites use Flash.

Theora is a good equivalent to the commonly used Baseline profile.


It appears that it's not equivalent in the quality/bit sense: http://keyj.s2000.ws/?p=356


From eyeballing that chart, x264 Baseline (a very, very good implementation, that can beat some other H.264 encoders in High Profile) never beats Theora 1.1 by more than 20%.

Actually he has figures in the table, but the figures are all given against the winning x264 profile, I've adapted them to compare x264 baseline and Theora 1.1:

  SSIM          0.95     0.96     0.97     0.98

  x264_baseline	438 kbps 576 kbps 799 kbps 1322 kbps

  theora 	576 kbps 713 kbps 943 kbps 1648 kbps

  increase      31%      24%      18%      25%
Which is a very good showing for Theora, despite his misleading textual comment ("Ogg Theora, is a big disappointment: I never expected it to play in the same league as x264, but even I didn’t think that it would be worse than even Baseline Profile" -- remember x264 Baseline can beat Apple H.264 High Profile amongst others). Particularly with them claiming good improvements between 1.1 and the in-development 1.2 that already exceed the jump demonstrated in 1.1 over the initial 1.0 release. He tried to use the latest Theora code for this test but got the wrong branch unfortunately.

He also, bizarrely, commiserated that Theora is in the same class as the "old" Xvid, which beats the (again very, very good) x264 Baseline at the higher bitrates. One of the better thought out codec tests I've seen, but his commentary is weirdly lacking in context. On that note I've just noticed that he, incorrectly, described Theora as an "MPEG-4 derivate" (like Xvid and DivX) in the intro when you could say that not deriving from patented MPEG technology is perhaps a fundamental feature of VP3 and perhaps the whole point of Theora.


Why compare with Baseline, though, and not Main or High? In e.g. the "desktop computer playing the video through Flash" scenario there's no client-side reason not to use the more advanced modes. The iPhone is limited to Baseline to be able to use accelerated decoding, but is that also the case for other embedded systems such as set-top boxes?

In the case of YouTube et al there's the server-side performance/encoding time consideration, but they should be able to encode everything in a quicker format, e.g. Baseline, and re-encode popular content in High profile as needed.


Well it was aw3c2 who originally made the comparison that you responded to, so you'd have to ask them to find their reasons.

For myself, I'd suggest that Baseline might be the XP of H.264, good enough for most folk and with a big installed base out there. (Main profile would be Vista in this analogy as many people seem to suggest just skipping straight onto High Profile if Baseline isn't appropriate). Would you like to provide one set of images on your blog for most users and another set to iPhone users? I'd guess the same applies to video. Though of course this isn't an issue for centralised hosts like Youtube that host multiple bitrates, profiles and codecs.

It will be interesting, for example, to see if the next-gen iPhone allows you to play High Profile, I think the current 3GS has got enough oomph but is software limited by Apple to baseline, presumably to keep the iPhone line a homogenous target platform to some extent (or to avoid the hit on battery life making them look bad?).

Speaking of XP I'd also love to know what levels of H.264 video many existing computers, especially netbooks, can handle. I'd guess Google is the kind of company to gather this kind of info, and they have an obvious interest with Youtube, but I don't know if they've released any of it publicly. They are famous for conservatism in their encoding settings, though I believe they use High Profile for their 720p encodes now.


From what I know Baseline is what is usually used for SD on the web, so it just makes sense to compare to that. Also many people say "mobile things do not have hardware support for Theora but for H264" and that, as you said, mostly means those devices have Baseline support.


Gruber nails it again. Mozilla's hypocrisy is as always overly evident. Their stance is fuelled by sheer greed, obviously - it's about money, about them not wanting to cut down on their yearly economical influx, not about being "open and free", as their actions of trying to sweep the bleeding case of Flash under the carpet is so obviously telling.

I wonder, did any of the non-Mozilla developers, whose work spans the majority of the project today, ever see a single dime of the _tens of millions_ of USD (yes, that's their revenue) going into the Mozilla Foundation from their search engine sponsor choice? No, I didn't think so either.


Mozilla's money comes from Google.

Google owns YouTube, the world's largest video site.

YouTube is using h264.

If your theory was correct that Mozilla is solely concerned with money, your theory would predict that they would support h264, rabidly.


How? Whatever does Google Search have to do with YouTube? Google Search is not affected in any way what so ever by neither Google's nor Mozilla's love or hate for h.264. Also, YouTube is fully enjoyable with Flash. No matter how I twist and turn your response, I just can't see the red line you're trying to draw here.


Yes, weak critical thinking does seem to be a problem here. Let me collapse the three simple implications for you down to "All of Mozilla's money comes from a known h264 supporter." If you're going to make some sort of bizarre conspiracy theory about money making Mozilla hypocrites, then following that up with "And therefore Mozilla is not going to support h264" just doesn't make any sense whatsoever. If they were slaves of their money, they would be supporting h264 loudly; this is sticking a finger in the eye of their money source, not kowtowing to them.


Even if that's true, why are spinning it like it's some kind of evil thing? They're giving you a product for free and you still want them to pay hidden costs for you? How are they supposed to feed their programmers if they don't make profit?


Why don't you crawl back to your cave and offer a meaningful argument? The Mozilla Foundation's stance is perfectly logical: Flash is not bundled with Firefox. H.264 cannot be bundled with Firefox and still be considered Free Software. Mozilla shouldn't have to spend a dime to support a nonfree encoder.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: