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); }
public MediaConverterMetadata(Bitrates audioBitrate, string fileName, string extension) : this(audioBitrate, fileName, SupportedConversionFormats.Parse(extension)) { }
public MediaConverterMetadata(Bitrates autioBitrate, string filename, SupportedConversionFormats extension) { this.AudioBitrate = autioBitrate; this.FileName = filename; this.Extension = extension; }