Я пытаюсь получить продолжительность мультимедиа с помощью команды ffmpeg из программы java. Я вызываю этот метод из весеннего загрузочного приложения. Я использую ProcessBuilder
.
Объект файла действителен и существует для конфиденциальности. Я заменил путь к файлу в журналах ошибок.
Мой код указан ниже:
private String getMediaDuration(File file) {
final String command = "/usr/bin/ffmpeg -version";//-i " + file.getAbsolutePath() + " 2>&1 | grep Duration | cut -c 13-20";
try {
ProcessBuilder builder = new ProcessBuilder("/usr/bin/ffmpeg",
"-version");
builder.directory(file.getParentFile());
System.out.println("Directory : " + builder.directory().exists());
System.out.println("Directory : " + builder.directory().getAbsolutePath());
final Process process = builder.start();
final InputStream is = process.getInputStream();
final InputStreamReader isr = new InputStreamReader(is);
final BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
return line;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
К сожалению, похоже, что ничего не работает. Ошибка ниже:
java.io.IOException: Cannot run program "/usr/bin/ffmpeg -version" (in directory "/abc/xyz"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at ....getMediaDuration(FFmpegRunner.java:208)
at ....ffmpegprocessor.FFmpegRunner.run(FFmpegRunner.java:61)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 5 more
Вывод для whereis ffmpeg
ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
Пожалуйста, помогите мне понять, в чем проблема. Спасибо.