Class Encoder


  • public class Encoder
    extends java.lang.Object
    Main class of the package. Instances can encode audio and video streams.
    Author:
    Carlo Pelliccia
    • Method Summary

      Modifier and Type Method Description
      void abortEncoding()
      Force the encoding process to stop
      void encode​(MultimediaObject multimediaObject, java.io.File target, EncodingAttributes attributes)
      Re-encode a multimedia file.
      void encode​(MultimediaObject multimediaObject, java.io.File target, EncodingAttributes attributes, EncoderProgressListener listener)
      Re-encode a multimedia file.
      java.lang.String[] getAudioDecoders()
      Returns a list with the names of all the audio decoders bundled with the ffmpeg distribution in use.
      java.lang.String[] getAudioEncoders()
      Returns a list with the names of all the audio encoders bundled with the ffmpeg distribution in use.
      protected java.lang.String[] getCoders​(boolean encoder, boolean audio)
      Returns a list with the names of all the coders bundled with the ffmpeg distribution in use.
      protected java.lang.String[] getSupportedCodingFormats​(boolean encoding)
      Returns a list with the names of all the file formats supported at en/de-coding time by the underlying ffmpeg distribution.A multimedia file could be encoded and generated only if the specified format is in this list.
      java.lang.String[] getSupportedDecodingFormats()
      Returns a list with the names of all the file formats supported at decoding time by the underlying ffmpeg distribution.
      java.lang.String[] getSupportedEncodingFormats()
      Returns a list with the names of all the file formats supported at encoding time by the underlying ffmpeg distribution.
      java.util.List<java.lang.String> getUnhandledMessages()
      Return the list of unhandled output messages of the ffmpeng encoder run
      java.lang.String[] getVideoDecoders()
      Returns a list with the names of all the video decoders bundled with the ffmpeg distribution in use.
      java.lang.String[] getVideoEncoders()
      Returns a list with the names of all the video encoders bundled with the ffmpeg distribution in use.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Encoder

        public Encoder()
        It builds an encoder using a DefaultFFMPEGLocator instance to locate the ffmpeg executable to use.
      • Encoder

        public Encoder​(FFMPEGLocator locator)
        It builds an encoder with a custom FFMPEGLocator.
        Parameters:
        locator - The locator picking up the ffmpeg executable used by the encoder.
    • Method Detail

      • getAudioDecoders

        public java.lang.String[] getAudioDecoders()
                                            throws EncoderException
        Returns a list with the names of all the audio decoders bundled with the ffmpeg distribution in use. An audio stream can be decoded only if a decoder for its format is available.
        Returns:
        A list with the names of all the included audio decoders.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getAudioEncoders

        public java.lang.String[] getAudioEncoders()
                                            throws EncoderException
        Returns a list with the names of all the audio encoders bundled with the ffmpeg distribution in use. An audio stream can be encoded using one of these encoders.
        Returns:
        A list with the names of all the included audio encoders.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getCoders

        protected java.lang.String[] getCoders​(boolean encoder,
                                               boolean audio)
                                        throws EncoderException
        Returns a list with the names of all the coders bundled with the ffmpeg distribution in use.
        Parameters:
        encoder - Do search encoders, else decoders
        audio - Do search for audio encodes, else video
        Returns:
        A list with the names of all the included encoders
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getVideoDecoders

        public java.lang.String[] getVideoDecoders()
                                            throws EncoderException
        Returns a list with the names of all the video decoders bundled with the ffmpeg distribution in use. A video stream can be decoded only if a decoder for its format is available.
        Returns:
        A list with the names of all the included video decoders.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getVideoEncoders

        public java.lang.String[] getVideoEncoders()
                                            throws EncoderException
        Returns a list with the names of all the video encoders bundled with the ffmpeg distribution in use. A video stream can be encoded using one of these encoders.
        Returns:
        A list with the names of all the included video encoders.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getSupportedEncodingFormats

        public java.lang.String[] getSupportedEncodingFormats()
                                                       throws EncoderException
        Returns a list with the names of all the file formats supported at encoding time by the underlying ffmpeg distribution. A multimedia file could be encoded and generated only if the specified format is in this list.
        Returns:
        A list with the names of all the supported file formats at encoding time.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getSupportedCodingFormats

        protected java.lang.String[] getSupportedCodingFormats​(boolean encoding)
                                                        throws EncoderException
        Returns a list with the names of all the file formats supported at en/de-coding time by the underlying ffmpeg distribution.A multimedia file could be encoded and generated only if the specified format is in this list.
        Parameters:
        encoding - True for encoding job, false to decode a file
        Returns:
        A list with the names of all the supported file formats at encoding time.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • getSupportedDecodingFormats

        public java.lang.String[] getSupportedDecodingFormats()
                                                       throws EncoderException
        Returns a list with the names of all the file formats supported at decoding time by the underlying ffmpeg distribution. A multimedia file could be open and decoded only if its format is in this list.
        Returns:
        A list with the names of all the supported file formats at decoding time.
        Throws:
        EncoderException - If a problem occurs calling the underlying ffmpeg executable.
      • encode

        public void encode​(MultimediaObject multimediaObject,
                           java.io.File target,
                           EncodingAttributes attributes)
                    throws java.lang.IllegalArgumentException,
                           InputFormatException,
                           EncoderException
        Re-encode a multimedia file. This method is not reentrant, instead create multiple object instances
        Parameters:
        multimediaObject - The source multimedia file. It cannot be null. Be sure this file can be decoded (see null null null null getSupportedDecodingFormats(), getAudioDecoders() and getVideoDecoders()).
        target - The target multimedia re-encoded file. It cannot be null. If this file already exists, it will be overwrited.
        attributes - A set of attributes for the encoding process.
        Throws:
        java.lang.IllegalArgumentException - If both audio and video parameters are null.
        InputFormatException - If the source multimedia file cannot be decoded.
        EncoderException - If a problems occurs during the encoding process.
      • encode

        public void encode​(MultimediaObject multimediaObject,
                           java.io.File target,
                           EncodingAttributes attributes,
                           EncoderProgressListener listener)
                    throws java.lang.IllegalArgumentException,
                           InputFormatException,
                           EncoderException
        Re-encode a multimedia file. This method is not reentrant, instead create multiple object instances
        Parameters:
        multimediaObject - The source multimedia file. It cannot be null. Be sure this file can be decoded (see null null null null getSupportedDecodingFormats(), getAudioDecoders() and getVideoDecoders()).
        target - The target multimedia re-encoded file. It cannot be null. If this file already exists, it will be overwrited.
        attributes - A set of attributes for the encoding process.
        listener - An optional progress listener for the encoding process. It can be null.
        Throws:
        java.lang.IllegalArgumentException - If both audio and video parameters are null.
        InputFormatException - If the source multimedia file cannot be decoded.
        EncoderException - If a problems occurs during the encoding process.
      • getUnhandledMessages

        public java.util.List<java.lang.String> getUnhandledMessages()
        Return the list of unhandled output messages of the ffmpeng encoder run
        Returns:
        the unhandledMessages list of unhandled messages, can be null or empty
      • abortEncoding

        public void abortEncoding()
        Force the encoding process to stop