private EncodingCompletedEventArgs FinalizeEncoding(MediaEncoderSettings settings, DateTime? startTime) {
EncodingCompletedEventArgs Result = null;
if (File.Exists(settings.OutputFile) || (settings.VideoCodec == VideoCodecs.Copy && File.Exists(settings.AudioFileAac))) {
// Muxe video with audio.
string FinalFile = GetNextAvailableFileName(settings.FinalFile);
string VideoFile = null;
if (settings.VideoCodec == VideoCodecs.Copy)
VideoFile = Settings.NaturalGroundingFolder + settings.FileName;
else
VideoFile = settings.OutputFile;
string AudioFile = null;
if (settings.AudioAction == AudioActions.Copy)
AudioFile = Settings.NaturalGroundingFolder + settings.FileName;
else if (settings.AudioAction == AudioActions.Encode)
AudioFile = settings.AudioFileAac;
FfmpegBusiness.JoinAudioVideo(VideoFile, AudioFile, FinalFile, true);
Result = GetEncodingResults(settings, FinalFile, startTime);
}
return Result;
}