Я запускаю процесс Java для преобразования видео с помощью ffmpeg.exe.
Runtime rt = Runtime.getRuntime();
String cmd = FFMPEGFULLPATH + " -y -i " + '"' + mpeg4File + '"' + " -vcodec libx264 -vsync 2 " + '"' + H264file + '"';
Process pr = rt.exec(cmd);
ThreadedTranscoderIO errorHandler = new ThreadedTranscoderIO(pr.getErrorStream(), "Error Stream");
errorHandler.start();
ThreadedTranscoderIO inputHandler = new ThreadedTranscoderIO(pr.getInputStream(), "Output Stream");
inputHandler.start();
try {
pr.waitFor();
} catch (InterruptedException e) {
LiveApplication.logger.info("Some shit happens during convertation 2 ");
throw new IOException("UseTranscoderBlocking - Run_FFMPEG - process interrupted " + e);
}
Но когда процесс начался, иногда особенно с большими файлами, но не всегда я получаю это сообщение Windows:
Это происходит только на Windows Server 2008 и не происходило на Windows 7.
У меня есть 2 вопроса:
- Почему происходит сбой этого процесса?
- Могу ли я отловить эту ошибку в Java, закрыть это окно и продолжить выполнение потока (возможно, я перезапущу этот процесс).