2014-09-01 4 views
6

Ich habe eine ausführbare Datei ffmpeg kompiliert für ARM Android in meinem Ordner /data/data/APP/files, mit ausführbarer Erlaubnis. Ich versuche, einen Befehl basierend auf einem aus der FFmpeg site extrahierten Beispiel auszuführen.Run FFmpeg ausführbare Binärdatei in Android

Dies ist die Befehlszeile Ich eingeben:

./ffmpeg -loop 1 -i /mnt/sdcard/com.example.test/image.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.test/video.mp4 

Mein objetive ist es aus meiner App auszuführen, sondern auch in Befehlszeile, ich diesen Fehler:

./ffmpeg: 1: Syntax error: "(" unexpected 

Weiß jemand, was ist und wie man es löst?

- UPDATE

fand ich ein newer version und ich glaube, ich durch diesen Fehler übergeben.

Aber jetzt, für jeden Anruf ffmpeg ausführbare Datei, ich bin immer ein Fehler wie folgt aus:

# ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 
[1] + Stopped (signal)  ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 
[1] Segmentation fault  ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 

Was ist das?

+0

Hey Diego, kannst du mir sagen, auf welcher Android O/S du das verwendest? Dieser Build unterstützt nur JB + Geräte. –

+0

Ich habe gerade versucht, über Befehl auszuführen und in der Lage, Ausgabedatei erfolgreich zu generieren, überprüfen Sie die Ausgabe hier https://gist.github.com/hiteshsondhi88/48783de48248ab72fc23, ich habe auch vordefinierte Binärdateien zum Projekt hinzugefügt, die Sie verwenden können, Segmentierungsfehler treten möglicherweise aufgrund einer falschen Binärdatei auf, dh Sie verwenden möglicherweise Neon-Binärdateien auf Nicht-Neon-Geräten. –

+0

Gut. Ich weiß nicht, was das eigentliche Problem war. Ich habe diesen Fehler erhalten, indem ich die Befehlszeile in einen Level-19-API-Emulator laufen ließ. Ich löste mein Problem, indem ich es mit 'logcatProc = Runtime.getRuntime() .exec();' in meiner App programmierte und die App auf meinem echten Gerät (Galaxy S2 mit ICS API 15) ausführte. –

Antwort

1

Ich löste mein Problem durch die Verwendung von Hinweisen und Dateien von @HiteshSondhi auf Cross Compiling FFmpeg with x264 for Android.

Eigentlich habe ich nicht das ganze FFmpeg selbst zusammengestellt. Stattdessen habe ich die SampleFFmpegApp verwendet und konfiguriert, die er bei his GitHub page verteilt.

Und der letzte Hinweis: Testen Sie es in einem echten Gerät. Das ist der einzige Ort, an dem ich wirklich gut funktionieren könnte.

Verwandte Themen