2013-09-13 2 views
2

Я пытаюсь получить информацию о файлах через 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 ~ квантовое используется

+0

Вам следует попробовать запустить его без '-v quiet' и посмотреть, что он говорит о том, почему он не работает. Возможно, есть место на пути к TESTVIDEOPATH? – blahdiblah

+0

@blahdiblah Удаление -v тихо дало мне сообщение, что файл не найден. Причина: TESTVIDEOPATH был задан на Java с> "<, чтобы получить пробелы в пути к файлу. В bash он работал с>" <, но Java применил дополнительные escape-файлы> "<. Я сделал обходной путь для передачи TESTVIDEOPATH без><и он работает. – Akerus

ответ

1

Код ошибки 254 для FFprobe означает: Файл не найден.

Благодаря blahdiblah для удаления наконечника -v quiet из команды.

TESTVIDEOPATH было дано с " в начале и в конце, чтобы получить пробелы в пути для работы. Выполняя это, Java вытащил эти " и добавил несколько дополнительных файлов.