This will not work.
Remember that JAVE just acts as a shell for the ffmpeg executable, that is, power options such as target encoding, volume, etc. and then basically tell JAVE to call fmpeg and pass the settings you entered using Java methods as parameters to the ffmpeg executable.
This step requires that the parameters you specify are 1. Serializable 2. Famous ffmpeg executable
Now you can argue that at least some InputStreams, such as FileInputStream, are somehow serializable, since there is a low-level file descriptor that matches this InputStream, but consider ByteArrayInputStream - I donβt know how Java implements on each platform, but I somehow I doubt that there is a corresponding file descriptor.
However, the decisive point is that the ffmpeg executable should not and should not know what a Java object of type InputStream is. The best thing he could do (at least on posix systems) is taking an integer (File DescriptorE) and try to read the data from it. However, a lot can go wrong when working with a file descriptor. For example, it may be searchable if it is a file, for example, or not, if it actually represents data read from a socket.
With joy, in Posix systems there are at least 3 file descriptors for each process, these are STDIN, STDOUT and STDERR. This is consistent with a concept in which you can input / output pipes from one process to another. I don't know if it works or how it works on Windows, but on OSX or Linux you can transfer data to the ffmpeg executable. This actually means that you will specify ffmpeg to read from the STDIN file descriptor.
Unfortunately, JAVE does not implement this ffmpeg feature, i.e. there is no method that passes data to ffmpegs STDIN.
FWIW. You can write some native (c / C ++) code and pass the Java Object 'DecodeFeed' using the JNI ( http://en.wikipedia.org/wiki/Java_Native_Interface ), which contains both the input stream and the OutputStream
The native code you need to write may include ffmpeg sources and use them to decode / transcode the input, which is read from DecodeFeed.in and then written back to DecodeFeed.out.
I do this in an Android project, you might want to look at it. https://github.com/fscz/FFmpeg-Android
Alternatively, you can fork JAVE and implement this function yourself. As you know, Java offers a way to run an executable file by calling Runtime.exec. This call returns an instance of the Process class that Process.getOutputStream offers. If you write this output stream, you are actually writing to the newly created STDIN process.
See http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html for documentation on how to create and write to a process.
And see http://ffmpeg.org/ffmpeg.html for available command line options (including reading from STDIN) for ffmpeg.