2010-04-15 21 views
48

Ich versuche, ffmpeg für einen Android zu kompilieren. Ich habe mehrere Beiträge zu diesem Thema gefunden, aber keines davon scheint zu funktionieren. Wenn versucht wird, ffmpeg so zu erstellen, wie es auf [1] gepostet wird. Hat jemand mit diesem Tutorial erfolgreich ffmpeg kompiliert? Ich bin nicht sicher, wie Schritt 4 bis 5.ffmpeg für einen Android (mit Tutorial: "ffmpeg and Android.mk")

STEP4 zu realisieren: Konfigurieren ...

STEP5: cd zu Ihrem NDK root dir, geben Sie machen TARGET_ARCH = Arm APP = ffmpeg-org

Es scheint mir, dass das Erstellen einer Anwendung, wie es in der Anleitung in Schritt 5 erklärt wird, einige vorherige Schritte benötigt. Leider habe ich keine App im Ordner zu machen. Ich verwende das aktuelle Android-Release 3 und überprüfte die tatsächlichen ffmpeg-Releases von [3] und [4]. Ich bin dankbar für jeden Rat.

[1] http://slworkthings.wordpress.com/
[2] http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android
[3] http://ffmpeg.org/download.html

+4

Ich habe alle Antworten hier und auf vielen anderen Seiten durchgesehen und es scheint keine definitive Anleitung zum Kompilieren, Erstellen und Verwenden von ffmpeg (in einer Windows-Umgebung) für Android zu geben. Es wäre äußerst nützlich, dies zu nageln. –

+0

Ich fand folgenden Link, der funktioniert http://rowntreerob.wordpress.com/2012/06/17/ffmpeg-on-android-adding-vmware-and-ubuntu-to-best-practice/ –

Antwort

3

In NDK r3, wenn Sie den make Befehl verwenden, wird einfach das NDK den Namen des Ordners in der Verwendung "apps" Ordner für den Namen Ihres Projekts. Dies setzt voraus, dass Sie Ihre FFmpeg-Quelldateien und android.mk irgendwo innerhalb NDK/apps/ffmpeg-org/jni/

haben In anderen Worten, stellen Sie sicher, dass Ihr Ordnername auf ffmpeg-org festgelegt ist.

BEARBEITEN: Es könnte sich lohnen, NDK r4 zu verwenden, das make zu ndk-build ändert. In diesem neuen NDK muss Ihr Projekt nicht auf eine bestimmte Weise eingerichtet werden, da ndk-build Ihr Projekt einfach nach Android.mk Dateien durchsucht, um zu erfahren, was zu kompilieren ist.

20

Nach der Suche im Netz. Die einzige funktionierende Lösung, die ich gefunden habe, wird von Bambuser geliefert, die ffmpeg für ihre Android-Anwendung portiert hat.

-Code ist hier: http://bambuser.com/opensource

Grundsätzlich kopieren Sie die .so-Dateien auf Ihrem jni/lib, zusammen mit allen H-Dateien die Sie benötigen, eine JNI-Wrapper durch javah erstellen, und es funktioniert.

EDIT:

Da dieser Beitrag ein paar verpackt ffmpeg Projekte geschrieben wurde für Android aufgetaucht, einer der leichtesten und Nutzung zu kompilieren ist hier: https://github.com/guardianproject/android-ffmpeg.

Es dauert den Ansatz des statischen Kompilierens einer Binärdatei (keine Bibliothek), die zur Laufzeit durch Shell-Befehl ausgeführt wird. Suchen Sie github nach 'android ffmpeg' für Gabeln und verwandte Projekte.

Fand jedoch keine gut gepackte Methode basierte JNI-Implementierung.

+3

Brauchen Sie nicht eine C- oder C++ - Datei, die Aufrufe in die Shared Libraries machen kann oder können diese Aufrufe mit den Header-Dateien gemacht werden? –

+2

Könnten Sie das näher ausführen (auch auf @ Johns Frage)? Hast du es zur Arbeit? – slhck

+1

Hey, @Guy, denkst du, du könntest bitte erläutern, wie du das zur Arbeit gebracht hast? Möglicherweise mit einigen Codebeispielen und Anleitungen? –

3

werde ich eine weitere aktualisiert Liste der Quellen bereitzustellen, die erklären, wie zu bauen und in einigen Fällen sogar FFMPEG auf Android verwenden.

Dies ist der Führer mochte ich am meisten: http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

Wenn Sie mehr Optionen benötigen, können Sie einen Blick auf diese nehmen, die gleich gut sind:

+0

https://github.com/appunite/AndroidFFmpeg scheint auch ziemlich gut zu sein. Aber es ist ein Video-Player, und ich brauche einen Transcoder, so dass Ihr zweiter Link zu ** Android-ffmpeg-x264 ** passend aussieht, danke – Mixaz