In my fork I have switched to using popen4. I was going to send a pull req but after merging from your master my commits are a bit messed up.
Essentially it means using the Open4 gem in MRI 1.9 and the jruby IO popen4.
Please have a look at my fork as I would like to use the gem rather than a github link in my gemfile.
If you would be keen to use what I have done - please say so and I will detangle my commits to give you an easy merge.
Better compatability sounds like a good idea however this might conflict with upcoming IO hack to allow for timing out if ffmpeg freezes during encoding. Would have to ensure that both would work together before proceeding.
There is a pull request with the IO hack on issue #24 if you would like to cross reference. The commits on that fork are also rather messy so I advice to focus on the master code rather than compare history.
It was mentioned in #27 that the root of this problem is a bug in jRuby. If so I will skip this request to avoid dependency on an external gem. I'd like to give you some time to respond if you would like to disagree though.
I have commented on Issue 27
I have done some research on alternative implementations.
Looks like the jruby bug might be fixed in the next version: http://goo.gl/Z4UcX
Will therefore not do any refactoring using Open4 / popen4.
Good news is that we should run on Rubinius (HEAD in 1.9 mode) now after some fixes to the timeout patch!