DRM and GStreamer

Sun finally released the Opera DRM sourcecode the other day which is part of their Open Media Commons effort launched some time ago. It is interesting in the sense that its a major DRM effort with a complete implementation available.

In that regard I think its prudent to mention that we are currently working on DRM support for GStreamer at Fluendo currently. The goal is to have a framework for using various DRM systems with the GStreamer framework without interfering with the way GStreamer currently works. Opera DRM is one system we are looking into implementing support for as a proof of concept. Since its free software it fits well with our goal of releasing our DRM integration stuff as free software too (although it will allow for closed source modules to be made for things like Windows Media DRM and Fairplay for instance).

The DRM work has included a lot of thinking on our part about the implications and I think its safe to say that we love DRM as little as everyone else. On the other hand we have also seen that a lot of doors get closed on us, GStreamer and GNU/Linux due to lack of DRM support, which means people in those cases go with a Windows based solution instead. Which of course is no win for free software.

On the other side there is the question on how far you should go in trying to accomodate people too and I am sure many in the community feels that any sort of DRM support is going too far.

For me personally it comes down to a evaluation of what we can achieve and what position we are operating from. Personally I doubt technology providers will be able to dictate this, or rather if we say no then someone else will say yes (ie. Microsoft). The only group out there with the power to shut down DRM are the consumers, they need to revolt at the idea and stop buying music and movies which are using DRM. What we as a technology provider can do is try to move DRM usage in favour of the more userfriendly and fair systems.

In some ways I hope we will be able to do with DRM what we hope to accomplish with our streaming hosting platform. People come to us and ask for WMA or MP3 streaming, and we are able to give them that, but we also give them Ogg streaming as part of the package. In that way we help make sure more and more content is available as Ogg streams and through that help solve part of the chicken-egg problem that is there in regards to widespread adoption of Ogg.

Of course all that said, we are running a business at Fluendo and making money is of course one of our main objectives (companies who don’t have that objective tend not to be around for long for some reason), so I am not claiming we are altruism incorporated. But we do try to do morally ‘the right thing’ in the way we operate and do right by the community we sprung from. So I hope we do not anger the community to much by our current work.

It also have to be said that there are some technology landscape level changing agreements being part of this. I am not able to say anything more about that at this point, but we should be able to make some announcements about it during the first half of next year. Hopefully when its announced people will agree that we did the right cost/benefit calculation.

18 thoughts on “DRM and GStreamer”

  1. Let’s just say I wouldn’t want to be in the position to have to decide on whether or not to implement a DRM infrastructure. My feeling is that making the infrastructure will make the people who don’t know better (but should), use and abuse it.

    Media/content/whatever-business types don’t see the big picture, the slippery slope, the implications of DRM.

    I do believe that DRM as a technology is devoid of morals, and can be used for evil (“how many times do you want to read that book before paying yet again”) as good (signed binaries to avoid running malware, etc). There might even be good uses for DRM-protected media files (proof of authenticity of news reports or something, I don’t know). I’m just worried that having the infrastructure will make a whole bunch of less-scrupulous guys go “great, now let’s see how we can abuse this…”.

    I guess it’s like every technology – you can never turn back the clock. So I guess we’ll just have to bite the bullet and use it to our advantage too. It would be nice to have some safeguards to protect the owner of the machine – running an unverified binary black box doesn’t inspire me with confidence – even (and especially!) if it comes from a “big company”.

  2. A clarification: are you working on support for adding DRM to files to be streamed, or support for playing DRM-crippled files?

    If the former, which clients would support this DRM? It would be strange to be using GStreamer to stream out a format that it can’t play.

    If the latter, perhaps you could clarify something: exactly how do you plan to enforce DRM against users who have all the source code and can trivially change an “if(permitted)” to an “if(1)”? (Or is this just a 90% solution hoping to get the people who don’t know how or won’t bother?) “Open DRM” is an oxymoron. Fundamentally, DRM itself is giving a user a lock and a key and then trying to enforce rules on opening the lock; short of hardware-based non-extractable keys (which the %!@#!@# hardware vendors are adding to new hardware), this is completely unworkable even in proprietary systems.

  3. > Media/content/whatever-business types don’t see the big picture, the slippery slope, the implications of DRM.

    You give them far too much credit; they see exactly where DRM leads, and they want to get there as soon as they can.

    > I guess it’s like every technology – you can never turn back the clock. So I guess we’ll just have to bite the bullet and use it to our advantage too.

    Why? Proprietary software was a new creation at one point, but our response to that was to shun it and attempt to destroy it, not embrace it. The same reaction is needed for DRM, even more strongly.

    To the extent that DRM-like technologies are useful, they aren’t DRM; DRM by definition is attempting to “manage” your rights to your own data. We’ve been using signing and encryption for beneficial purposes for many years, and that isn’t DRM.

  4. Anonymous: hmmmm, no.

    Music you buy in shop is not your data. It is truely copy of copyrighted work. Owner of this work can do whatever it wants within its rights. So actually morally and legally record companies are right. However, ethically and in attitude to customers they are deadly wrong, and therefore they should be punished such way – by free market.

    But there is no free market, right?

    For DRM, solution is one – don’t buy such DRM-enabled art works and don’t support such way of doing business from companies, if you don’t like such attitude, period.

    Problem is here that most people _don’t_ care. Ohh, there was Sony, ohh disc don’t play on your Mac?

    Who GIVES a !!$#%? :)

    Most of their market is ignorant, grey mass.

    In the end – on topic – if the harsh reality asks for DRM infrastructure in Gstreamer, there should be one. I’m all about power of copyright. Hovewer, I’m against seeing customers as thiefs.

  5. > Music you buy in shop is not your data. It is truely copy of copyrighted work. Owner of this work can do whatever it wants within its rights.

    Ignoring the semantic quibble over the term “ownership” (I own the bits, as they are on my computer; they just hold a copyright which applies to those bits), the point is that their “rights” extend only as far as not permitting copies.

    > So actually morally and legally record companies are right.

    Please don’t conflate “morally” and “legally”. Legally the record companies are (unfortunately) usually right. Morally they are not, at least to me.

    > and therefore they should be punished such way – by free market.

    Oh, there I agree with you entirely; I’m not suggesting any other approach to the problem. I do, however, believe that we won’t have a real free market situation until we eliminate the various protectionism laws for industries built upon the artificial scarcity of data.

    On topic again: I do agree that providing infrastructure supporting DRM-style plugins in GStreamer is a good idea, in order to get people onto a Free platform. The idea seems similar to Wine: better to get someone running an entirely Free GNU/Linux system with the sole exception of a particular Windows application run via emulation, than for them to continue running all of Windows just because of that one application.

    It seems like DRM support is not all that complicated, as it is just another container format. Is there something in particular about DRM containers that makes them different from another muxer?

  6. One other note: a large issue with DRM is that it cannot possibly restrict only those actions which are not legal. First, because legally I can do whatever I want with the data apart from a finite set of actions, whereas any DRM system can only permit a finite set of actions and prohibit all others. Second, because for any possible non-legal action, there are legal actions which are indistinguishable from the non-legal action by the DRM system.

    So in response to the claim that the owner of a set of bits can do whatever they want within its rights, I would suggest that people would have far less problems with said owners if all they tried to control was what was within their rights.

  7. Christian, I hope you take Richard Stallmans advice about words to avoid on this one and explain DRM using the more honest description “Digital Restrictions Management” in your documentation and or at least make it obvious it is the publishers rights not the consumer or fair use rights which are being managed.

  8. As an ‘average joe’ Free Software lovin GNU/Linux user, I’m ok with GStreamer supporting DRM. That said, I use Linux on my desktop specifically to escape corporate controls over my freedom, and many of those controls relate to DRM schemes. I appreciate developers taking my concerns under consideration.

    Let me state upfront that I currently purchase all my software and music legally. Like most people, I just want to playback my music (and video) how I want – in my car CD player, on my computer (Totem), or on my portable iRiver. I want control over my long term ability to move my purchase across evolving physical or virtual mediums in order to maintain it’s long term value to me. This ability has held up in the past – I was able rip my purchased CD’s to FLAC/OGG, play them on my Windows or Linux box and my iRiver today, and I can be fairly confident that the CD music I have purchased, and made FLAC files from, will be available through whatever platforms and formats we are using 20 years from now. My worry is for these DRM formats of the future – if I buy a Blu-Ray DVD, do I have such an assurance? I use Linux, GStreamer, and OGG to protect me from this – and just need reasurrances that will continue.

    My big problem with some DRM is that it often won’t even allow people to do things that the laws of their country state *should* be legal for them to do. (ie, countries with laws ensuring Fair Use, like in the USA before DMCA).

    ** GStreamer shouldn’t preclude people in some country from writing plugins/elements so they can *legally* save/transcode their purchased media, even if it is against the DRM policy guidelines.

    GStreamer should provide a framework for ripping a Blu-Ray DVD (example) to Theora, or a “Save the decrypted version of this encrypted stream to a Theora file” pipeline – even if those are against the DRM policy. I don’t think it should actually do it out of the box… but in places where it is legal, it’s API should enable someone to write some DeCSS type plugin/element code to do so, and for some user to download those plugins from some yum repo, and then it should work.

    Of course, I also have no problem with GStreamer supporting playback of DRM restricted formats – but those formats have thus far been of little concern to me personally, except as a last resort. The first thing I do when I get my purchased CD or DVD home is rip it to an open format – and I won’t purchase media in formats I can’t at least easily make a high quality analog copy of for my own personal use. I will use a DRM restricted service to locate music I want to purchase and rip though.

  9. i feel for the Fluendo people; they truly are damned if they do and damned if they don’t. i’m one of the people who will be damning them if they do — the moment GStreamer ships with DRM, _any_ DRM, is the moment i remove it from any computers under my control.

    this because the risk is just not worth taking; the slope is too slippery, and it does indeed lead to hell. DRM is one of the things i use free software to *avoid* having to deal with. that, and spyware, adware and similar junk — if there’s a difference between those, it is only in degree, not in kind.

    i don’t run a company, so i can’t know; maybe becoming a bunch of sleazebag junk-software vendors is economically the right thing for fluendo to do. but i’d mourn their loss… for fully as long as it took me to run the relevant “rpm -e –nodep”‘s.

  10. Hmm. While I believe that you’re doing this with good intentions, I think it can only end badly. Give an inch to people who think this way, and they’ll take a mile. You talk about users being the only ones who can stand against this, but to do that, they need to have a DRM-free platform, where media is just media, and where they can plainly see that there’s a workable, more liberated alternative to the locked-down, media-controlled world of other DRM-crippled systems.

    At most, we should do what was done for CSS on linux: “support” playing it, but not enforcing the rules that usually come along with such support. If that means hosting decoders in russia or botswana, and providing download scripts instead of binaries on install cds, then that’s better than the alternative.

  11. On fluendo… I used to work for a company that did nothing BUT streaming media, and we never had a need for such things. If you give people the tools to abuse people’s rights, they’ll find a way to use them, just like to someone with a hammer, everything looks like a nail. But, if we only give them tools to help society communicate and share information, then we can be proud of what we’ve done, and we can be sure that at least the conscientious people will use it.

  12. Why can’t we just get support for playing non-DRM content? you guys have been saying that you’re going to make plugins available for gstreamer for how long now? All most people want windows media, quicktime, real media plugins for is so they can download non-DRM content anyway. I never use DRM content not even on windows. If somehing wants me to download a license I just don’t view it. The entire community is having to resort to using illegal codecs with mplayer and it doesn’t support DRM as far as I know. Whats the big deal? open up your plugin store already.

  13. Current DRM systems don’t respect copyright, because they don’t respect fair use, they don’t respect the law, and are currently anti-democratic.

    Of course artists, and all others that work to delivery content, deserve to be paid for their work. But DRM is not the right way to setup the balance. New business models are needed, new license schemes are also needed, new forms of deliver value are needed, more respect for copyright is needed.
    Thoes that want to be paid need to understand that DRM will only make people respect less copyright, because only thoes that obey the law will be affected by DRM, all others will just crack it.

    I respect copyright, and won’t acept losing the right to fair use, and won’t acept that the code is the law, and lawmakers are programmers and copyright controllers, instead of thoes we shoose through democratic processes.

    You shouldn’t support any form of DRM at least while DRM doesn’t respect the law and while it perverts democracy.

    Currently, accepting any sort of DRM is acepting this pervertions, that will kill the real purpose of copyright.

  14. I think people should step back a bit:

    Adding an (I assume) optional DRM plugin to Gstreamer isn’t going to stop anyone from using ogg files and mp3’s, even if those contain completely illegal content!

    I think the idea is that Fluendo is going to give us the option to install a plugin, so we have the *option* of playing these crippled files.

    One can choose not to install the DRM part, and that’s that – end of story.

    So the only problem is: is having the DRM *option* available to us beneficial, or not? There will be definitely less people complaining to content providers that they should use a non-crippled format – as playing the crippled format works, sort-of (within the parameters the content provider sets).

    As others have pointed out, the situation is not unlike WINE; some people say that having WINE doesn’t encourage software companies to provide native ports; others will say that those companies wouldn’t have provided native ports in any case.

  15. I think, there is no way to put DRM into linux without taking away freedom to modify source and use this modified linux. I prefer this freedom over any DRMed content.

  16. Beside the moral and ethical discussion (I think DRM is evil, can never be used for good things and we should fight it, not support it, and imho it’s a very bad move from the gstreamer, especially after sonys DRM infrightening the copyright of other multimedia-OS-projects), some simple technical question:

    HOW should this work? I know a bit how gstreamer works. You have elements you can link, like this:
    filesrc location=bla ! somedecodingstuff ! someoutputsink

    Now, who or what stops me from changing
    filesrc location=drmcrippledfile ! somedrmstuff ! ! someoutputsink
    to
    filesrc location=drmcrippledfile ! somedrmstuff ! somethingthatwritestodisk
    ?

    Ok, you could change the somededrmstuff to only link to direct output sinks. But the source, at least the source of gstreamer, is open. This can imho never work (and if it does, please explain it to me).
    The only way DRM can work is that everything from removing the DRM to audio output is non-free. I cannot imagine how this fits into the gstreamer concept.

Comments are closed.