The PrepareAVWorkflowOperation works is like this:

If there are two tracks with the same flavor, and one of them contains a video stream only, while the other contains an audio stream only, the implementation will call the composer's "mux" method, with the result that the audio will be muxed with the video, using the video's movie container.

If it there is one track with a certain flavor, the "encode" method is called which will rewrite (vs. encode) the file using the same container and codec (-vcodec copy, -a codec copy), while the container format is determined by ffmpeg via the file's extension. The reason for doing this is that many media files are in a poor state with regard to their compatibility (most often, the stream's codec contains differing information from the container), so we are basically asking ffmepg to rewrite the whole thing, which will in many cases eliminate problems that would otherwhise occur later in the pipeline (encoding to flash, mjpeg etc.).

Parameter Table

configuration keys example description
source-flavor presenter/source Specifies which media should be processed.
target-flavor presenter/work Specifies the flavor the new files will get.
mux-encoding-profile The encoding profile to use for media that needs to be muxed (default is '')
audio-video-encoding-profile The encoding profile to use for media that is audio-video already and needs to be re-encodend (default is
video-encoding-profile The encoding profile to use for media that is only video and needs to be re-encodend (default is
audio-encoding-profile The encoding profile to use for media that is only audio and needs to be re-encodend (default is
rewrite true Should files be rewritten
promiscuous-audio-muxing true If there is no matching flavor to mux, try other flavors as well

Operation Example

  description="Preparing presenter audio and video work versions">
    <configuration key="source-flavor">presenter/source</configuration>
    <configuration key="target-flavor">presenter/work</configuration>
    <configuration key="rewrite">false</configuration>
    <configuration key="promiscuous-audio-muxing">true</configuration>