Example #1
0
        public virtual ConvertResult Convert(MediaFile inputFile, string inputFilePath, string outputFolder, MediaConverterMetadata metadata)
        {
            ConvertResult result = new ConvertResult(inputFile);

            if (metadata == MediaConverterMetadata.Default)
            {
                result.IsConverted = false;
                return(result);
            }

            result.IsConverted = true;
            string destinationPath = Path.Combine(outputFolder, metadata.FileName + metadata.Extension);

            result.ConvertedPath = destinationPath;
            if (File.Exists(destinationPath))
            {
                try
                {
                    File.Delete(destinationPath);
                }
                catch (Exception ex)
                {
                    result.IsConverted = false;
                    result.Exceptions.Add(ex);
                    return(result);
                }
            }

            string extension = metadata.Extension.Value;

            if (!this.OnMediaFileConversionStarting(inputFile, metadata))
            {
                result.IsConverted = false;
                return(result);
            }

            string parameters = null;
            SupportedConversionFormats format = SupportedConversionFormats.Parse(extension);

            if (format == SupportedConversionFormats.Mp3)
            {
                parameters = string.Format("-i \"{0}\" -ab {1}k \"{2}\"", inputFilePath, (int)metadata.AudioBitrate, destinationPath);
            }

            Process instance = FfmpegManager.Instance.CreateNewFfmpegInstance(parameters);

            instance.Start();

            this.ProcessOutputStream(instance.StandardError);

            instance.WaitForExit();
            if (!instance.HasExited)
            {
                instance.Kill();
            }

            this.OnMediaFileConvertionComplete(inputFile, metadata);

            return(result);
        }
Example #2
0
 public MediaConverterMetadata(Bitrates audioBitrate, string fileName, string extension)
     : this(audioBitrate, fileName, SupportedConversionFormats.Parse(extension))
 {
 }
Example #3
0
 public MediaConverterMetadata(Bitrates autioBitrate, string filename, SupportedConversionFormats extension)
 {
     this.AudioBitrate = autioBitrate;
     this.FileName     = filename;
     this.Extension    = extension;
 }