/// <inheritdoc />
        public async Task <IConversionResult> Start(string parameters, CancellationToken cancellationToken)
        {
            if (_ffmpeg != null)
            {
                throw new InvalidOperationException("Conversion has already been started. ");
            }

            DateTime startTime = DateTime.Now;

            _ffmpeg = new FFmpegWrapper();
            try
            {
                _ffmpeg.OnProgress          += OnProgress;
                _ffmpeg.OnDataReceived      += OnDataReceived;
                _ffmpeg.OnVideoDataReceived += OnVideoDataReceived;
                CreateOutputDirectoryIfNotExists();
                await _ffmpeg.RunProcess(parameters, cancellationToken, _priority);
            }
            finally
            {
                _ffmpeg.OnProgress          -= OnProgress;
                _ffmpeg.OnDataReceived      -= OnDataReceived;
                _ffmpeg.OnVideoDataReceived -= OnVideoDataReceived;
                _ffmpeg = null;
            }

            return(new ConversionResult
            {
                StartTime = startTime,
                EndTime = DateTime.Now,
                Arguments = parameters
            });
        }
Exemple #2
0
        /// <inheritdoc />
        public async Task <IConversionResult> Start(string parameters, CancellationToken cancellationToken)
        {
            var ffmpeg = new FFmpegWrapper();

            ffmpeg.OnProgress     += OnProgress;
            ffmpeg.OnDataReceived += OnDataReceived;
            var result = new ConversionResult
            {
                StartTime = DateTime.Now,
                Success   = await ffmpeg.RunProcess(parameters, cancellationToken),
                EndTime   = DateTime.Now,
                MediaInfo = new Lazy <IMediaInfo>(() => MediaInfo.Get(OutputFilePath)
                                                  .Result),
                Arguments = parameters
            };

            return(result);
        }
Exemple #3
0
        /// <inheritdoc />
        public async Task <IConversionResult> Start(string parameters, CancellationToken cancellationToken)
        {
            if (_ffmpeg != null)
            {
                throw new InvalidOperationException("Conversion has already been started. ");
            }

            _ffmpeg                 = new FFmpegWrapper();
            _ffmpeg.OnProgress     += OnProgress;
            _ffmpeg.OnDataReceived += OnDataReceived;
            await _ffmpeg.RunProcess(parameters, cancellationToken, _priority);

            var result = new ConversionResult
            {
                StartTime = DateTime.Now,
                EndTime   = DateTime.Now,
                Arguments = parameters
            };

            _processId = null;
            return(result);
        }
Exemple #4
0
        /// <inheritdoc />
        public async Task <IConversionResult> Start(string parameters, CancellationToken cancellationToken)
        {
            if (_ffmpeg != null)
            {
                throw new InvalidOperationException("Conversion has already been started. ");
            }

            _ffmpeg                 = new FFmpegWrapper();
            _ffmpeg.Priority        = _priority;
            _ffmpeg.OnProgress     += OnProgress;
            _ffmpeg.OnDataReceived += OnDataReceived;
            var result = new ConversionResult
            {
                StartTime = DateTime.Now,
                Success   = await _ffmpeg.RunProcess(parameters, cancellationToken).ConfigureAwait(false),
                EndTime   = DateTime.Now,
                MediaInfo = new Lazy <IMediaInfo>(() => MediaInfo.Get(OutputFilePath)
                                                  .Result),
                Arguments = parameters
            };

            return(result);
        }