Class ComposerServiceImpl

java.lang.Object
org.opencastproject.job.api.AbstractJobProducer
org.opencastproject.composer.impl.ComposerServiceImpl
All Implemented Interfaces:
org.opencastproject.composer.api.ComposerService, org.opencastproject.job.api.JobProducer, org.osgi.service.cm.ManagedService

public class ComposerServiceImpl extends org.opencastproject.job.api.AbstractJobProducer implements org.opencastproject.composer.api.ComposerService, org.osgi.service.cm.ManagedService
FFMPEG based implementation of the composer service api.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final float
    The maximum job load allowed for operations that use multiple profile (ProcessSmil, MultiEncode)
    static final int
     
    static final float
     
    static final int
     
    static final float
    default transition duration for process_smil in seconds
    static final float
    The default factor used to multiply the sum of encoding profiles load job for ProcessSmil
    static final String
     
    static final String
     
    static final String
     
    static final String
     
    static final String
     
    static final String
    Configuration for process-smil transition duration

    Fields inherited from class org.opencastproject.job.api.AbstractJobProducer

    ACCEPT_JOB_LOADS_EXCEEDING_PROPERTY, acceptJobLoadsExeedingMaxLoad, DEFAULT_ACCEPT_JOB_LOADS_EXCEEDING, executor, jobType

    Fields inherited from interface org.opencastproject.composer.api.ComposerService

    AUDIO_ONLY, BOTH, JOB_TYPE, LOWER, UPPER, VIDEO_ONLY
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new composer service instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    activate(org.osgi.service.component.ComponentContext cc)
    OSGi callback on component activation.
    org.opencastproject.job.api.Job
    composite(org.opencastproject.composer.layout.Dimension compositeTrackSize, org.opencastproject.util.data.Option<org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Track>> upperTrack, org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Track> lowerTrack, org.opencastproject.util.data.Option<org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Attachment>> watermark, String profileId, String background, String sourceAudioName)
    org.opencastproject.job.api.Job
    concat(String profileId, org.opencastproject.composer.layout.Dimension outputDimension, boolean sameCodec, org.opencastproject.mediapackage.Track... tracks)
     
    org.opencastproject.job.api.Job
    concat(String profileId, org.opencastproject.composer.layout.Dimension outputDimension, float outputFrameRate, boolean sameCodec, org.opencastproject.mediapackage.Track... tracks)
     
    org.opencastproject.job.api.Job
    convertImage(org.opencastproject.mediapackage.Attachment image, String... profileIds)
    List<org.opencastproject.mediapackage.Attachment>
    convertImageSync(org.opencastproject.mediapackage.Attachment image, String... profileIds)
    void
    OSGi callback on component deactivation.
    org.opencastproject.job.api.Job
    demux(org.opencastproject.mediapackage.Track sourceTrack, String profileId)
     
    org.opencastproject.job.api.Job
    encode(org.opencastproject.mediapackage.Track sourceTrack, String profileId)
    protected org.opencastproject.security.api.OrganizationDirectoryService
    org.opencastproject.composer.api.EncodingProfile
    getProfile(String profileId)
    protected org.opencastproject.security.api.SecurityService
    protected org.opencastproject.serviceregistry.api.ServiceRegistry
    protected org.opencastproject.security.api.UserDirectoryService
    protected void
    hlsFixReference(long id, List<File> outputs)
     
    protected void
    hlsSetReference(org.opencastproject.mediapackage.Track track)
     
    org.opencastproject.job.api.Job
    image(org.opencastproject.mediapackage.Track sourceTrack, String profileId, double... times)
    org.opencastproject.job.api.Job
    image(org.opencastproject.mediapackage.Track sourceTrack, String profileId, Map<String,String> properties)
     
    List<org.opencastproject.mediapackage.Attachment>
    imageSync(org.opencastproject.mediapackage.Track sourceTrack, String profileId, double... time)
     
    org.opencastproject.job.api.Job
    imageToVideo(org.opencastproject.mediapackage.Attachment sourceImageAttachment, String profileId, double time)
     
    protected org.opencastproject.mediapackage.Track
    inspect(org.opencastproject.job.api.Job job, URI workspaceURI)
     
    protected List<org.opencastproject.mediapackage.Track>
    inspect(org.opencastproject.job.api.Job job, List<URI> uris)
     
    protected List<org.opencastproject.mediapackage.Track>
    inspect(org.opencastproject.job.api.Job job, List<URI> uris, List<List<String>> tags)
     
    org.opencastproject.composer.api.EncodingProfile[]
    void
    OSGI callback when the configuration is updated.
    protected List<org.opencastproject.mediapackage.Track>
    multiEncode(org.opencastproject.job.api.Job job, org.opencastproject.mediapackage.Track track, List<String> profileIds)
    A single encoding process that produces multiple outputs from a single track(s) using a list of encoding profiles.
    org.opencastproject.job.api.Job
    multiEncode(org.opencastproject.mediapackage.Track sourceTrack, List<String> profileIds)
     
    org.opencastproject.job.api.Job
    mux(org.opencastproject.mediapackage.Track videoTrack, org.opencastproject.mediapackage.Track audioTrack, String profileId)
    org.opencastproject.job.api.Job
    parallelEncode(org.opencastproject.mediapackage.Track sourceTrack, String profileId)
    protected String
    process(org.opencastproject.job.api.Job job)
    protected List<org.opencastproject.mediapackage.Track>
    processSmil(org.opencastproject.job.api.Job job, org.opencastproject.smil.entity.api.Smil smil, String trackParamGroupId, String mediaType, List<String> encodingProfiles)
    Splice segments given by smil document for the given track to the new one.
    org.opencastproject.job.api.Job
    processSmil(org.opencastproject.smil.entity.api.Smil smil, String trackparamId, String mediaType, List<String> profileIds)
    ProcessSmil processes editing of one source group (which may contain multiple source tracks) to one set of outputs (to one or more encoding profiles).
    void
    setEncodingProfileReadinessIndicator(org.opencastproject.util.ReadinessIndicator unused)
     
    protected void
    setMediaInspectionService(org.opencastproject.inspection.api.MediaInspectionService mediaInspectionService)
    Sets the media inspection service
    void
    setOrganizationDirectoryService(org.opencastproject.security.api.OrganizationDirectoryService organizationDirectory)
    Sets a reference to the organization directory service.
    protected void
    Sets the profile scanner.
    void
    setSecurityService(org.opencastproject.security.api.SecurityService securityService)
    Callback for setting the security service.
    protected void
    setServiceRegistry(org.opencastproject.serviceregistry.api.ServiceRegistry serviceRegistry)
    Sets the service registry
    void
    setSmilService(org.opencastproject.smil.api.SmilService smilService)
     
    void
    setUserDirectoryService(org.opencastproject.security.api.UserDirectoryService userDirectoryService)
    Callback for setting the user directory service.
    protected void
    setWorkspace(org.opencastproject.workspace.api.Workspace workspace)
    Sets the workspace
    org.opencastproject.job.api.Job
    trim(org.opencastproject.mediapackage.Track sourceTrack, String profileId, long start, long duration)
    void
    updated(Dictionary<String,?> properties)
     

    Methods inherited from class org.opencastproject.job.api.AbstractJobProducer

    acceptJob, countJobs, finallyUpdateJob, getJobType, incident, isReadyToAccept, isReadyToAcceptJobs

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • PROCESS_SMIL_CLIP_TRANSITION_DURATION

      public static final String PROCESS_SMIL_CLIP_TRANSITION_DURATION
      Configuration for process-smil transition duration
      See Also:
    • DEFAULT_PROCESS_SMIL_CLIP_TRANSITION_DURATION

      public static final float DEFAULT_PROCESS_SMIL_CLIP_TRANSITION_DURATION
      default transition duration for process_smil in seconds
      See Also:
    • DEFAULT_JOB_LOAD_MAX_MULTIPLE_PROFILES

      public static final float DEFAULT_JOB_LOAD_MAX_MULTIPLE_PROFILES
      The maximum job load allowed for operations that use multiple profile (ProcessSmil, MultiEncode)
      See Also:
    • DEFAULT_PROCESS_SMIL_JOB_LOAD_FACTOR

      public static final float DEFAULT_PROCESS_SMIL_JOB_LOAD_FACTOR
      The default factor used to multiply the sum of encoding profiles load job for ProcessSmil
      See Also:
    • DEFAULT_MULTI_ENCODE_JOB_LOAD_FACTOR

      public static final float DEFAULT_MULTI_ENCODE_JOB_LOAD_FACTOR
      See Also:
    • JOB_LOAD_MAX_MULTIPLE_PROFILES

      public static final String JOB_LOAD_MAX_MULTIPLE_PROFILES
      See Also:
    • JOB_LOAD_FACTOR_PROCESS_SMIL

      public static final String JOB_LOAD_FACTOR_PROCESS_SMIL
      See Also:
    • JOB_LOAD_FACTOR_MULTI_ENCODE

      public static final String JOB_LOAD_FACTOR_MULTI_ENCODE
      See Also:
    • DEFAULT_MULTI_ENCODE_TRIM_MILLISECONDS

      public static final int DEFAULT_MULTI_ENCODE_TRIM_MILLISECONDS
      See Also:
    • MULTI_ENCODE_TRIM_MILLISECONDS

      public static final String MULTI_ENCODE_TRIM_MILLISECONDS
      See Also:
    • DEFAULT_MULTI_ENCODE_FADE_MILLISECONDS

      public static final int DEFAULT_MULTI_ENCODE_FADE_MILLISECONDS
      See Also:
    • MULTI_ENCODE_FADE_MILLISECONDS

      public static final String MULTI_ENCODE_FADE_MILLISECONDS
      See Also:
  • Constructor Details

    • ComposerServiceImpl

      public ComposerServiceImpl()
      Creates a new composer service instance.
  • Method Details

    • activate

      public void activate(org.osgi.service.component.ComponentContext cc)
      OSGi callback on component activation.
      Overrides:
      activate in class org.opencastproject.job.api.AbstractJobProducer
      Parameters:
      cc - the component context
    • deactivate

      public void deactivate()
      OSGi callback on component deactivation.
    • encode

      public org.opencastproject.job.api.Job encode(org.opencastproject.mediapackage.Track sourceTrack, String profileId) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      encode in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.encode(org.opencastproject.mediapackage.Track, java.lang.String)
    • parallelEncode

      public org.opencastproject.job.api.Job parallelEncode(org.opencastproject.mediapackage.Track sourceTrack, String profileId) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      parallelEncode in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.encode(org.opencastproject.mediapackage.Track, java.lang.String)
    • trim

      public org.opencastproject.job.api.Job trim(org.opencastproject.mediapackage.Track sourceTrack, String profileId, long start, long duration) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      trim in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.trim(org.opencastproject.mediapackage.Track, java.lang.String, long, long)
    • mux

      public org.opencastproject.job.api.Job mux(org.opencastproject.mediapackage.Track videoTrack, org.opencastproject.mediapackage.Track audioTrack, String profileId) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      mux in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.mux(org.opencastproject.mediapackage.Track, org.opencastproject.mediapackage.Track, java.lang.String)
    • composite

      public org.opencastproject.job.api.Job composite(org.opencastproject.composer.layout.Dimension compositeTrackSize, org.opencastproject.util.data.Option<org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Track>> upperTrack, org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Track> lowerTrack, org.opencastproject.util.data.Option<org.opencastproject.composer.api.LaidOutElement<org.opencastproject.mediapackage.Attachment>> watermark, String profileId, String background, String sourceAudioName) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      composite in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • concat

      public org.opencastproject.job.api.Job concat(String profileId, org.opencastproject.composer.layout.Dimension outputDimension, boolean sameCodec, org.opencastproject.mediapackage.Track... tracks) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      concat in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • concat

      public org.opencastproject.job.api.Job concat(String profileId, org.opencastproject.composer.layout.Dimension outputDimension, float outputFrameRate, boolean sameCodec, org.opencastproject.mediapackage.Track... tracks) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      concat in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • imageToVideo

      public org.opencastproject.job.api.Job imageToVideo(org.opencastproject.mediapackage.Attachment sourceImageAttachment, String profileId, double time) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      imageToVideo in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • image

      public org.opencastproject.job.api.Job image(org.opencastproject.mediapackage.Track sourceTrack, String profileId, double... times) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      image in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.image(Track, String, double...)
    • imageSync

      public List<org.opencastproject.mediapackage.Attachment> imageSync(org.opencastproject.mediapackage.Track sourceTrack, String profileId, double... time) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      imageSync in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • image

      public org.opencastproject.job.api.Job image(org.opencastproject.mediapackage.Track sourceTrack, String profileId, Map<String,String> properties) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      image in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • convertImage

      public org.opencastproject.job.api.Job convertImage(org.opencastproject.mediapackage.Attachment image, String... profileIds) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      convertImage in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.convertImage(org.opencastproject.mediapackage.Attachment, java.lang.String...)
    • convertImageSync

      public List<org.opencastproject.mediapackage.Attachment> convertImageSync(org.opencastproject.mediapackage.Attachment image, String... profileIds) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      convertImageSync in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
      See Also:
      • ComposerService.convertImageSync(org.opencastproject.mediapackage.Attachment, java.lang.String...)
    • process

      protected String process(org.opencastproject.job.api.Job job) throws org.opencastproject.serviceregistry.api.ServiceRegistryException
      Specified by:
      process in class org.opencastproject.job.api.AbstractJobProducer
      Throws:
      org.opencastproject.serviceregistry.api.ServiceRegistryException
      See Also:
      • AbstractJobProducer.process(org.opencastproject.job.api.Job)
    • listProfiles

      public org.opencastproject.composer.api.EncodingProfile[] listProfiles()
      Specified by:
      listProfiles in interface org.opencastproject.composer.api.ComposerService
      See Also:
      • ComposerService.listProfiles()
    • getProfile

      public org.opencastproject.composer.api.EncodingProfile getProfile(String profileId)
      Specified by:
      getProfile in interface org.opencastproject.composer.api.ComposerService
      See Also:
      • ComposerService.getProfile(java.lang.String)
    • inspect

      protected List<org.opencastproject.mediapackage.Track> inspect(org.opencastproject.job.api.Job job, List<URI> uris, List<List<String>> tags) throws org.opencastproject.composer.api.EncoderException
      Throws:
      org.opencastproject.composer.api.EncoderException
    • inspect

      protected List<org.opencastproject.mediapackage.Track> inspect(org.opencastproject.job.api.Job job, List<URI> uris) throws org.opencastproject.composer.api.EncoderException
      Throws:
      org.opencastproject.composer.api.EncoderException
    • inspect

      protected org.opencastproject.mediapackage.Track inspect(org.opencastproject.job.api.Job job, URI workspaceURI) throws org.opencastproject.composer.api.EncoderException
      Throws:
      org.opencastproject.composer.api.EncoderException
    • hlsFixReference

      protected void hlsFixReference(long id, List<File> outputs) throws IOException
      Throws:
      IOException
    • hlsSetReference

      protected void hlsSetReference(org.opencastproject.mediapackage.Track track) throws IOException
      Throws:
      IOException
    • setMediaInspectionService

      protected void setMediaInspectionService(org.opencastproject.inspection.api.MediaInspectionService mediaInspectionService)
      Sets the media inspection service
      Parameters:
      mediaInspectionService - an instance of the media inspection service
    • setWorkspace

      protected void setWorkspace(org.opencastproject.workspace.api.Workspace workspace)
      Sets the workspace
      Parameters:
      workspace - an instance of the workspace
    • setServiceRegistry

      protected void setServiceRegistry(org.opencastproject.serviceregistry.api.ServiceRegistry serviceRegistry)
      Sets the service registry
      Parameters:
      serviceRegistry - the service registry
    • getServiceRegistry

      protected org.opencastproject.serviceregistry.api.ServiceRegistry getServiceRegistry()
      Specified by:
      getServiceRegistry in class org.opencastproject.job.api.AbstractJobProducer
      See Also:
      • AbstractJobProducer.getServiceRegistry()
    • setProfileScanner

      protected void setProfileScanner(EncodingProfileScanner scanner)
      Sets the profile scanner.
      Parameters:
      scanner - the profile scanner
    • setSecurityService

      public void setSecurityService(org.opencastproject.security.api.SecurityService securityService)
      Callback for setting the security service.
      Parameters:
      securityService - the securityService to set
    • setUserDirectoryService

      public void setUserDirectoryService(org.opencastproject.security.api.UserDirectoryService userDirectoryService)
      Callback for setting the user directory service.
      Parameters:
      userDirectoryService - the userDirectoryService to set
    • setOrganizationDirectoryService

      public void setOrganizationDirectoryService(org.opencastproject.security.api.OrganizationDirectoryService organizationDirectory)
      Sets a reference to the organization directory service.
      Parameters:
      organizationDirectory - the organization directory
    • getSecurityService

      protected org.opencastproject.security.api.SecurityService getSecurityService()
      Specified by:
      getSecurityService in class org.opencastproject.job.api.AbstractJobProducer
      See Also:
      • AbstractJobProducer.getSecurityService()
    • setSmilService

      public void setSmilService(org.opencastproject.smil.api.SmilService smilService)
    • getUserDirectoryService

      protected org.opencastproject.security.api.UserDirectoryService getUserDirectoryService()
      Specified by:
      getUserDirectoryService in class org.opencastproject.job.api.AbstractJobProducer
      See Also:
      • AbstractJobProducer.getUserDirectoryService()
    • getOrganizationDirectoryService

      protected org.opencastproject.security.api.OrganizationDirectoryService getOrganizationDirectoryService()
      Specified by:
      getOrganizationDirectoryService in class org.opencastproject.job.api.AbstractJobProducer
      See Also:
      • AbstractJobProducer.getOrganizationDirectoryService()
    • setEncodingProfileReadinessIndicator

      public void setEncodingProfileReadinessIndicator(org.opencastproject.util.ReadinessIndicator unused)
    • demux

      public org.opencastproject.job.api.Job demux(org.opencastproject.mediapackage.Track sourceTrack, String profileId) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      demux in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • modified

      public void modified(Map<String,Object> config) throws org.osgi.service.cm.ConfigurationException
      OSGI callback when the configuration is updated. This method is only here to prevent the configuration admin service from calling the service deactivate and activate methods for a config update. It does not have to do anything as the updates are handled by updated().
      Throws:
      org.osgi.service.cm.ConfigurationException
    • updated

      public void updated(Dictionary<String,?> properties) throws org.osgi.service.cm.ConfigurationException
      Specified by:
      updated in interface org.osgi.service.cm.ManagedService
      Throws:
      org.osgi.service.cm.ConfigurationException
    • processSmil

      public org.opencastproject.job.api.Job processSmil(org.opencastproject.smil.entity.api.Smil smil, String trackparamId, String mediaType, List<String> profileIds) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      ProcessSmil processes editing of one source group (which may contain multiple source tracks) to one set of outputs (to one or more encoding profiles). Note that the source tracks are expected to have the same dimensions.
      Specified by:
      processSmil in interface org.opencastproject.composer.api.ComposerService
      Parameters:
      smil - - smil containing with video names and clip sections from them
      trackparamId - - group id
      mediaType - - VIDEO_ONLY, AUDIO_ONLY, or "" if neither is true
      profileIds - - list of encoding profile Ids
      Returns:
      Compose Job
      Throws:
      org.opencastproject.composer.api.EncoderException - - if encoding fails
      org.opencastproject.mediapackage.MediaPackageException - - if missing files or bad mp
    • processSmil

      protected List<org.opencastproject.mediapackage.Track> processSmil(org.opencastproject.job.api.Job job, org.opencastproject.smil.entity.api.Smil smil, String trackParamGroupId, String mediaType, List<String> encodingProfiles) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException, URISyntaxException
      Splice segments given by smil document for the given track to the new one. This function reads the smil file and reduce them to arguments to send to the encoder
      Parameters:
      job - processing job
      smil - smil document with media segments description
      trackParamGroupId - source track group
      mediaType - VIDEO_ONLY or AUDIO_ONLY or "" if it has both
      encodingProfiles - - profiles
      Returns:
      serialized array of processed tracks
      Throws:
      org.opencastproject.composer.api.EncoderException - if an error occurred
      org.opencastproject.mediapackage.MediaPackageException - - bad Mediapackage
      URISyntaxException
    • multiEncode

      public org.opencastproject.job.api.Job multiEncode(org.opencastproject.mediapackage.Track sourceTrack, List<String> profileIds) throws org.opencastproject.composer.api.EncoderException, org.opencastproject.mediapackage.MediaPackageException
      Specified by:
      multiEncode in interface org.opencastproject.composer.api.ComposerService
      Throws:
      org.opencastproject.composer.api.EncoderException
      org.opencastproject.mediapackage.MediaPackageException
    • multiEncode

      protected List<org.opencastproject.mediapackage.Track> multiEncode(org.opencastproject.job.api.Job job, org.opencastproject.mediapackage.Track track, List<String> profileIds) throws org.opencastproject.composer.api.EncoderException, IllegalArgumentException
      A single encoding process that produces multiple outputs from a single track(s) using a list of encoding profiles. Each output can be tagged by the profile name. This supports adaptive bitrate outputs.
      Parameters:
      job - - encoding job
      track - - source track
      profileIds - - list of encoding profile Ids, can include one adaptive profile
      Returns:
      encoded files
      Throws:
      org.opencastproject.composer.api.EncoderException - - if can't encode
      IllegalArgumentException - - if missing arguments