Ejemplo n.º 1
0
        public string Convert(string inputVideo, VideoConversionOptions options)
        {
            var outputFile = FilesUtils.GetMediaFile(
                "{0}_{1}.{2}",
                Path.GetFileNameWithoutExtension(inputVideo),
                Guid.NewGuid(),
                options.Format.ToString().ToLower());

            var parameters = $"-i {inputVideo} ";

            if (VideoCodecs.ContainsKey(options.Format))
            {
                parameters += $"-vcodec {VideoCodecs[options.Format]} ";
            }

            if (options.Width != 0 && options.Height != 0)
            {
                parameters += $"-s {options.Width}x{options.Height} ";
            }

            if (options.HorizontalAspect != 0 && options.VerticalAspect != 0)
            {
                parameters += $"-aspect {options.Width}:{options.Height} ";
            }

            if (options.Bitrate > 0)
            {
                parameters += $"-b:v {options.Bitrate}k ";
            }

            if (AudioCodecs.ContainsKey(options.Format))
            {
                parameters += $"-acodec {AudioCodecs[options.Format]}  -b:a 64k ";
            }

            parameters += $"-y {outputFile}";

            using (var process = ConfigureProcess(FfmpegPath, parameters))
            {
                process.Start();

                process.WaitForExit();
            }

            return(outputFile);
        }
Ejemplo n.º 2
0
 public string Convert([FromBody] ConvertRequest model)
 {
     return(service.Convert($"{FilesUtils.OutputsDataFolder}\\{model.File}", VideoConversionOptions.FromConvertRequest(model)));
 }