2016-08-05 48 views
0

Ich bin ziemlich neu zu verwenden von ffmpeg Bibliothek. Ich benutzte dieses http://writingminds.github.io/ffmpeg-android-java/, um meinem Android-Studio-Projekt eine Bibliothek hinzuzufügen. Es funktioniert gut, wenn ich den Befehl -version oder -devices jedoch ausgeführt, wenn ich versuche, jeden Befehl mit -i wie zum Beispiel Anfang -i video.avi ich den Fehler:Android ffmpeg Bibliothek verwenden

onFailure: ffmpeg Version n3.0.1 Copyright (c) 2000-2016 die FFmpeg-Entwickler, die mit gcc 4.8 (GCC) konfiguriert wurden: --target-os = linux --cross-prefix =/home/vagrant/Quellcode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- arch = arm --cpu = cortex-a8 --enable-laufzeit-cpudetect --sysroot =/home/vagrant/Quellcode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable -libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable -pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcodiert-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc - -disable-shared --enable-static --pkg-config =/home/vagrant/Quellcode/ffmpeg-android/ffmpeg-pkg-config --prefix =/home/vagrant/Quellcode/ffmpeg-android/build/armeabi- v7a --extra-cflags = '- I/home/vagrant/Quellcode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 2 -fno-strict-überlauf -stack-protector-all' --extra-ldflags = '- L/home/vagrant/Quellcode/ffmpeg-android/toolchain-android/lib -Wl, -z, relro-WL, -z, jetzt -pie' --extra-libs = '- lpng -lexpat -lm - -extra-cxxflags = libavutil 55. 17.103/55. 17.103 libavcodec 57. 24.102/57. 24.102 libavformat 57. 25.100/57. 25.100 libavdevice 57. 0.101/57. 0.101 libavfilter 6. 31.100/6. 31.100 libswscale 4. 0.100/4. 0.100 libswresample 2. 0.101/2. 0.101 libpostproc 54. 0.100/54. 0.100 Nicht erkannte Option 'i /storage/emulated/0/Movies/test4.avi'. Fehler beim Aufteilen der Argumentliste: Option nicht gefunden

Mache ich etwas falsch? Jemand hat eine Idee, warum Grundbefehl wie "-i" nicht funktioniert?

+0

Nicht genau warum. Aber ich habe einen Hinweis: Der Fehler besagt, dass "i/storage/emulated/0/Movies/test4.avi" nicht erkannt wird. Es bedeutet, dass ffmpeg "i/storage/emulated/0/Movies/test4.avi" als Option verwendet. Es funktioniert wie Aufruf von ffmpeg mit diesem Befehl: 'ffmpeg -" keine Option "'. Dies wird melden, dass "keine Option" nicht erkannt wird, während, wenn mit "ffmpeg -nicht eine Option" aufgerufen wird, ffmpeg beschweren wird "nicht" wird nicht erkannt. – halfelf

Antwort

2

Schreiben Sie Ihren Befehl wie diese

String[] command = new String[]{ 

        "-i", "video.avi"}; 
+0

danke, das half –

0

Nach dem Fehler denke ich, dein Video ist bereits im .avi-Format. Bitte versuchen Sie das .mp4-Format und prüfen Sie, ob ein Problem vorliegt.

+0

Ja, es ist im .avi-Format. Jedoch nach http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs mein Befehl -i test4.avi sollte nur Informationen über diese Videodatei zurückgeben. keine Konvertierung oder irgendetwas. Auch ich habe für das MP4-Format überprüft. Nichts geändert –

+0

Ich verwendete ffmpeg für Videokompression und das war fein. Ich verstehe nicht die wahre Ursache Ihres Fehlers.Können Sie bitte überprüfen, ob es Platz gibt zwischen - und ich in Ihrem Code – Nivedh

+0

FfmpegCMD (neue String [] {"- i" + inPath + "}); natürlich gibt es Platz –

0

ich ein bisschen spät bin, aber es funktioniert wie folgt:

String cmd = "Complete command you want to execute"; 
String[] myArr = cmd.split(" "); 
ffmpeg.execute(myArr, new ExecuteBinaryResponseHandler(){ 
}); 

Das Problem mit diesem Code ist, dass der gesamte Befehl als Option in Betracht gezogen wird , So trennen Sie jede Option und den Wert jeder Option, indem Sie den bereitgestellten Code verwenden. Hoffe es hilft jemandem.