Configuration of Fobs4JMF
Fobs4JMF is a JMF PlugIn which allows to use the wide range of formats supported by ffmpeg in your Java applications. It uses the C++ API provided by Fobs and JNI to make it avialable at the Java side. This plugin integrates perfectly in the Java Media Framework, allowing existing and new applications to open and edit video and audio files in all the formats supported by ffmpeg using the standard JMF API.
In this section you can find the necessary steps to get it working using pre-built binaries. You can get this binaries from the download section (MacOSX, Linux and Win32) or build them yourself using the build guide.
Installing Fobs4JMF
Users are encouraged to use the binary packages available at the downloads section. These packages include all the necessary libraries and configuration files to have the plug-in easily integrated in JMF. If you need them running in other platforms or want to know more about the necessary steps to configure the JMF to work with Fobs4JMF, see below the section "Manual Installation".
Binary packages have the following content:
|
MacOSX |
Linux |
Windows |
JMF Files |
jmf.jar
jmf.properties |
jmf.jar
jmf.properties |
jmf.jar
jmf.properties |
Fobs4JMF Files |
fobs4jmf.jar
libfobs4jmf.jnilib |
fobs4jmf.jar
libfobs4jmf.so |
fobs4jmf.jar
fobs4jmf.dll |
Launchers |
Fobs_JMStudio.app
runjmstudio.sh |
runjmstudio.sh |
Fobs_jmstudio.exe
runjmstudio.bat |
The first set of files (JMF Files) is the JMF Library (2.1.1e) along with a customized properties file. This properties file has been prepared to let JMF know about Fobs4JMF and to use Fobs4JMF native classes by default. This file (jmf.properties) can be created using JMStudio (File->preferences) or JMFRegistry. The necessary changes to be done in order to register Fobs4JMF plugin are described in the "Manual Installation" section below. This file can be distributed with your application to ease the installation and use of Fobs4JMF based software. Note also that the plugin is compatible with all distributions of JMF (AllJava, Windows, Linux, Solaris, etc). More information about JMF can be found in the Java Media Framework section within the Java Official Site.
Note! JMF searches for jmf.properties file in the folder where jmf.jar is located. This means that jmf.jar and jmf.properties files must be together in the same directory.
The next set of files (Fobs4JMF Files) is the plugin. The plugin has two parts: the Java/JMF part (fobs4JMF.jar) and the Native part (fobs4JMF.<dynlib suffix>). The Java/JMF part is common to all platforms; all the platform related issues are solved within the native part of the plugin. Note that each OS manages dynamic libraries differently and uses different naming/location conventions to search for JNI libraries: - MacOSX Users: The dynamic library must be contained either in the current directory (from where the application using JMF has been launched) or in any of the DYLD_LIBRARY_PATH directories.
- Linux Users: The same but with LD_LIBRARY_PATH directories.
- Windows Users: The same but with PATH directories.
The last set of files (Launchers) has been included to help developers/users to properly launch a Fobs4JMF application. For every platform, a script is provided that is able to launch JMStudio with Fobs4JMF support. For MacOSX and Windows, a binary launcher is also provided. Developers may want to modify and use these scripts in their own applications.
Manual Installation
The installation of Fobs4JMF is very system dependent. This section contains instructions for the installation of the library in the following systems: MacOSX, Linux, Windows (MinGW).
The first steps are common for every system.
1. Install latest JMF version
2. Include $FOBS_ROOT/dist/jmf/fobs4jmf.jar into your java classpath environment variable (or include it directly in the command line invocation of java)
3. Include $FOBS_ROOT/dist/jmf/jmf.jar into your java classpath environment (or include it directly in the command line invocation of java)
4. Proceed based on your platform
MacOSX
Copy libfobs4jmf.jnilib to /usr/lib/java/libfobs4jmf.jnilib or set the DYLD_LIBRARY_PATH environment variable to include the location of your libfobs4jmf.jnilib file.
Linux
Include the $FOBS_ROOT/lib directory into LD_LIBRARY_PATH.
Windows (MinGW)
Copy fobs4jmf.dll to windows/system32 directory.
5. Register plugin in JMF
- Launch JMStudio (java JMStudio).
- Go to File->Preferences
- Enter the "Plugins" tab
- In the "Demultiplexer" tab, add the class "com.omnividea.media.parser.video.Parser" and commit. See screenshot.
- In the "Codec" tab, add the class "com.omnividea.media.codec.video.NativeDecoder" and commit. See screenshot.
- In the "Codec" tab, add the class "com.omnividea.media.codec.audio.NativeDecoder" and commit. See screenshot.
- In the "Codec" tab, add the class "com.omnividea.media.codec.video.JavaDecoder" and commit. See screenshot.
- Go to the "Packages" tab
- Include "com.omnividea" in both the Protocol Prefix and the
Context Prefix list. Move both of them up to the first position. Commit both. See screenshot.
NOTE! Setting "com.omnividea" at the top of the Content Prefix list is not necessary and indeed it hangs JMF as of 0.3 version (due to the Fobs own processor currently under development).
After these steps, the jmf plugin is installed in the system and will be used automatically when needed, not only by JMStudio but also by any program that uses the JMF plugin. |