Я пытаюсь получить информацию о файлах через ffprobe в java-приложении.Код ошибки FFmpeg 254
Я использую следующую команду:
/USR/бен/ffprobe -v тихий -print_format -show_format -show_streams JSON TESTVIDEOPATH
Running эту команду в Баш, он работает как charm: Он возвращает JSON-String, а код ошибки - «0». Running, что команда в Java приводит код ошибки «254» и результат:
{\ п} \ п
Когда я изменить команду, так что ffprobe принимает поток в качестве входных данных:
/USR/BIN/ffprobe -v -i тихий - -print_format -show_format -show_streams JSON
это работает в обоих барельеф h и Java.
В Java используется следующее:
ProcessBuilder processBuilder = new ProcessBuilder(command.split(" "));
this.process = processBuilder.start();
this.process.waitFor();
int exitCode = this.process.exitValue();
this.outputOfProcess = this.process.getInputStream();
Может кто-нибудь сказать мне, что код ошибки 254 означает? Я ничего не мог с этим поделать.
Edit: FFmpeg версии 0.10.7-6: 0.10.7-0jon1 ~ квантовое используется
Вам следует попробовать запустить его без '-v quiet' и посмотреть, что он говорит о том, почему он не работает. Возможно, есть место на пути к TESTVIDEOPATH? – blahdiblah
@blahdiblah Удаление -v тихо дало мне сообщение, что файл не найден. Причина: TESTVIDEOPATH был задан на Java с> "<, чтобы получить пробелы в пути к файлу. В bash он работал с>" <, но Java применил дополнительные escape-файлы> "<. Я сделал обходной путь для передачи TESTVIDEOPATH без><и он работает. – Akerus