2016-08-05 50 views
0

我很新使用ffmpeg庫。我用這個http://writingminds.github.io/ffmpeg-android-java/添加庫到我的android studio項目。它工作得很好,當我運行命令-version-devices 然而,當我嘗試任何命令-i開頭,如例如-i video.avi我得到的錯誤:Android ffmpeg庫使用

onFailure處:ffmpeg的版本n3.0.1版權所有(C)2000年至2016年使用gcc 4.8(GCC)配置構建的FFmpeg開發者:--target-os = linux --cross-prefix =/home/vagrant/SourceCode/ffmpeg -Android/toolchain-android/bin/arm-linux-androideabi- arch = arm --cpu = cortex-a8 --enable-runtime-cpudetect --sysroot =/home/vagrant/SourceCode/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-hardcoded-tables --disable -ffplay --disable -ffprobe --enable-gpl --enable -yasm --disable-doc - -disable-shared --enable-static --pkg-config =/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix =/home/vagrant/SourceCode/ffmpeg-android/build/armeabi- v7a --extra-cflags =' - I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 2 -fno-strict-overflow -fstack-protector-all'--extra-ldflags =' - L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -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無法識別的選項'i /storage/emulated/0/Movies/test4.avi'。錯誤分裂參數列表:選項未找到

我做錯了什麼?任何人都知道爲什麼像「-i」這樣的基本命令不起作用?

+0

不知道爲什麼。但我有一個線索:錯誤說''我/存儲/模擬/ 0 /電影/ test4.avi'是無法識別的。這意味着ffmpeg需要''i/storage/emulated/0/Movies/test4.avi''作爲選項。它的作用就像使用這個命令調用ffmpeg:'ffmpeg - 「不是一個選項」'。這將報告'not a option' is unrecognized,while if calling with'ffmpeg -not a option',ffmpeg will complain'not' is unrecognized。 – halfelf

回答

2

寫你的命令是這樣

String[] command = new String[]{ 

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

謝謝,這有助於 –

0

根據錯誤,我認爲你的視頻已經在.avi格式。請嘗試.mp4格式並檢查是否有問題。

+0

是的,它是.avi格式。但根據http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs 我的命令-i test4.avi應該只返回關於這個視頻文件的信息。沒有轉換或任何東西。 另外我檢查了.mp4格式。沒有什麼改變 –

+0

我用ffmpeg進行視頻壓縮,並且工作得很好。我沒有得到你的錯誤的真正原因。你可以請檢查是否有空間 - 我在你的代碼 – Nivedh

+0

FfmpegCMD(new String [] {「 - i」+ inPath +「});當然有空間 –

0

我有點晚,但它的工作原理是這樣的:

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

這段代碼的問題是,整個命令被認爲是一種選擇因此,通過使用提供的代碼將每個選項和每個選項的值分開。希望它能幫助別人。