Class ProcessWrapper
java.lang.Object
ws.schild.jave.process.ProcessWrapper
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
FFMPEGProcess
A ffmpeg process wrapper.
-
Field Summary
FieldsModifier and TypeFieldDescriptionArguments for the executable.private InputStreamA stream reading from the ffmpeg process standard error channel.private ProcessThe process representing the ffmpeg execution.private final StringThe path of the ffmpeg executable.private ProcessKillerA process killer to kill the ffmpeg process with a shutdown hook, useful if the jvm execution is shutted down during an ongoing encoding process.private InputStreamA stream reading from the ffmpeg process standard output channel.private static final org.slf4j.Loggerprivate OutputStreamA stream writing in the ffmpeg process standard input channel. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddArgument(String arg) Adds an argument to the ffmpeg executable call.voidclose()voiddestroy()If there's a ffmpeg execution in progress, it kills it.enhanceArguments(Stream<String> execArgs) Provide an opportunity for subclasses to enhance the argument list before passing off to execute.voidexecute()Executes the ffmpeg process with the previous given arguments.voidexecute(boolean destroyOnRuntimeShutdown, boolean openIOStreams) Executes the ffmpeg process with the previous given arguments.Returns a stream reading from the ffmpeg process standard error channel.Returns a stream reading from the ffmpeg process standard output channel.Returns a stream writing in the ffmpeg process standard input channel.intReturn the exit code of the ffmpeg process If the process is not yet terminated, it waits for the termination of the process
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
ffmpegExecutablePath
The path of the ffmpeg executable. -
args
-
ffmpeg
The process representing the ffmpeg execution. -
ffmpegKiller
A process killer to kill the ffmpeg process with a shutdown hook, useful if the jvm execution is shutted down during an ongoing encoding process. -
inputStream
A stream reading from the ffmpeg process standard output channel. -
outputStream
A stream writing in the ffmpeg process standard input channel. -
errorStream
A stream reading from the ffmpeg process standard error channel.
-
-
Constructor Details
-
ProcessWrapper
It build the executor.- Parameters:
ffmpegExecutablePath- The path of the ffmpeg executable.
-
-
Method Details
-
addArgument
Adds an argument to the ffmpeg executable call.- Parameters:
arg- The argument.
-
execute
Executes the ffmpeg process with the previous given arguments.- Parameters:
destroyOnRuntimeShutdown- destroy process if the runtime VM is shutdownopenIOStreams- Open IO streams for input/output and errorout, should be false when destroyOnRuntimeShutdown is false too- Throws:
IOException- If the process call fails.
-
enhanceArguments
-
execute
Executes the ffmpeg process with the previous given arguments. Default to kill processes when the JVM terminates, and the various IOStreams are opened as required- Throws:
IOException- If the process call fails.
-
getInputStream
Returns a stream reading from the ffmpeg process standard output channel.- Returns:
- A stream reading from the ffmpeg process standard output channel.
-
getOutputStream
Returns a stream writing in the ffmpeg process standard input channel.- Returns:
- A stream writing in the ffmpeg process standard input channel.
-
getErrorStream
Returns a stream reading from the ffmpeg process standard error channel.- Returns:
- A stream reading from the ffmpeg process standard error channel.
-
destroy
public void destroy()If there's a ffmpeg execution in progress, it kills it. -
getProcessExitCode
public int getProcessExitCode()Return the exit code of the ffmpeg process If the process is not yet terminated, it waits for the termination of the process- Returns:
- process exit code
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-