Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

H264 Encoders other than ffmpeg x264

The iPhone app I am working on captures images in series within certain user-defined time interval, I am looking for a way to combine these images into H264 encoded videos. I have done some research on Google, it looks like I will have to use something like ffmpeg/mencoder on iPhone? (Also found someone ported ffmpeg to iPhone, ffmpeg4iPhone)

However, I found that x264 is under GPL license, and requires me to open source my project if I use ffmpeg. Also found some people suggested to use Ogg Theora, but I will need to port it to iPhone if I use it. (Which I am not sure how to do it now).

Is there any workaround for this? Any ideas? Thanks.

like image 942
0pcl Avatar asked Dec 28 '09 10:12

0pcl


2 Answers

I think you are in a GPL-bind there and have two suggestions:

  1. Just go ahead and GPL your project. There is no reason you cannot sell open source software, and the app store's delay/penalty period will give you a nice lead time over any potential completing project with the GPL'd code. Your place on iTunes store, your motivation and any branding is probably more valuable than the source code. Plus, you can get other people to fix bugs for you. Update: As of January 2011, GPL and App Store do not mix.

  2. Have the iPhone app upload the raw images to a server and do the processing there. That way you are not releasing and distributing the FFmpeg and x264 code, and are hence not required to distribute it.

Good luck and let us know here if you get it published!

like image 129
Stu Thompson Avatar answered Oct 04 '22 18:10

Stu Thompson


Appears ffmpeg now has support for cisco's "openh264" (BSD FWIW) encoding codec:

https://www.ffmpeg.org/ffmpeg-codecs.html#libopenh264

FWIW here is what I get from my LGPL build:

ffmpeg.exe -codecs | grep h264
...
ffmpeg version n3.1.2 Copyright (c) 2000-2016 the FFmpeg developers
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv ) (encoders: libopenh264 h264_nvenc h264_qsv nvenc nvenc_h264 )

which mentions a few other encoders FWIW, and FFmpeg might support even others.

like image 28
rogerdpack Avatar answered Oct 04 '22 18:10

rogerdpack