estimate method

  1. @override
Future<CompressionEstimate> estimate(
  1. String path,
  2. VideoCompressConfig config
)
override

Implementation

@override
Future<CompressionEstimate> estimate(
    String path, VideoCompressConfig config) async {
  final m = await _rawInfo(path);
  final srcW = (m['width'] as num).toInt();
  final srcH = (m['height'] as num).toInt();
  final durationMs = _clampDuration((m['durationMs'] as num).toInt(), config);
  final srcKbps = (m['bitrateKbps'] as num).toInt();
  final (tw, th) = _SizeMath.targetDimensions(srcW, srcH, config);
  final videoBps = _SizeMath.videoBitrateBps(config, durationMs, srcKbps, th);
  final bytes = (videoBps * (durationMs / 1000) / 8).round();
  return CompressionEstimate.fromMap({
    'estimatedSizeBytes': bytes,
    'estimatedBitrateKbps': videoBps ~/ 1000,
    'targetWidth': tw,
    'targetHeight': th,
  });
}