2016-04-06 17 views
2

Ich versuche, ffmpeg in mein Android-Projekt hinzuzufügen. Ich benutze Ubuntu 14.04 OS.FFMPEG Fehler beim Komplettieren für Android

Ich folge diesem Link. Link

Aber ich bekomme Fehler beim Ausführen dieser Zeile.

$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --toolchain=x86-4.8 --arch=x86 --system=linux-x86_64 --platform=android-14 --install-dir=/tmp/vplayer 

Ich erhalte diesen folgenden Fehler.

HOST_OS=linux 
HOST_EXE= 
HOST_ARCH=x86_64 
HOST_TAG=linux-x86_64 
HOST_NUM_CPUS=1 
BUILD_NUM_CPUS=2 
ERROR: Unknown option '--system'. See --help for usage. 

Bitte helfen Sie mir, wie Sie dieses Problem lösen und ffmpeg in meinem Projekt hinzufügen.

Antwort

1

Sie können FFmpeg android mit implementieren FFmpeg Android Java Bibliothek in Ihrem Projekt verwenden. siehe unten

Verwendung gradle

compile 'com.writingminds:FFmpegAndroid:0.3.2' 

und implementieren Code in Ihrem Projekt, das unten ist.

laden Binary

müssen Sie Binär-Code laden.

FFmpeg ffmpeg = FFmpeg.getInstance(context); 
try { 
ffmpeg.loadBinary(new LoadBinaryResponseHandler() { 

@Override 
public void onStart() {} 

@Override 
public void onFailure() {} 

@Override 
public void onSuccess() {} 

@Override 
public void onFinish() {} 
}); 
} catch (FFmpegNotSupportedException e) { 
// Handle if FFmpeg is not supported by device 
} 

Binary Execute

Hier können Sie Pass ffmpeg Befehl für Ihre Aufgabe.

FFmpeg ffmpeg = FFmpeg.getInstance(context); 
    try { 
    // to execute "ffmpeg -version" command you just need to pass "-version" 
    ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() { 

@Override 
public void onStart() {} 

@Override 
public void onProgress(String message) {} 

@Override 
public void onFailure(String message) {} 

@Override 
public void onSuccess(String message) {} 

@Override 
public void onFinish() {} 
}); 
} catch (FFmpegCommandAlreadyRunningException e) { 
// Handle if FFmpeg is already running 
} 

Weitere Informationen reffer this Link.

+0

Hallo .. Danke für den Vorschlag. Aber jetzt benutze ich nur diese Lösungen. Aber ich kann die Kompression im Hintergrund nicht machen. Das heißt, ich möchte das Video aufnehmen und im Hintergrund komprimieren. Aber diese Lösung kann das Video nur im Vordergrund komprimieren. Das bedeutet, es hängt von der Benutzeroberfläche ab. Wir müssen die UI-Informationen injizieren. Also muss der Benutzer bis zur Komprimierung warten. Also habe ich mich nur dafür entschieden, mich dazu zu bewegen. Wenn ich den ffmpeg lib mean kompiliere kann ich den Kompiliervorgang im Hintergrund verschieben. Bitte lassen Sie mich eine andere Idee wissen. – Vijay

+0

können Sie mit onProgess Methode arbeiten, und wenn Video in großer Größe, die Sie im Hintergrund tun müssen, weil Android nicht viel Prozess verarbeiten kann. –

+0

@Ravi: - Ultimate .. sehr sehr danke Ihnen voll., Ich habe Sie für eine richtige Antwort gewählt ..Danke, aber Sie müssen Ihre Bibliothek in Antwort ändern, ich denke, Sie vergessen zu bearbeiten, –

2

Es scheint --system ist nicht als Befehlszeilenparameter erforderlich.

dies versuchen -

$ ANDROID_NDK/build/tools/make-standalone-toolchain.sh --help

Es wird Ihnen zeigen, die tatsächliche Nutzung von --system

Oder Sie können versuchen Sie, den Befehl auszuführen, ohne die Systemdetails anzugeben, hier ist was Sie ausführen können -

$ ANDROID_NDK/bauen/tools/make-standalone-toolchain.sh --toolchain = x86-4.8 --arch = x86 - Plattform = android-14 --install-dir =/tmp/vplayer

+0

Hallo .. Danke für den Vorschlag. Ich werde versuchen, Sie kurz wissen zu lassen. – Vijay

+0

Jetzt ist dieser Fehler weg. Aber jetzt habe ich ein anderes Problem in diesem Befehl. 'Toolchain konnte nicht gefunden werden: /home/vijay/Android/Sdk/ndk-bundle/toolchains/x86-4.8/prebuilt/linux-x86_64 Bitte verwenden Sie --toolchain = mit dem Namen einer Toolchain, die von der Quelle NDK unterstützt wird. ' – Vijay

+0

Funktioniert perfekt ohne' '' - System''' – Florida