Cisco Releases Open Source "Binary Module" For H.264 In WebRTC
SD-Arcadia writes "Mozilla Blog: 'Cisco has announced today that they are going to release a gratis, high quality, open source H.264 implementation — along with gratis binary modules compiled from that source and hosted by Cisco for download. This move enables any open source project to incorporate Cisco's H.264 module without paying MEPG LA license fees. Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free for anyone to modify, recompile, and redistribute without license agreements or fees. Mozilla is fully committed to working towards that better future. To that end, we are developing Daala, a fully open next generation codec. Daala is still under development, but our goal is to leapfrog H.265 and VP9, building a codec that will be both higher-quality and free of encumbrances.'"
A modern video codec that exceeds the performance of H.265 and VP9 without violating any of the patents held by contributors to either? And one that gains the support of hardware vendors to build it into systems? Good luck.
Isn't VP9 supposed to be unencumbered by patents anyways?
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
Huge respect for Chris Montgomery. Instead of using his talents to make a huge pile of money he works so we can have open codecs! I also have watched his video destroying myths about digital audio about ten times, it's great.
Hmm.. that blog post reads of marketing-speak. It talks about "plan to open-source" and release as a binary module. If it's "open-source", what about the source code? And it talks about "plan to" open-source. Not that they are going to, or already have, but they "plan to" in some nebulous future timeframe, which by then, the plans may have changed. Another statement I find interesting is that the "(IETF) will decide next week" about which codec to use. I'm guessing that he's referring to the IETF 88 meeting happening in Vancouver next week. Too bad nothing actually gets decided at the meeting. Decisions go back to the working group mailing lists for decisions.
Looks interesting and all, but it'll take a lot to convince me it's a serious competitor to H.264.
agree with your perspective
Bribery, lobbying & politics
Beyond the official announcements, I strongly recommend reading Monty's comments on the issue.
Opus: the Swiss army knife of audio codec
What are those countless others before? Theora was the first serious free codec I can think of.
My guess is that they're distributing the binary and paying the fees associated with its distribution. The source code is coming: https://github.com/cisco/openh264 but it's only useful to tick the "open source" checkbox. The important thing is that they're paying the fees and that the binary module is under a BSD license.
As pointed out in the comments on the Cisco blog post by a Cisco PR rep, if you use the source code (as opposed to the binary) you are responsible for any resulting licensing fees. Cisco is only covering the fees for those who use the binary.
The Daala development is covering new grounds (yes, that's correct), and doing so in a public way. Just like the proof for the Fermat theorem was extremely useful because it created a LOT of new, *good* math (that has applications on stuff as seriously important as the entire field of cryptography) and not because it proved the Fermat theorem, Daala is already important even if the end result ends up not being the best codec under the sun. However, if you go by the result in Opus, it WILL be of extremely good quality.
Thanks for the warm show of support at the end. You're right that it's a huge task and that we'll need all the luck we can get.
Expert in software patents or patent law? Contribute to the ESP wiki!
FTA: "Cisco is going to release, under the BSD license, an H.264 stack, and build it into binary modules compiled for all popular or feasibly supportable platforms, which can be loaded into any application (including Firefox)."
From your comment: ..."since it lacks copyleft provisions to actually make the source open."
Looks like the source will be open, since they are releasing the stack under the BSD license. Looks like people will be able to do anything they want with it, including making baby mulchers, angel summoning portals, and *gasp* video player implementations. Oh, HORRORS, people might not submit their code back to Cisco after attributing their source to them (as simply doing so will allow people to find, oh, I don't know, the source that Cisco is offering for free under a BSD license?).
The only issue is with the fact that Cisco is having to provide a shield using the BSD license between MPEG LA and the rest of the world, while paying a hefty licensing fee for the privilege. However, using a BSD license means they cannot have any unreasonable hold over the source once it is out in the open. If anything, Cisco is a good guy in this (god, did I just say that?).
For the same reason that long division should be free: it's an algorithm.
Because the H.264 video format is only worth money because of the network and incumbency effects, not because it is better. A video format is a natural monopoly. VP8 is just as good as H.264, and free, but that is not enough to displace H.264 because H.264 has a monopoly via the network effect.
If we were talking about a program such as Photoshop, where the barriers to entry is most determined by your ability to make a better photo editor, it would not be the same thing. There is good reason that the other examples in the summary are "TCP/IP, HTTP, and HTML", all of which are not terribly hard to replace, but which have powerful positions because of the network and incumbency effects.
Why should a codec be free? Or when you say "in a perfect world" do you really mean "I want it, therefore its wrong if I dont have it" ?
If you reduce barriers to using the technology, then more people can receive its benefits and create wonderful things from it, from which yet more people benefit. TCP/IP, HTTP, HTML, SMTP, etc. worked out well in that regard.
I'm not against patents, but certainly it's better for everyone but the patent-holder if the technology is free.
I often wonder how you can guarantee something doesn't violate any prior art. Since there's no requirement for how long an existing "invention" can wait before the patent applicant "all-of-a-sudden" independently discovers that an existing idea has never been pushed through to be patent process, and since there are so many ideas out there, it would be quite hard for there to be a guarantee that something didn't think of something first. "Undisclosed source code" as it's called happens all the time. You don't file a patent for every piddling thing you do while bringing a product to market. You just do your coding / engineering job; Wait a few years, and after the product is a success, then the stock market eats and destroys the company, and the prior art is lost. You can go and ask for a bunch of patents on shit that other folks already did and didn't think was novel enough to patent. I would say that in many, if not the in the vast majority of patent infringement cases, that the people "violating" the existing patent unintentionally just proves the patent was actually obvious to an individual skilled in the art or field of the "invention". Even without knowledge of the patent existing at all, you can arrive at the same solution given a problem space. How do you know that everything you do isn't infringing a patent? More importantly, how in the fuck can you expect to funnel the entire universe of prior art through the patent examiner's head during the evaluation time constraints?
I especially like how they're not charging for the NSA code either.
-- Tigger warning: This post may contain tiggers! --
The source code is open source but patent encumbered, so you can download it alter, compile and distribute the code acording to the license. Copyright is not a problem here. The problem is the code is covered by about a billion patents owned by the mpeg la group so you cant distribute the binaries or sadly the code freely under a different set of laws not covered by most open source licences. Cisco owns a license for the patents covering this codex, so they are hosting the source code repository and the binaries so that you can use them. and if you live in a sane country without software patents you too could host and distribute them.
---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
Why should a codec be free? Or when you say "in a perfect world" do you really mean "I want it, therefore its wrong if I dont have it" ?
Why should someone who writes the software to implement a codec algorithm not be able to give their work away for free, just because someone claims to 'own' the algorithm because law pixies say they do?
It should be Cisco Releases "Open Source" Binary Module For H.264 In WebRTC :)
VP8 is just as good as H.264,
This is not actually true.
It's called "laches". If someone waits years between becoming aware of an infringement and bringing suit, the assumption in a court of equity is that he sat on his rights to let the damages pile up.
I don't see what makes you think they haven't caught on. If you've visited YouTube with Firefox or Chrome, you likely have already received WebM files (VP8 and Vorbis in a Matroska container).
VP9, developed by the On2 division of Google, is the competitor to H.265. Daala is the competitor to H.266, and from what I've seen, it'll be as big of an improvement over currently popular codecs as JPEG was over heavily-dithered GIF for photographic images.
If this license and "modules" covers encoding as well as decoding, AND The Motion Picture Experts Group Licensing Association doesn't decide to rescind their moratorium on charging license fees for the amazing innovative "actually sending the video over the internet" parts of the patent pool, at least this will allow some basic participation in online using the lower-quality "baseline" profile (only, as far as I know) without paying a poll tax to use their Intellectual Precious.
However, I would also assume this doesn't include AAC or MP3 patents either, so unless "consumers" start using Opus (preferable - Opus is awesome) for their audio codec [and it's packageable with h.264 video in some legally-usable manner], you'll still be limited to providing "silent movies".
If the MPEG License Ass. was serious about killing VP[0-9]+, they'd explicitly waive license fees for any implementation of the h.264 encoding and decoding algorithms that are implemented in "software" intended to be executed on a general-purpose CPU (i.e. no dedicated "hardware decoding/encoding") and which is released under an OSI-approved license (if they really wanted to troll, they could mandate that it be a share-alike license like the GPL, just to make a subset of people throw a tantrum). This wouldn't cost them anything (people with money who are "selling" software and/or making dedicated hardware for encoding and decoding h.264 would still be paying them anyway), but there'd still be a legally-free path for everyone else to participate using h.264 (i.e. Mozilla et al could implement software encoders and decoders to distribute). This would eliminate the need for any of the current-generation "alternative"/free codecs entirely, leaving them only daala to have to compete with later, and completely undermining what little momentum Google has bothered to get going on the VP* codecs.
Given how much sense this would seem to make, though, I wouldn't expect the MPEG License Ass. to even consider it.
Hacker Public Radio is our Friend
I guess the solution actually is to create more standards. If everyone already uses three or four video formats, it won't be so difficult to topple one that isn't playing nice.
Get 'em while they're hot!
Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
So, by your definition then, public domain is open source?
I'm not saying Cisco isn't being the good guy here. They are. For their own gain, sure, but the result is the same. That's quite separate from my dislike of the BSD license.
There will be 2 ways to use this. You can either download the source code and use it in your code (in which case you have to pay the h.264 patent royalties yourself) OR you can have your program download the binary blob from Cisco directly in which case any download your end users make is covered by Cisco's license for the H.264 patents.
Cisco have also said they will accept (and host) binaries for OSs and architectures where ports are done by the community, meaning that if someone happens to want a binary for, say, a SPARC port or a port to OS/2, Cisco will host those binaries and give you the same patent coverage.
Consider http://thewikiman.allsup.co/MegaMetaPatent, and how what is described there could represent any patent. Then consider ways of scrambling the language and perhaps making things just specific enough to get a patent granted, then rinse-lather-repeat until you've mined out your desired area of the market.
John_Chalisque
Try transmitting an hour of Full HD video compressed with MPEG1. Also, consider subtle variations on H264 for those programmers interested in experimenting. How different does a codec need to be to H264 to not be patented, and is it possible to implement a low bitrate high quality codec without violating those patents? If not, the patent effectively blocks development by a competitor, which is not good. This ability for a patent to block development if there's only a small number of sensible ways to solve a problem is the problem of the patent system, especially where software is involved.
John_Chalisque
Anybody can create their own implementation of TCP, as far as I know? You simply need to follow some standard to ensure that your stack will work with other stacks, but that's about it as far as I know!
Firefox has supported .opus files in <audio> for more than a year now and it works quite well. (I'm a raving Opus fanboy since over a year ago - I started running what would become Firefox 15 during its "Aurora" stage just because I knew it had .opus support. I've had .opus up on my "HTML5 <audio> Test Page for quite some time. (I still need to add an .alac sample on there - if it turns out that iGadgets will play that, then there's at least ONE legally-free codec they can handle...). I still need to do something productive with opuscast.com one of these days, too.
However, Google has been horrifically lazy about .opus support. Yes, they use it in WebRTC, and for remote audio for their platform-limited[1] "chromoting" VNC-replacement system. Yet, they still, as far as I can tell, refuse to enable .opus playback in <audio> by default, apparently because they only care about it in .webm files and don't want it enabled until they've finalized the specs for vp9/opus .webm2 files. (For the record, if you manually enable it, it HAS worked since at least Chrom(e|ium) 26 or so, but only if you dig up the setting for "enable opus in <video>[sic]" and manually switch it on, or include "--enable-opus-playback" (I think) when starting the browser from a command-line. Even the new Android ("KitKat®") still appears to lack native opus support as far as I can see from the release notes. Very annoying. Anyway, that's where my comment about "if" up there comes from. If Google can enable WebRTC then stall indefinitely before maybe enabling .opus playback in regular web audio, others who implement WebRTC may do the same.
I could easily imagine Apple doing this intentionally, just to be jerks. Microsoft might be more reasonable, but given how far behind they tend to be on the web, their digression with the special "CU-RTC-Web" alternative to WebRTC may stall THEIR implementation of the standard and inclusion of .opus support for years out of shear nonfeasance. (The Curtsyweb digression apparently has nothing whatsoever to do with the Opus codec and apparently Microsoft's Skype division is all on board with it, so at least that much is hopeful).
[1] It's only partially-functional on Linux - no "desktop"-level remote support, as I understand it, but I think you can remote just the chrome browser view itself.
Hacker Public Radio is our Friend