我试图通过我正在开发的Android应用程序执行ffmpeg命令。
我发现这篇帖子有点用处: Problems with ffmpeg command line on android
我从这里下载了一个静态构建的ffmpeg:http://ffmpeg.gusari.org/static/
问题是,此代码运行时
public void merge_video(){
String[] ffmpegCommand = new String[5];
ffmpegCommand[0] = "/data/data/com.example.zovideo/ffmpeg";
ffmpegCommand[1] = "-i";
ffmpegCommand[2] = "concat:storage/emulated/0/DCIM/Camera/VID30141106_211509.mp4|storage/emulated/0/DCIM/Camera/VID30141106_211509.mp4";
ffmpegCommand[3] = "copy";
ffmpegCommand[4] = "storage/emulated/0/DCIM/ZoVideo/Output.mp4";
try {
Process ffmpegProcess = new ProcessBuilder(ffmpegCommand).redirectErrorStream(true).start();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(ffmpegProcess.getInputStream()));
Log.d(null, "*******Starting FFMPEG");
while((line = reader.readLine())!=null){
Log.d(null, "***"+line+"***");
}
Log.d(null,"****ending FFMPEG****");
} catch (IOException e) {
e.printStackTrace();
}
}
尝试使用
启动流程时失败Java.io.IOException: Error running exec(). Command: [/data/data/com.example.zovideo/ffmpeg, -i, concat:storage/emulated/0/DCIM/Camera/VID30141106_211509.mp4|storage/emulated/0/DCIM/Camera/VID30141106_211509.mp4, copy, storage/emulated/0/DCIM/ZoVideo/Output.mp4] Working Directory: null Environment: [ANDROID_ROOT=/system, EMULATED_STORAGE_SOURCE=/mnt/shell/emulated, LOOP_MOUNTPOINT=/mnt/obb, LD_PRELOAD=libsigchain.so, ANDROID_BOOTLOGO=1, EMULATED_STORAGE_TARGET=/storage/emulated, EXTERNAL_STORAGE=/storage/emulated/legacy, SYSTEMSERVERCLASSPATH=/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar, ANDROID_SOCKET_zygote=10, PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin, ANDROID_DATA=/data, ANDROID_ASSETS=/system/app, ASEC_MOUNTPOINT=/mnt/asec, BOOTCLASSPATH=/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/apache-xml.jar, ANDROID_PROPERTY_WORKSPACE=9,0, ANDROID_STORAGE=/storage]
我从上面提到的stackoverflow帖子中了解到ffmpeg静态构建需要在我的设备上,否则我的应用程序无法使用它。
但是,我不确定如何根据需要在/data/data/com.example.zovideo文件夹中获取它。
我已经完成了从http://ffmpeg.gusari.org/static/下载最新的静态ffmpeg构建并将其复制到我的libs / armeabi和libs / armeabi-v7a文件夹中,但这显然没有成功进入数据/数据我的应用程序安装到我的设备上时的文件夹。 (我觉得通过复制/粘贴文件我是一个白痴,但我不知道还能做什么。我不知道如何自己编译 - 我已经编译了ffmpeg使用了Roman10教程,但这会生成.so文件,我从中理解的不是我需要的文件)
所以我有点卡住了。 任何意见是极大的赞赏。感谢
答案 0 :(得分:0)
这意味着您的ffmpeg尚未初始化。请使用loadBinary或在bravobit / FFmpeg-Android的情况下,调用FFmpeg.getInstance(requireActivity())。isSupported()