Pakete, Repositories und App-Kategorien suchen

GitHub-Repositorynikolaydymura/flutter_gpu_video_filters

flutter_gpu_video_filters

nikolaydymura/flutter_gpu_video_filters open-source repository details.

Projektcover von flutter_gpu_video_filters
Sterne
16
Forks
5
Letzter Push (UTC)
17.06.2025
Projektstatus
Aktiv

Original-README

Englischer Projektschnappschuss. Aktuelle Inhalte auf GitHub.

Flutter

Pub codecov build Star on Github License: MIT

A flutter package for Android for applying OpenGL filters to video.

Usage

How to generate and use a bunch of filters
How to add custom filters
Export & save video
import 'package:flutter_gpu_video_filters/flutter_gpu_video_filters.dart';

final inputSource = AssetInputSource('demo.mp4');
final output = File('result.mp4');
final configuration = GPUGrayScaleConfiguration();
final processStream =  configuration.exportVideoFile(VideoExportConfig(AssetInputSource(asset), output));
await for (final progress in processStream) {
  debugPrint('Exporting file ${(progress * 100).toInt()}%');
}
GPUVideoNativePreview example
import 'package:flutter_gpu_video_filters/flutter_gpu_video_filters.dart';

class PreviewPage extends StatefulWidget {
  const PreviewPage({Key? key}) : super(key: key);

  @override
  State<PreviewPage> createState() => _PreviewPageState();
}

class _PreviewPageState extends State<PreviewPage> {
  late GPUVideoPreviewController configuration;
  late final GPUGrayScaleConfiguration controller;
  late final GPUVideoPreviewParams previewParams;
  bool paramsReady = false;

  @override
  void initState() {
    super.initState();
    _prepare().whenComplete(() {
      setState(() {});
    });
  }

  Future<void> _prepare() async {
    configuration = GPUGrayScaleConfiguration();
    previewParams = await GPUVideoPreviewParams.create(configuration);
    paramsReady = true;
  }

  @override
  void dispose() {
    controller.dispose();
    configuration.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return paramsReady
        ? GPUVideoNativePreview(
      params: previewParams,
      configuration: configuration,
      onViewCreated: (controller, outputSizeStream) async {
        this.controller = controller;
        await this.controller.setVideoAsset(_assetPath);
        await for (final size in outputSizeStream) {
          setState(() {});
        }
      },
    )
        : const Offstage();
  }
}

Additional information

Support status of GPUImage for Android shaders
Status Name Display Name
:white_check_mark: GPU3x3ConvolutionConfiguration 3x3 Convolution
:white_check_mark: GPUAddBlendConfiguration Add Blend
:white_check_mark: GPUAlphaBlendConfiguration Alpha Blend
:x: GPUBilateralConfiguration Bilateral
:x: GPUBoxBlurConfiguration Box Blur
:white_check_mark: GPUBrightnessConfiguration Brightness
:white_check_mark: GPUBulgeDistortionConfiguration Bulge Distortion Configuration
:white_check_mark: GPUCGAColorspaceConfiguration CGA Colorspace
:white_check_mark: GPUChromaKeyBlendConfiguration Chroma Key Blend
:white_check_mark: GPUColorBalanceConfiguration Color Balance
:white_check_mark: GPUColorBlendConfiguration Color Blend
:white_check_mark: GPUColorBurnBlendConfiguration Color Burn Blend
:white_check_mark: GPUColorDodgeBlendConfiguration Color Dodge Blend
:white_check_mark: GPUColorInvertConfiguration Color Invert
:white_check_mark: GPUColorMatrixConfiguration Color Matrix
:white_check_mark: GPUContrastConfiguration Contrast
:white_check_mark: GPUCrosshatchConfiguration Crosshatch
:white_check_mark: GPUDarkenBlendConfiguration Darken Blend
:white_check_mark: GPUDifferenceBlendConfiguration Difference Blend
:white_check_mark: GPUDirectionalSobelEdgeDetectionConfiguration Directional Sobel Edge Detection
:white_check_mark: GPUDissolveBlendConfiguration Dissolve Blend
:white_check_mark: GPUDivideBlendConfiguration Divide Blend
:white_check_mark: GPUEmbossConfiguration Emboss
:white_check_mark: GPUExposureConfiguration Exposure
:white_check_mark: GPUFalseColorConfiguration False Color
:white_check_mark: GPUGammaConfiguration Gamma
:x: GPUGaussianBlurConfiguration Gaussian Blur
:white_check_mark: GPUGlassSphereConfiguration Glass Sphere
:white_check_mark: GPUGrayScaleConfiguration Gray Scale
:white_check_mark: GPUHALDLookupTableConfiguration HALD Lookup Table
:white_check_mark: GPUHalftoneConfiguration Halftone
:white_check_mark: GPUHardLightBlendConfiguration Hard Light Blend
:white_check_mark: GPUHazeConfiguration Haze
:white_check_mark: GPUHighlightShadowConfiguration Highlight Shadow
:white_check_mark: GPUHueBlendConfiguration Hue Blend
:white_check_mark: GPUHueConfiguration Hue
:white_check_mark: GPUInvertConfiguration Invert
:white_check_mark: GPUKuwaharaConfiguration Kuwahara
:white_check_mark: GPULaplacianConfiguration Laplacian
:white_check_mark: GPULevelsConfiguration Levels
:white_check_mark: GPULightenBlendConfiguration Lighten Blend
:white_check_mark: GPULinearBurnBlendConfiguration Linear Burn Blend
:white_check_mark: GPULuminanceThresholdConfiguration Luminance Threshold
:white_check_mark: GPULuminanceConfiguration Luminance
:white_check_mark: GPULuminosityBlendConfiguration Luminosity Blend
:white_check_mark: GPUMonochromeConfiguration Monochrome
:white_check_mark: GPUMultiplyBlendConfiguration Multiply Blend
:white_check_mark: GPUNonMaximumSuppressionConfiguration Non Maximum Suppression
:white_check_mark: GPUNormalBlendConfiguration Normal Blend
:interrobang: GPUOpacityConfiguration Opacity
:white_check_mark: GPUOverlayBlendConfiguration Overlay Blend
:white_check_mark: GPUOverlayConfiguration Overlay
:white_check_mark: GPUPixelationConfiguration Pixelation
:white_check_mark: GPUPosterizeConfiguration Posterize
:white_check_mark: GPURGBConfiguration RGB
:white_check_mark: GPUSaturationBlendConfiguration Saturation Blend
:white_check_mark: GPUSaturationConfiguration Saturation
:white_check_mark: GPUScreenBlendConfiguration Screen Blend
:white_check_mark: GPUSepiaToneConfiguration Sepia Tone
:white_check_mark: GPUSepiaConfiguration Sepia
:white_check_mark: GPUSharpenConfiguration Sharpen
:white_check_mark: GPUSobelThresholdConfiguration Sobel Threshold
:white_check_mark: GPUSoftLightBlendConfiguration Soft Light Blend
:white_check_mark: GPUSolarizeConfiguration Solarize
:white_check_mark: GPUSourceOverBlendConfiguration Source Over Blend
:white_check_mark: GPUSphereRefractionConfiguration Sphere Refraction
:white_check_mark: GPUSquareLookupTableConfiguration Square Lookup Table
:white_check_mark: GPUSubtractBlendConfiguration Subtract Blend
:white_check_mark: GPUSwirlConfiguration Swirl
:white_check_mark: GPUToneCurveConfiguration Tone Curve
:white_check_mark: GPUToonConfiguration Toon
:white_check_mark: GPUVibranceConfiguration Vibrance
:white_check_mark: GPUVignetteConfiguration Vignette
:white_check_mark: GPUWatermarkConfiguration Watermark
:white_check_mark: GPUWeakPixelInclusionConfiguration Weak Pixel Inclusion
:white_check_mark: GPUWhiteBalanceConfiguration WhiteBalance
:white_check_mark: GPUZoomBlurConfiguration Zoom Blur

Examples

Maintainers

Nick Dymura GitHub avatar
GitHub-Autor

Nick Dymura ↗

SprachenDartGLSLKotlinJavaShell

Von diesem Repository veröffentlichte Pakete

Verwendete Abhängigkeiten

Abhängigkeiten 9 Einträge

  • flutter{"sdk":"flutter"}
  • plugin_platform_interface^2.1.8
  • flutter_gpu_filters_interface^0.0.18
  • collection^1.18.0
  • flutter_testEntwicklung{"sdk":"flutter"}
  • pigeonEntwicklung^25.3.0
  • flutter_lintsEntwicklung^5.0.0
  • mockitoEntwicklung^5.4.4
  • build_runnerEntwicklung^2.4.8

Wie wähle ich ein passendes Repository?

Nach Anwendungsfall filtern, Aktivität vergleichen und vor der Nutzung das Originalprojekt prüfen.

  1. Nach Name, Autor oder Beschreibung suchen und nach Thema eingrenzen.
  2. Sterne, Forks und letzte Pushes vergleichen. Sterne zeigen Interesse, garantieren aber keine Qualität.
  3. Vor der Nutzung README, Lizenz und Issues auf GitHub prüfen.

Quellen und Pflege

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗