Android中的FFMPEG命令无法执行

时间:2015-01-15 03:35:32

标签: android ffmpeg command

我试图通过我正在开发的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文件,我从中理解的不是我需要的文件)

所以我有点卡住了。 任何意见是极大的赞赏。感谢

1 个答案:

答案 0 :(得分:0)

这意味着您的ffmpeg尚未初始化。请使用loadBinary或在bravobit / FFmpeg-Android的情况下,调用FFmpeg.getInstance(requireActivity())。isSupported()