Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.io.IOException: Cannot run program "usr/bin/ffmpeg ": error=2, No such file or directory

I am experiencing errors when executing ffmpeg command from java program in Ubuntu server. When I execute in putty it executes successfully but from java it gives me the exceptions of

java.io.IOException: Cannot run program "/usr/bin/ffmpeg ": 
error=2, No such file or directory

My Code below:

public String convert3gpTomp4(File contentFile, String filename) {
    String[] cmd = new String[6];
    filename = StringUtils.substringBefore(filename, ".");      
    cmd[0] =  "/usr/bin/ffmpeg ";
    cmd[1] = "-y ";
    cmd[2] = "-i ";
    cmd[3] = contentFile.getPath();
    cmd[4] = "  -acodec copy ";
    String myfilename = filename +"eg.mp4";
    cmd[5] = contentFile.getParent() + "/" + myfilename;        

    if (execute(cmd)){
            return myfilename;
    }else{      
        return null;
    }

   }
}

public boolean execute(String[] cmd){
    try{
        Runtime rt= Runtime.getRuntime();

        Process proc = rt.exec(cmd);

        StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");
        StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
        errorGobbler.start();
        outputGobbler.start();

        int exitVal = proc.waitFor();
        String sb = outputGobbler.sb.toString();
        String eb = errorGobbler.sb.toString();

        System.out.println("Command Exceute Exit value: " + exitVal);

        proc.destroy();

        return true;
    }
    catch(java.io.IOException e ){System.out.println("IOException "+e);e.printStackTrace();}
    catch(java.lang.InterruptedException e){}

    return false;

}

Output of ffmpeg command:

/usr/bin/ffmpeg -y -i /mydata/clip1.3gp -acodec copy /mydata/clip1eg.mp4

When I run above command in putty , it executes successfully but from Java program.

In the program, I also tried with the following but no success.

usr/bin/ffmpeg
/bin/ffmpeg
ffmpeg
/root/usr/bin/ffmpeg

Please let me know where I am doing wrong.

Thanks,

like image 361
Madan Madan Avatar asked Oct 31 '22 09:10

Madan Madan


1 Answers

To find the full path of ffmpeg run the following command from your putty:

  which ffmpeg

The default path if installation was by rpm package is /usr/bin/ffmpeg.

like image 169
gromi08 Avatar answered Nov 02 '22 23:11

gromi08