the phrygian cap



Ohloh profile for Luis de Bethencourt

<Febrero 2017
Lu Ma Mi Ju Vi Sa Do
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28          

Creative Commons License

planet gnome
planet ubuntu
alberto ruiz
andy wingo
jeff fortin
slomo's blog
jan schmidt
vincent's random waffle

"all religions, arts and sciences are branches of the same tree. all these aspirations are directed toward ennobling man's life, lifting it from the sphere of mere physical existence and leading the individual towards freedom." albert einstein

Building GStreamer for Mac OS X and iOS

As part of the 1.4.3 release of GStreamer I helped the team by making the OS X and iOS builds. The process is easy but has a long sequence of steps. So it is worth sharing it here just in case you might want to run your own GStreamer in any of these platforms.

1. First, you need to download CMake

2. Add CMake to your PATH
$ export PATH=$PATH:/Applications/

3. Prepare the destination (as root)
$ mkdir /Library/Frameworks/GStreamer.framework
$ chown user:user /Library/Frameworks/GStreamer.framework

4. Check out the GStreamer release code
$ git clone git://
$ cd cerbero
$ git checkout -b 1.4 origin/1.4

5. Pin the commits to build
edit config/osx-universal.cbc to have the following:


recipes_commits = {
'gstreamer-1.0' : '1.4.3',
'gstreamer-1.0-static' : '1.4.3',
'gst-plugins-base-1.0' : '1.4.3',
'gst-plugins-base-1.0-static' : '1.4.3',
'gst-plugins-good-1.0' : '1.4.3',
'gst-plugins-good-1.0-static' : '1.4.3',
'gst-plugins-bad-1.0' : '1.4.3',
'gst-plugins-bad-1.0-static' : '1.4.3',
'gst-plugins-ugly-1.0' : '1.4.3',
'gst-plugins-ugly-1.0-static' : '1.4.3',
'gst-libav-1.0' : '1.4.3',
'gst-libav-1.0-static' : '1.4.3',
'gnonlin-1.0' : '1.2.1',
'gnonlin-1.0-static' : '1.2.1',
'gst-editing-services-1.0' : '1.2.1',
'gst-rtsp-server-1.0' : '1.4.3',

6. Run the bootstrap
$ ./cerbero-uninstalled bootstrap
$ echo "allow_parallel_build = True" > ~/.cerbero/cerbero.cbc

7. Run the build for OS X. Patience, it needs to build ~80 modules.
$ ./cerbero-uninstalled -c config/osx-universal.cbc package gstreamer-1.0

8. Run the build for iOS. Some extra steps are necessary for this build.
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone gettext libiconv
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc package gstreamer-1.0
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone gstreamer-ios-templates

edit: The last step, rebuilding gettext and libiconv, is not needed anymore thanks this bug fix

7 Comentarios

Referencias (TrackBacks)

URL de trackback de esta historia


De: Jon Nordby Fecha: 2014-10-07 22:25

Travis CI has (free) continious integration support for Mac OSX now. While docs for the steps are good, executable and automated steps would be better ;)

De: Thanks Fecha: 2014-10-17 05:06

Thank you very much, you saved me!!!

De: os x mavericks(10.9.5) build failed! Fecha: 2014-10-18 06:25

can you fix it?

checking for fstatvfs... yes
checking for fstatfs... yes
checking for lstat... yes
checking for posix_fadvise in fcntl.h... no
checking for scandir... configure: error:
*** No scandir function available.
Running command 'autoreconf -f -i'
Running command './configure --prefix /Library/Frameworks/GStreamer.framework/Versions/1.0 --libdir /Library/Frameworks/GStreamer.framework/Versions/1.0/lib --disable-docs --disable-maintainer-mode --disable-silent-rules --disable-introspection --build=x86_64-apple-darwinx'

Recipe 'fontconfig' failed at the build step 'configure'
Select an action to proceed:
[0] Enter the shell
[1] Rebuild the recipe from scratch
[2] Rebuild starting from the failed step
[3] Skip recipe
[4] Abort

De: help! Fecha: 2014-10-23 04:08

When do you plan to build gstreamer for os x maveticks and iOS?

De: Steve Johnson Fecha: 2015-02-17 18:36

I tried to compile for Android and got "Fatal Error: Arch not supported"

cerbero -c config/android.config package gstreamer-1.0

I'm new to GStreamer development - any suggestions?

De: Benoît L. Fecha: 2015-03-16 09:33


We had a conversation on IRC and thanks to you I finally managed to compile everything, but the final framework doesn't have the proper structure (it's only containing a "Versions" folder). Did I miss something ? Thank you !

De: Liuting Fecha: 2015-05-13 15:42

Hi Luis,

Thanks for the help, this is exactly the problem I'm trying to solve right now for my iOS app as we need 64bit support.

I was able to do everything from steps 1-6 but then I got stuck at step 7 with the error:

Recipe 'libiconv' failed at the build step 'install'
Traceback (most recent call last):
File "./cerbero/build/", line 143, in _cook_recipe
File "./cerbero/build/", line 266, in
setattr(cls, step, lambda self, name=step: step_func(self, name))
File "./cerbero/build/", line 435, in _do_step
shutil.move(src, dest)
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/", line 302, in move
copy2(src, real_dst)
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/", line 130, in copy2
copyfile(src, dst)
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/Library/Frameworks/GStreamer.framework/Versions/1.0/bin/iconv'
Select an action to proceed:
[0] Enter the shell
[1] Rebuild the recipe from scratch
[2] Rebuild starting from the failed step
[3] Skip recipe
[4] Abort

I'm running Python 2.7.8 in case that makes a difference. On OSX.

Any thoughts on where I might have gone wrong?

Many thanks.


Dirección IP: (40feb1cf90)

©2007-2015 luis de bethencourt guimera
powered by Blogalia