/// <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 }); }
/// <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); }
/// <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); }
/// <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); }