title: FFMPEG Command in Android Failing to Execute
body: <p>I'm trying to execute ffmpeg commands through an android app I'm developing.</p>
  
  <p>I found this post which has been somewhat useful:
  <a href="https://stackoverflow.com/questions/15674165/problems-with-ffmpeg-command-line-on-android">Problems with ffmpeg command line on android</a></p>
  
  <p>and I downloaded a static build of ffmpeg from here: <a href="http://ffmpeg.gusari.org/static/" rel="nofollow noreferrer">http://ffmpeg.gusari.org/static/</a></p>
  
  <p>The problem is, when this code runs</p>
  
  <pre><code>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();
      }
    }
  </code></pre>
  
  <p>It fails when trying to start the process with</p>
  
  <pre><code>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]
  </code></pre>
  
  <p>I understand from the stackoverflow post I mentioned above that the ffmpeg static build needs to be on my device otherwise my app cannot use it.</p>
  
  <p>However I'm unsure how to get it in the /data/data/com.example.zovideo folder as needed.</p>
  
  <p>I have done is download the latest static ffmpeg build from  <a href="http://ffmpeg.gusari.org/static/" rel="nofollow noreferrer">http://ffmpeg.gusari.org/static/</a> and copied it into my libs/armeabi and libs/armeabi-v7a folders but this obviously hasn't succeeded in getting into the data/data folder when my app is installed onto my device. 
  (I feel like I'm being an idiot by copy/pasting the files but I don't know what else to do. I don't know how to compile it myself - I have compiled ffmpeg using a Roman10 tutorial but this produces .so files which from which I understand is not what I need)</p>
  
  <p>So I'm a little stuck.
  Any advice is greatly appreciated. Thanks</p>