VideoHelp Forum
+ Reply to Thread
Results 1 to 24 of 24
Thread
  1. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    Hi ,

    probably related issues have already been raised before. If so, it would be great if someone knows the respective topics and could provide a link which gives answers to my questions. If not:

    I'm thinking about selling a software which uses video codecs (such as Xvid etc) to save avi files. It can also open mpeg files. I'm not really familiar with all the formats and codecs names, so please bear with me if I mix up something here

    anyway, my questions are - having read a lot about licenses, mpeg LA, royalties etc - does anyone know if I need to obtain such a license for the software? From what I understand making videos with the help of such codecs and using them commercially means that one has to pay for that. But what about just the commercial software which only reads videos and creates avis and doesn't sell them (but still uses the codecs to create them)? If anyone has experience with that I'd also like to know about the royalties that have to be paid. Is it a lump sum or dependent on the number of copies that I sell? Sorry for all those questions, I tried to find answers on the net the whole day but I couldn't come up with useful info so far ...

    Best
    cen
    Last edited by cen; 22nd Mar 2012 at 14:18.
    Quote Quote  
  2. "such as Xvid etc" depending on how you use them you need to pay license fees to them,... different formats different rules
    -> as a start you might want to read up on GPL and LGPL

    afaik using Xvid (the encoder) for example should be free unless the country you are in requires special licenses and you respect the GPL v2.
    for mp3 (en-/decoder) licensing, see: http://mp3licensing.com/royalty/
    for x264 (encoder) licensing, see: http://x264licensing.com/

    btw. for decoding some commercial NLE tools tell their users to install ffdshow for decoding,... (-> since they do not ship the decoders with their product, they do not need to play licenses for the decoders)
    Quote Quote  
  3. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    Hi Selur,

    thank you for the information. I conclude that you are German, too. Haven't checked if it's okay to write in German here but if so that would be no prob of course

    I've often seen a GPL license but never read one before. So from what I can see it means that the source code of the program has to be provided and the user can distribute as much free copies as he wants to:

    Copyleft licenses (for software) require that information necessary for reproducing and modifying the work must be made available to recipients of the executable. The source code files will usually contain a copy of the license terms and acknowledge the author(s).
    source: http://en.wikipedia.org/wiki/Copyleft

    the links are very helpful as they give a first clue what using those codecs in an application actually costs. I just wonder how they want to find out how many units (= copies?) I sell.

    hmm, I know ffdshow and in fact, that's what would need to be installed to save the avi files with my software. So, you are saying that if I don't provide the codecs but instruct the users to install ffdshow I won't need to care about the codec fees. Sounds good, I just hope there's no backdoor that allows codec developers still to demand fees. They could perhaps argue that my commercial software can be used to apply their codecs via ffdshow (which can be easily obtained by anyone) and hence I should pay - just for the possibility. I would also need to request users to install ffdshow... so... I don't know if it's a dead certain thing.

    Cheers
    Cen

    edit: just noticed... jpg and PDF files are included in the software, too...
    Last edited by cen; 23rd Mar 2012 at 14:54.
    Quote Quote  
  4. in fact, that's what would need to be installed to save the avi files with my software.
    That's kind of odd since afaik ffdshow itself does not provide anything that can be used to write .avi files,..
    (it does provide vfw en- and decoders and it does provide DirectShow Decoders, but no Splitter,...)

    I just wonder how they want to find out how many units (= copies?) I sell.
    They probably will sue you if they assume that you sell more units than you paid licenses with them.


    Just out of curiosity which language did you write you app in? (are you using vfw, directshow or directly the dlls of the encoders?)

    Cu Selur

    Ps.: wish you all the best luck with your application, since X->avi apps have a hard time nowadays, since there are a lot of real good freeware alternatives for X -> avi conversions.
    Quote Quote  
  5. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    I think what writes the avi files (cvVideoWriter) uses codecs from ffdshow / xvid to do so. As I said, I'm not very familiar with video codecs and when or how they are used ... just modifying the frames and saving them (not a conversion tool), that's what I do, what the software does Of course as soon as I should decide going ahead with selling the product I will need to know exactly which codecs are used. The price would be affordable to everyone, anyway.

    no, they won't sue me for that as I don't intend to sell copies I haven't paid the fees for. If I sell it I want to make sure that everything's legal. Still, I wonder how they would be able to check it

    I'm writing in C++ using OpenCV.

    edit:
    here are some of the compression alternatives cvVideoWriter provides

    x264vfw - H.264/MPEG 4 AVC
    ffdShow Video Codec
    X-VID mpeg 4 codec

    (of course those codecs are those which are provided by the codec software I've installed (Xvid, ffdshow etc))
    Last edited by cen; 23rd Mar 2012 at 15:44.
    Quote Quote  
  6. just modifying the frames and saving them (not a conversion tool)
    If you modify the frame you need to decode and encode it so it is a conversion tool.

    cvVideoWriter
    ah okay, openCV is probably using the ff_*.dll and the ffmpeg.dll that are installed with ffdshow and vfw as a fallback.

    Cu Selur
    Quote Quote  
  7. x264 is a h.264 encoder. For a commercial product that uses h.264 compression you will need an h.264 license.
    http://www.mpegla.com/main/default.aspx
    Quote Quote  
  8. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    Originally Posted by Selur View Post
    just modifying the frames and saving them (not a conversion tool)
    If you modify the frame you need to decode and encode it so it is a conversion tool.
    oh, I thought you meant format conversion

    cvVideoWriter
    ah okay, openCV is probably using the ff_*.dll and the ffmpeg.dll that are installed with ffdshow and vfw as a fallback.
    yep, see my edited last post
    Quote Quote  
  9. btw. if you do yv12 -> RGB conversions make sure to think about: 1. TV vs. PC scale and 2. ITU-R BT.709 vs. ITU-R BT.601&co differences,.. a bunch of applications mess this up an end up.

    @jagabo: don't think he needs to pay licenses as long as his tool does not provide the encoder itself. (from what I gathered looking over the OpenCV API, they only use the stuff provided by the system) But I think it's probably a good idea to write an email to the folks over at http://x264licensing.com/ for them it's probably easy to answer this definitely.
    Quote Quote  
  10. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    Originally Posted by jagabo View Post
    x264 is a h.264 encoder. For a commercial product that uses h.264 compression you will need an h.264 license.
    http://www.mpegla.com/main/default.aspx
    thanks for the link jagabo. I've been on that site yesterday but I couldn't find a page so far where they state the fees for software applications, just the fees for commercial distribution of videos that use their codecs.
    Quote Quote  
  11. Originally Posted by Selur View Post
    @jagabo: don't think he needs to pay licenses as long as his tool does not provide the encoder itself.
    I'm pretty sure that is not correct. h.264 compression is covered by many patents. An x264 license only covers the x264 code. It does not cover the patented techniques used in h.264 encoding.
    Quote Quote  
  12. see http://www.mpegla.com/main/programs/avc/Documents/AVC_TermsSummary.pdf for license costs that are required if you ship a H.264 en-/decoder for you software,..

    page 2:
    In the case of the (a) sublicenses:
    For (a) (1) branded encoder and decoder products sold both to End Users and on an OEM
    basis for incorporation into personal computers but not part of a personal computer
    operating system (a decoder, encoder, or product consisting of one decoder and one
    encoder = “unit”), royalties (beginning January 1, 2005) per Legal Entity are 0 - 100,000
    units per year = no royalty (this threshold is available to one Legal Entity in an affiliated
    group); US $0.20 per unit after first 100,000 units each year; above 5 million units per
    year, royalty = US $0.10 per unit. The maximum annual royalty (“cap”) for an Enterprise
    (commonly controlled Legal Entities) is $3.5 million per year 2005-2006, $4.25 million
    per year 2007-08, $5 million per year 2009-10, and $6.5 million per year in 2011-15.8

    for MPEG-4 ASP:
    • Decoders sold to end users and/or as Fully Functioning for PCs
    o 0 ‐ 50,000 decoders/year = no royalty (available to one legal entity in an
    affiliated group)
    o US $0.25* per decoder after first 50,000 decoders/year
    o Annual cap per Legal Entity: $1M per year prior to 2009; $1.1M in 2009; $1.2M
    in 2010; $1.25M after 2010
    • Encoders sold to end users and/or as Fully Functioning for PCs
    o 0 ‐ 50,000 encoders/year = no royalty (available to one legal entity in an
    affiliated group)
    o US $0.25* per encoder after first 50,000 encoders/year
    o Annual cap per Legal Entity: $1M per year prior to 2009; $1.1M in 2009; $1.2M
    in 2010; $1.25M after 2010
    source: http://www.mpegla.com/main/programs/M4V/Documents/m4vweb.pdf (page 8)

    ---

    @jagabo: from you reasoning each (not free) DirectShowPlayer would be required to play license for all the decoders I install through other software on my computer,...
    Last edited by Selur; 23rd Mar 2012 at 16:06.
    Quote Quote  
  13. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    thanks for the links. I will study it more carefully 2morrow, it looks a bit complicated to me and I'll need some time to go through it. Got to go now, cya guys
    Quote Quote  
  14. Originally Posted by Selur View Post
    @jagabo: from you reasoning each (not free) DirectShowPlayer would be required to play license for all the decoders I install through other software on my computer,...
    No, each player is required to pay licenses for the decoders they ship with their player.
    Quote Quote  
  15. Exactly and if your application is not shipping any en-/decoders you do not have to pay licenses, unless he is shipping an H.264 en-/decoder with his license he does not have to pay license fees.
    So if he does not ship ffdshow with his application, but let's the user install it, he does not have to pay license fees.
    Quote Quote  
  16. I have to confess, I didn't read all the posts in this thread. I assumed he was planning to ship the codecs with his product.
    Quote Quote  
  17. @cen:
    here's small list of things that popped up in my mind, you should think about in your application:
    • if you do yv12 -> RGB conversions make sure to think about
      • TV vs. PC scale
      • ITU-R BT.709 vs. ITU-R BT.601&co differences,..
    • Audio/Video delays in avi files (+ delay created by audio encoders)
    • OpenDML .avi, so you .avi files can be greater than 2GB
    • handling of vfr input (due tue online tv recorders and mobile devices not so uncommon these days
    • some of the uncommon features of .avi files: http://www.alexander-noe.com/video/amg/en_myths.html
    • ways to identify content that is not handled by ffdshow (properly)
    • Filenames in chinese/polish/russian/japanese/... all might be using different code pages
    • if you do allow to cut/modify only a small portion of a file, without re-encoding the whole thing, you should also check about key- and b-frames and how they are handled in .avi files
    • batch processing
    Quote Quote  
  18. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    thanks for the recommendations Selur, I'll take them into account as much as possible! So far I would only distribute it in English and German.

    Okay, here's a first attempt of gathering all necessities to offer my product (in regard to codecs and licenses):

    a) what my software includes:

    code written with Visual C++ 2008 Express edition (free for commercial use according to some sources, they refer to a FAQ which is no longer available though. But there's a Microsoft page which shows license terms and it seems that they don't prohibit commercial use http://www.microsoft.com/about/legal/en/us/IntellectualProperty/UseTerms/Default.aspx )

    commands/ functions/ dlls of the software OpenCV (free for commercial use under the BSD license)
    Being a permissive free software license, the license places minimal restrictions on how the software can be redistributed. This is in contrast to copyleft licenses, which have reciprocity / share-alike requirements.
    source: http://en.wikipedia.org/wiki/BSD_licenses

    jpeg, BMP, PDF files: will possibly need to use other file formats, haven't digged into that so far

    b) what my software uses/ can use but not includes:
    ffdshow, xvid codecs

    ----

    I haven't tried the software without ffdshow/ xvid but I suppose it should still be possible to read/ write at least raw AVI files and perhaps AVIs that use some older Microsoft codecs which Windows provides. So, as you both say and as I can confirm: I don't provide the codecs with the software and therefore it should be safe for me to go ahead (after checking the jpeg, BMP, PDF issue). Just need to create a license for the software which includes Microsoft terms and the BSD license of OpenCV. Any objections?

    Cheers
    Cen
    Quote Quote  
  19. code written with Visual C++ 2008 Express edition
    I agree, using VC++ 2008 Express is free for commercial use afaik,.. (btw. you might want to compile your code statically, if possible so users do not need the VC++ 2008 Runtime installed,... on Windows XP/2k systems)

    jpeg, BMP, PDF files: will possibly need to use other file formats, haven't digged into that so far
    don't think there's a problem, but instead of jpeg I would use png but that is probably more a question of taste

    Just need to create a license for the software which includes Microsoft terms and the BSD license of OpenCV. Any objections?
    Nope, seems fine to me.

    Cu Selur
    Quote Quote  
  20. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    cool. Besides creating the license this leaves me with some more technical issues to deal with such as making the software piracy-safe (entering unchartered waters here) and add a few things to make the software more attractive. As for piracy I was thinking about personalizing the software instead of an actual copy protection as I - as a beginner - certainly cannot create a protection mechanism that isn't easily dealt with by hackers

    btw. you might want to compile your code statically, if possible so users do not need the VC++ 2008 Runtime installed
    I've been using ''Multi-threaded Debug (/MTd)'' so far. Is that what you mean?

    here's a snapshot of the otpions in code generation:

    Quote Quote  
  21. yes, but for a release version you should use ''Multi-threaded /MT" (output will be smaller and faster, since no debugging is included).

    - as a beginner - certainly cannot create a protection mechanism that isn't easily dealt with by hackers
    even professionals can't
    Quote Quote  
  22. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    sorry to ask, I have used MTd so far as it worked but I don't know what the difference is between MT and MTd. The debugging you mention is that the list of warnings which is shown in the Output Build frame? Indeed the size of the program has been shrinked by more than 20% when I chose MT.
    Quote Quote  
  23. MTd includes debugging points and sorts into the code, such that a debugger like Windbg (which is part of the Windows Debugging Tools: http://msdn.microsoft.com/en-us/windows/hardware/gg463009) can use to debug the program when an error occurs.
    Normally you only use MTd during development and not for releases, since:
    1. people can't really debug the program output without the debug symbols and the source code
    2. due to the debug infos&hooks the whole code get's slower and larger

    Cu Selur
    Quote Quote  
  24. Member
    Join Date: Mar 2012
    Location: Germany
    Search Comp PM
    this helps, thank you. And thanks again to you and jabago for your help!
    Quote Quote  



Similar Threads