Class ProcessWrapper

java.lang.Object
ws.schild.jave.process.ProcessWrapper
All Implemented Interfaces:
AutoCloseable
Direct Known Subclasses:
FFMPEGProcess

public class ProcessWrapper extends Object implements AutoCloseable
A ffmpeg process wrapper.
Author:
Carlo Pelliccia
  • Constructor Details

    • ProcessWrapper

      public ProcessWrapper(String ffmpegExecutablePath)
      It build the executor.
      Parameters:
      ffmpegExecutablePath - The path of the ffmpeg executable.
  • Method Details

    • addArgument

      public void addArgument(String arg)
      Adds an argument to the ffmpeg executable call.
      Parameters:
      arg - The argument.
    • execute

      public void execute(boolean destroyOnRuntimeShutdown, boolean openIOStreams) throws IOException
      Executes the ffmpeg process with the previous given arguments.
      Parameters:
      destroyOnRuntimeShutdown - destroy process if the runtime VM is shutdown
      openIOStreams - Open IO streams for input/output and errorout, should be false when destroyOnRuntimeShutdown is false too
      Throws:
      IOException - If the process call fails.
    • enhanceArguments

      protected Stream<String> enhanceArguments(Stream<String> execArgs)
      Provide an opportunity for subclasses to enhance the argument list before passing off to execute.
      Parameters:
      execArgs - The current Stream of arguments
      Returns:
      A possibly enhanced stream of arguments
    • execute

      public void execute() throws IOException
      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

      public InputStream getInputStream()
      Returns a stream reading from the ffmpeg process standard output channel.
      Returns:
      A stream reading from the ffmpeg process standard output channel.
    • getOutputStream

      public OutputStream getOutputStream()
      Returns a stream writing in the ffmpeg process standard input channel.
      Returns:
      A stream writing in the ffmpeg process standard input channel.
    • getErrorStream

      public InputStream 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:
      close in interface AutoCloseable