Sponsoring likes popularity pub points

🚧 This is highly experimental! 🚧

🚧 API is subject to change! 🚧

This is a package to create recordings of Flutter widgets. The recordings can be exported as GIFs.

This is pure Flutter/Dart implementation without any dependencies on native or platform code. Thus it runs on all supported platforms.

Please note, that the encoding of the GIF takes a lot of time. On web it is basically useless because it takes so much time.

Please see the example if you want to know how it works.

🚀 Getting Started


First, you will need to add screen_recorder to your pubspec.yaml:

    sdk: flutter
  screen_recorder: x.y.z # use the latest version found on

Then, run flutter packages get in your terminal.


Wrap your widget which should be recorded in a ScreenRecorder:

  height: 200,
  width: 200,
  background: Colors.white,
  controller: ScreenRecorderController(
    pixelRatio: 0.5,
    skipFramesBetweenCaptures: 2,
  child: // child which should be recorded

Then use ScreenRecorderController.start() to start recording and ScreenRecorderController.stop() to stop the recording. final gif = await ScreenRecorderController.export() gives you the result which can be written to disk.

⚠️ Known issues and limitations

  • Platform views are invisible in screenshots (like webview or Google Maps). For further details, see this Flutter issue.
  • Web only works with Flutter's CanvasKit Renderer, for more information see Flutter Web Renderer docs.
  • This package does not and will not support audio until it is possible in a pure Dart/Flutter environment.
  • This package does not and will not support exporting as a video until it is possible in a pure Dart/Flutter environment.

📣 Author


I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me. By doing so, I will prioritize your issues or your pull-requests before the others.