ok, thanks! now I have an explicit error now which helps with the debugging. The error returned is:

dyld: Library not loaded: /opt/local/lib/libavformat.dylib
Referenced from: /opt/local/bin/ffmpeg
Reason: Incompatible library version: ffmpeg requires version 52.0.0 or later but libavformat.dylib provides version 51.1.0

This brings me back to the question of how the environment is different between shoes and irb? There must be some difference otherwise the same libraries would be loaded in the working irb call and the non-working shoes call.

Do I need to specify more paths for shoes that may be specified for irb in my .bash_login? Or less likely, is there a conflicting version of this library in use by shoes?

Thanks,
Noah

On May 21, 2009, at 12:43 PM, Seth Thomas Rasmussen wrote:

On Thu, May 21, 2009 at 3:41 PM, Seth Thomas Rasmussen
<[email protected]> wrote:
On Thu, May 21, 2009 at 3:11 PM, Noah Thorp <[email protected]> wrote:
I'm seeing some odd behavior with system calls. Maybe you can help.

My goal is to build a simple cross-platform wrapper around ffmpeg. When I make a system call in shoes it can execute the "date" command but not the
"ffmpeg" command.

Examples:
This returns the date in shoes: `date`
This returns the man page in shoes: `man ffmpeg`
This returns the ffmpeg help in irb: `ffmpeg -h`
This returns ***an empty string**** in shoes: `ffmpeg -h`
This returns ***false**** in shoes: system("ffmpeg -h")

- I have tried matching the permissions for the date command.
- Using full paths does not change the behaviors.
- backticks, "system", and IO.popen all have the same behavior

Is there some environment issue for shoes that could be causing this?

FFmpeg prints everything to stderr, I think.

Or rather, that is the case when executed in this way from Ruby. Or
something. At any rate, 2>&1 will work.

--
Seth Thomas Rasmussen
http://greatseth.com

Reply via email to