Вы должны написать некоторый склеивающий код C, используя соглашения JNI, чтобы представить функции FFmpeg в коде Java. Вот пример метода JNI, реализованного в C из примеров Android NDK:
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
Вам также необходим код Java для загрузки библиотеки и объявления собственного метода.
public class HelloJni
{
public native String stringFromJNI();
static {
System.loadLibrary("hello-jni");
}
}
Я нашел этот проект на sourceforge , который уже реализовал некоторый интерфейс JNI для ffmpeg для интеграции его с Java Media Framework. Вы можете найти это полезным.
Существует еще одна технология Java FFI, называемая JNA (Java Native Access), которая позволяет объявлять прототипы собственных функций в Java и вызывать их напрямую. Для его использования может потребоваться меньше стандартного кода. См. этот проект для реализации Android. (Я никогда не использовал его сам)