getExportFilters method

String getExportFilters({
  1. VideoExportFormat? videoFormat,
  2. double scale = 1.0,
  3. bool isFiltersEnabled = true,
})

Returns the -filter:v command to use in ffmpeg execution

Implementation

String getExportFilters({
  VideoExportFormat? videoFormat,
  double scale = 1.0,
  bool isFiltersEnabled = true,
}) {
  if (!isFiltersEnabled) return '';

  // CALCULATE FILTERS
  final bool isGif =
      videoFormat?.extension == VideoExportFormat.gif.extension;
  final String scaleInstruction =
      scale == 1.0 ? '' : 'scale=iw*$scale:ih*$scale';

  // VALIDATE FILTERS
  final List<String> filters = <String>[
    crop,
    scaleInstruction,
    rotation,
    isGif
        ? 'fps=${videoFormat is GifExportFormat ? videoFormat.fps : VideoExportFormat.gif.fps}'
        : '',
  ]..removeWhere((String item) => item.isEmpty);

  return filters.isNotEmpty
      ? "-vf ${filters.join(",")}${isGif ? " -loop 0" : ""}"
      : '';
}