I am searching for a command line argument to convert series of Images into H264 using CISCO H264. (Something like FFMPEG image to video functionality). Unfortunately, I cant use FFMPEG as I am creating a commercial application, where I use the installed codec in the client system to encode series of Images into H264. I guess FFMPEG doesnt have the licencing for H264 Binaries as CISCO H264 has which pays the Royalty for MPEGLA. If I am not mistaken. Would be great to have suggestions in both regards.
2 Answers
Depending on how you intend to use it, OpenH264 can be compiled and used in your free software. Full details can be found here:
As the video says, when coding your own application/software, there are two scenarios this covers:
1) You are free to use the OpenH264 source code directly in your app. The MPEG-LA patent royalties that arise from this do still apply even though your application is free (see citation below). The software license of your app does not matter - it may be open, closed, or even commercial. Also, whether you sell it or not doesn't matter. What matters is how many units you actually distribute. Yet, it is not as bad as you think. If you distribute <100,000 units per year, you will pay no royalties (see MPEG-LA license terms). Thus, if you write free (as in no cost) software, you can compile OpenH264 directly, and don't need to force your user to retrieve a plug-in, and don't need to worry about lawyers until you're >100,000 units distributed.
2) If you wish to avoid the MPEG-LA royalties, you should not compile the OpenH264 source code, but must allow the end user the ability to download the OpenH264 plug-in binaries for your application. You distribute your own compiled application. You don't distribute the plug-in binaries directly, but may point your user to them, or even have your app give the user to option of retrieving them. Most importantly, decision to retrieve the OpenH264 plug-in must reside with the end user when installing or running your app. Cisco is paying the end-user royalties that arise from the OpenH264 plugin, and since your commercial app only loads up the plugin, they can do that for you.
Again, you are free to choose either option above. In both cases, it doesn't matter whether your app is open, closed, free or commercial. What matters is how you'd like to cover the distribution royalties. Option 1, you pay them based on how many downloads your software gets (not how many sold). Option 2, Cisco pays them if your app links to their plug-in which is retrieved by choice by your app user.
More sources:
http://robert.ocallahan.org/2010/01/h264-licensing-and-free-software_29.html
(Please note, I am not a lawyer. This is my own technical interpretation of the Cisco H.264 video and the MPEG-LA licensing agreement. The final bottom line is, if you distribute over >100,000 units, for whatever software license or pay structure, talk to a lawyer. Less than that, don't worry much.)

- 211
- 2
- 4
First you need to understand the legal around open264. You can not compile it. Only versions compiled by cisco are covered by ciscos existing license. You can not distribute it. If you distribute an app that uses it, it can not be part of your installer. Your app must download the binary from cisco. Open264 is a library, not an executable, You need to create your own executable. You will also need libraries to read the images and convert them to the correct colorspace.Finally, The cisco encoder produces very poor quality video as apposed to x264. I would suggest just paying for a x264 license, as well as mpeg-la royalties. They are probably not as expensive as you think.

- 29,969
- 8
- 44
- 57
-
This might have been correct by the time of writing, but currently openh264 (source code, sic) is BSD-licensed, so most of the answer is based on wrong basis. I am not a lawyer, but I believe you CAN compile and distribute it, but MPEG-LA fees will still apply. – Victor Sergienko Apr 07 '14 at 12:49
-
Yes, you are correct. you can compile and distribute the code, but YOU must then pay mpeg-la. Because the poster already mentioned he can not use x264 due to licensing, my comments are 100% correct given the context of the question, but otherwise incomplete. – szatmary Apr 10 '14 at 17:19
-
I see. I'm trying to remove my downvote (answer needs to be edited yet). Yet I believe the answer is not completely correct: one CANNOT distribute x264 in a closed-source app (without paying for it, as x264 is dual-licensed), period; but one CAN distribute openh264 in a closed-source app, while he pays MPEG-LA fees. IANAL, still. – Victor Sergienko Apr 10 '14 at 19:22
-
No worries. I'll edit the answer later when I'm not on my phone. Thanks for the correction, it just makes stackoverflow better. – szatmary Apr 10 '14 at 21:37
-
Open264 may produce poorer _quality_ video, but it on the flip side, it produces better video streams. Open264 has features such as [Flexible Macroblock Ordering](https://en.wikipedia.org/wiki/Flexible_Macroblock_Ordering) ([See github](https://github.com/cisco/openh264/search?q=FMO)) that x264 does not support. This makes openh264 videos better where the network may not be 100% (dropped packets does not necessarily mean loosing the entire video stream). – Tim Groeneveld Jun 09 '16 at 18:03
-
Assuming your decoder supports FMO. Xbox doesn't for example. In addition 99% of video is HTTP/TCP on the internet. – szatmary Jun 09 '16 at 18:05