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,
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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With