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