FFMpeg jni in Android?

9

Ich habe FFMPEG-Executables und -Bibliotheken wie von Bambuser (http://bambuser.com/opensource) zur Verfügung gestellt. So habe ich es geschafft, die ausführbaren Android-Dateien und Libraries zu erstellen. Wie kann ich diese Bibliotheken in meinem Eclipse-Projekt verknüpfen und die FFmpeg-Funktionen von Java aufrufen? Der Open-Source-Code enthält die C-Header-Dateien.

Ich bin neu in der nativen Codierung für Android, und ich konnte keine einfache Antwort dafür finden. Im Grunde: mit einer Reihe von Android-kompatiblen Bibliotheken und einigen C-Header-Dateien, was muss ich tun, um die Funktionen dieser Bibliotheken von Java (+ Android SDK) wieder zu verwenden?

Jede Hilfe wäre willkommen.

Mit freundlichen Grüßen

Why How

    
Whyhow 05.12.2010, 08:52
quelle

1 Antwort

5

Sie müssen einen C-Leimcode schreiben, indem Sie die JNI-Konventionen verwenden, um FFmpeg-Funktionalitäten für Java-Code verfügbar zu machen. Hier ist ein Beispiel für eine JNI-Methode, die in C aus den Android NDK-Beispielen implementiert wurde:

%Vor%

Sie benötigen auch Java-Code, um die Bibliothek zu laden und die native Methode zu deklarieren.

%Vor%

Ich habe dieses Projekt auf Sourceforge gefunden, das bereits eine JNI-Schnittstelle zu ffmpeg implementiert hat, um es in das Java Media Framework zu integrieren. Sie können es nützlich finden.

Es gibt eine andere Java-FFI-Technologie namens JNA (Java Native Access), mit der Sie native Funktionsprototypen in Java deklarieren und direkt aufrufen können. Die Verwendung erfordert möglicherweise weniger Standardcode. Sehen Sie dieses Projekt für eine Android-Implementierung. (Ich habe es nie selbst benutzt)

    
Alexandre Jasmin 05.12.2010 10:11
quelle

Tags und Links