ofxGStreamer - osx 10.15 / xcode 12.0 / of 0.11.0

Greetings - working on a project that requires grabbing video feeds from a few H.264 IP Cameras, attempting to get ofxGStreamer up and running and hitting some issues.

It seems to be a path/linking issue related to the versions I’m working with, as the files that I’m getting an error for do exist. Has anyone had issues or luck running ofxGStreamer on osx 10.15, Xcode 12.0, of 0.11.0?

This is the main error I get:

ld: file not found: @rpath/lib/libgstnet-1.0.0.dylib for architecture x86_64

I hacked at manually linking files and a few other work arounds for a few hours but no luck, just created more issues. Here are some initial steps I took to try that replicate the issue.

  1. Fresh download of of 0.11.0, install latest GStreamer 1.18.0 (standard & dev)
  2. Setup project via Project Generator with ofxGStreamer
  3. Change Deployment Target to 10.15 after initial error on build
  4. I get the libgstnet-1.0.0.dylib not found error

After reviewing ofxGStreamer instructions, I tried to roll back to an older version of GStreamer 1.8.0 (standard, dev, libav, codecs-restricted, net) which is closest to the readme. Change Development Target to 10.11 from this error:

dylib (/Library/Frameworks/GStreamer.framework/GStreamer) was built for newer macOS version (10.11) than being linked (10.9)

Build continues to return libgstnet-1.0.0.dylib not found error.


as for the dylib not being found, are you sure you have that file in your system?
easy hack, copy it into your projects folder so it sits inside the app bundle. you can do this quite easily by adding a new build phase and run the following

rsync -aved "path/to/libgstnet-1.0.0.dylib" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/";
install_name_tool -change @executable_path/libgstnet-1.0.0.dylib @executable_path/../Frameworks/libgstnet-1.0.0.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME";

(I just copied that from another build phase which links libfmodex, I simply changed the routes)

I did this recently - my notes are a bit of a mess but if I remember there is lots of internal linkage GStreamer has which complicates things as bundled dylibs are soon out-of-date / breaking. So it was better to install latest via brew and then important to call:


Production / packaged build you can copy the libs and call:

string path = ofFilePath::getCurrentWorkingDirectory();
ofxGStreamerSetBundleEnvironment( path )

-> notes
-> commit history

Little late to the game here but wanted to thank @roymacdonald for input.

@autr I actually found your PR and was able to figure it out from there, thank you for the info and publishing your fix.

I tried so many different routes I’m not sure exactly how I got there but if anyone is looking to do this follow @autr’s notes and advice on installing with brew. From there it’s a bunch of trial and error but it is possible. Once it’s running, works like a charm!

1 Like