/// <summary> /// Converts specified streams. /// </summary> public async Task ConvertStreamsAsync( IReadOnlyList <IStreamInfo> streamInfos, ConversionOptions options, IProgress <double>?progress = null, CancellationToken cancellationToken = default) { var streams = await Task.WhenAll(streamInfos.Select(async s => await _client.GetAsync(s))); var isTranscodingRequired = streamInfos.Any(s => IsTranscodingRequired(s.Container, options.Format)); await _ffmpeg.ConvertStreamsAsync( streams, options, isTranscodingRequired, progress, cancellationToken ); progress?.Report(1); }