This plugin generates thumbnail from video file or URL.

Overview

video_thumbnail

This plugin generates thumbnail from video file or URL. It returns image in memory or writes into a file. It offers rich options to control the image format, resolution and quality. Supports iOS and Android.

pub ver license

video-file video-url

Methods

function parameter description return
thumbnailData String [video], ImageFormat [imageFormat](JPEG/PNG/WEBP), int [maxHeight](0: for the original resolution of the video, or scaled by the source aspect ratio), [maxWidth](0: for the original resolution of the video, or scaled by the source aspect ratio), int [timeMs]generates the thumbnail from the frame around the specified millisecond, int[quality]`(0-100) generates thumbnail from [video] [Future ]
thumbnailFile String [video], String [thumbnailPath](folder or full path where to store the thumbnail file, null to save to same folder as the video file), ImageFormat [imageFormat](JPEG/PNG/WEBP), int [maxHeight](0: for the original resolution of the video, or scaled by the source aspect ratio), int [maxWidth](0: for the original resolution of the video, or scaled by the source aspect ratio), int [timeMs] generates the thumbnail from the frame around the specified millisecond, int [quality](0-100) creates a file of the thumbnail from the [video] [Future ]

Warning:

Giving both the maxHeight and maxWidth has different result on Android platform, it actually scales the thumbnail to the specified maxHeight and maxWidth. To generate the thumbnail from a network resource, the video must be properly URL encoded.

Usage

Installing add video_thumbnail as a dependency in your pubspec.yaml file.

dependencies:
  video_thumbnail: ^0.4.3

import

import 'package:video_thumbnail/video_thumbnail.dart';

Generate a thumbnail in memory from video file

final uint8list = await VideoThumbnail.thumbnailData(
  video: videofile.path,
  imageFormat: ImageFormat.JPEG,
  maxWidth: 128, // specify the width of the thumbnail, let the height auto-scaled to keep the source aspect ratio
  quality: 25,
);

Generate a thumbnail file from video URL

final fileName = await VideoThumbnail.thumbnailFile(
  video: "https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4",
  thumbnailPath: (await getTemporaryDirectory()).path,
  imageFormat: ImageFormat.WEBP,
  maxHeight: 64, // specify the height of the thumbnail, let the width auto-scaled to keep the source aspect ratio
  quality: 75,
);

Generate a thumbnail file from video Assets declared in pubspec.yaml

final byteData = await rootBundle.load("assets/my_video.mp4");
Directory tempDir = await getTemporaryDirectory();

File tempVideo = File("${tempDir.path}/assets/my_video.mp4")
  ..createSync(recursive: true)
  ..writeAsBytesSync(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));

final fileName = await VideoThumbnail.thumbnailFile(
  video: tempVideo.path,
  thumbnailPath: (await getTemporaryDirectory()).path,
  imageFormat: ImageFormat.PNG,  
  quality: 100,
);

Notes

Fork or pull requests are always welcome. Currently it seems have a little performance issue while generating WebP thumbnail by using libwebp under iOS.

Comments
  • Unhandled Exception when create thumbnail.

    Unhandled Exception when create thumbnail.

    i'm using video_thumbnail: ^0.1.7

    E/flutter (15359): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method data on channel video_thumbnail)
    E/flutter (15359): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
    E/flutter (15359): <asynchronous suspension>
    E/flutter (15359): #1      VideoThumbnail.thumbnailData (package:video_thumbnail/video_thumbnail.dart:63:27)
    
    opened by parth22 15
  • [MissingPluginException] error occurs with some specific video files

    [MissingPluginException] error occurs with some specific video files

    I've been using this plugin for a while and I noticed that it gives error with some specific files, for instances I have uploaded a file to the server so that you can download it and check it. How ever it works fine with other normal files. I haven't tested it will [urlPath] but you can download the demo files from this link : demoFile

    Issues with other developers: There is also an Stack overflow questionasked by other community member : [Govaadiyo]

    Error with demoFile on Flutter 2.10: image

    opened by XeroDays 13
  • Issues on iOS 14

    Issues on iOS 14

    On iOS 14, thumbnailData returns null, while thumbnailFile kills the app.

    For instance: /var/mobile/Media/DCIM/104APPLE/IMG_4898.MOV

    Any plans for fixing this?

    opened by smedic 13
  • Error: No implementation found for method file on channel video_thumbnail (Android 11)

    Error: No implementation found for method file on channel video_thumbnail (Android 11)

    Hello,

    On Android 11 when trying to create a thumbnail from a file path i get the error attached. Is there a known issue with Android 11 ? With Android 10 or lower it works fine and doesn't throw any errors.

    W/System.err( 4329): java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA W/System.err( 4329): at android.media.MediaMetadataRetriever._setDataSource(Native Method) W/System.err( 4329): at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:272) W/System.err( 4329): at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:238) W/System.err( 4329): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin.createVideoThumbnail(VideoThumbnailPlugin.java:201) W/System.err( 4329): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin.buildThumbnailData(VideoThumbnailPlugin.java:116) W/System.err( 4329): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin.buildThumbnailFile(VideoThumbnailPlugin.java:132) W/System.err( 4329): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin.access$000(VideoThumbnailPlugin.java:37) W/System.err( 4329): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin$1.run(VideoThumbnailPlugin.java:73) W/System.err( 4329): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) W/System.err( 4329): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) W/System.err( 4329): at java.lang.Thread.run(Thread.java:923) E/flutter ( 4329): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Unhandled error MissingPluginException(No implementation found for method file on channel video_thumbnail) occurred in Instance of 'PreviewBloc'.

    opened by joankabello 12
  • WITH SOLUTION: MissingPluginException (MissingPluginException(No implementation found for method data on channel video_thumbnail))

    WITH SOLUTION: MissingPluginException (MissingPluginException(No implementation found for method data on channel video_thumbnail))

    MissingPluginException (MissingPluginException(No implementation found for method data on channel video_thumbnail))

    Same issue here but not resolved: https://github.com/justsoft/video_thumbnail/issues/26

    I'm getting same error. I found the bug and how to fix it. If there is space characters in file names, it gives this error. I tested for the same file. One for the file name with space characters and without space characters and I don't get any error about it for the file name without spaces.

    Solution: your file names should not have spaces (or maybe other non-ASCII chars) not to get this error.

    I handle this situation using following code:

    // the file name pattern we want
    RegExp regExp = new RegExp(
    	r"/^[a-zA-Z0-9_-]+$/",
    	caseSensitive: false,
    	multiLine: false,
    );
    
    if (!regExp.hasMatch(mediaFile.path)) {
    	String tempDir = (await getTemporaryDirectory()).path;
    	String fileExtension = mediaFile.path.split('.').last;
    	String newPath =
    	    tempDir + '/' + DateTime.now().millisecondsSinceEpoch.toString() + '.' + fileExtension;
    
    	File tempFile =
    	    await mediaFile.copy(newPath);
    
        // you can use this new file path for making the thumbnail without error
    	mediaPath = tempFile.path;
    }
    
    opened by egulhan 12
  • No implementation found for method file on channel video_thumbnail

    No implementation found for method file on channel video_thumbnail

    When I am going to generate firebase storage file thumbnail, it showing a exception: [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method file on channel video_thumbnail)

    String fileURL = "https://firebasestorage.googleapis.com/v0/b/hollistic-living-test.appspot.com/o/chatFiles%2F1579869657089_kv.mp4?alt=media&token=ff204023-27c7-4922-be6b-6a702f508763"; String thumbnailUrl = await VideoThumbnail.thumbnailFile( video: fileURL, thumbnailPath: null, imageFormat: ImageFormat.JPEG, maxHeight: 64, quality: 75, ); print(thumbnailUrl);

    opened by atha-cyanberg 12
  • generating video thumbnail doesn't work

    generating video thumbnail doesn't work

    Hi . I am trying to use the plugin but it doesn't work . Here is my code : ` String bytes;

    @override void initState() { super.initState(); getThumb(); }

    void getThumb() async { final Directory _dir = await getTemporaryDirectory(); bytes = await VideoThumbnail.thumbnailFile( video: '/storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20200405-WA0024.mp4', //'https://youtu.be/jnzOMiMsmdI', thumbnailPath: _dir.path, imageFormat: ImageFormat.PNG, ); }

    @override Widget build(BuildContext context) { return GestureDetector( onTap: () {}, child: Card( elevation: 2.2, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), child: ClipRRect( borderRadius: BorderRadius.circular(16), child: Image.memory( File(bytes).readAsBytesSync(), fit: BoxFit.cover, ), ), ), ); }And here is the error :Exception: Could not instantiate image codec. ════════════════════════════════════════════════════════════════════════════════ E/MethodChannel#video_thumbnail(28455): Failed to handle method call E/MethodChannel#video_thumbnail(28455): java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference E/MethodChannel#video_thumbnail(28455): at xyz.justsoft.video_thumbnail.VideoThumbnailPlugin.onMethodCall(VideoThumbnailPlugin.java:60) E/MethodChannel#video_thumbnail(28455): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231) E/MethodChannel#video_thumbnail(28455): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93) E/MethodChannel#video_thumbnail(28455): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642) E/MethodChannel#video_thumbnail(28455): at android.os.MessageQueue.nativePollOnce(Native Method) E/MethodChannel#video_thumbnail(28455): at android.os.MessageQueue.next(MessageQueue.java:326) E/MethodChannel#video_thumbnail(28455): at android.os.Looper.loop(Looper.java:181) E/MethodChannel#video_thumbnail(28455): at android.app.ActivityThread.main(ActivityThread.java:7156) E/MethodChannel#video_thumbnail(28455): at java.lang.reflect.Method.invoke(Native Method) E/MethodChannel#video_thumbnail(28455): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) E/MethodChannel#video_thumbnail(28455): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975) E/flutter (28455): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference, null) E/flutter (28455): #0 StandardMethodCodec.decodeEnvelope package:flutter/…/services/message_codecs.dart:569 E/flutter (28455): #1 MethodChannel.invokeMethod package:flutter/…/services/platform_channel.dart:321 E/flutter (28455): E/flutter (28455): #2 VideoThumbnail.thumbnailFile package:video_thumbnail/video_thumbnail.dart:44 E/flutter (28455): #3 _VideoThumbWidgetState.getThumb package:looper/creation/post-create.dart:908 E/flutter (28455): E/flutter (28455): #4 _VideoThumbWidgetState.initState package:looper/creation/post-create.dart:902 E/flutter (28455): #5 StatefulElement._firstBuild package:flutter/…/widgets/framework.dart:4355 E/flutter (28455): #6 ComponentElement.mount package:flutter/…/widgets/framework.dart:4201 E/flutter (28455): #7 Element.inflateWidget package:flutter/…/widgets/framework.dart:3194 E/flutter (28455): #8 Element.updateChild package:flutter/…/widgets/framework.dart:2988 E/flutter (28455): #9 SingleChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:5445 E/flutter (28455): #10 Element.inflateWidget package:flutter/…/widgets/framework.dart:3194 E/flutter (28455): #11 Element.updateChild package:flutter/…/widgets/framework.dart:2988 E/flutter (28455): #12 SingleChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:5445 E/flutter (28455): #13 Element.inflateWidget package:flutter/…/widgets/framework.dart:3194 E/flutter (28455): #14 Element.updateChild package:flutter/…/widgets/framework.dart:2988 E/flutter (28455): #15 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #16 Element.rebuild package:flutter/…/widgets/framework.dart:3947 E/flutter (28455): #17 StatefulElement.update package:flutter/…/widgets/framework.dart:4413 E/flutter (28455): #18 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #19 SingleChildRenderObjectElement.update package:flutter/…/widgets/framework.dart:5452 E/flutter (28455): #20 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #21 SingleChildRenderObjectElement.update package:flutter/…/widgets/framework.dart:5452 E/flutter (28455): #22 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #23 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #24 Element.rebuild package:flutter/…/widgets/framework.dart:3947 E/flutter (28455): #25 StatelessElement.update package:flutter/…/widgets/framework.dart:4298 E/flutter (28455): #26 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #27 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #28 Element.rebuild package:flutter/…/widgets/framework.dart:3947 E/flutter (28455): #29 ProxyElement.update package:flutter/…/widgets/framework.dart:4557 E/flutter (28455): #30 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #31 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #31 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #32 Element.rebuild package:flutter/…/widgets/framework.dart:3947 E/flutter (28455): #33 StatefulElement.update package:flutter/…/widgets/framework.dart:4413 E/flutter (28455): #34 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #35 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4243 E/flutter (28455): #36 Element.rebuild package:flutter/…/widgets/framework.dart:3947 E/flutter (28455): #37 StatelessElement.update package:flutter/…/widgets/framework.dart:4298 E/flutter (28455): #38 Element.updateChild package:flutter/…/widgets/framework.dart:2977 E/flutter (28455): #39 SliverMultiBoxAdaptorElement.updateChild package:flutter/…/widgets/sliver.dart:1288 E/flutter (28455): #40 SliverMultiBoxAdaptorElement.performRebuild.processElement package:flutter/…/widgets/sliver.dart:1220 E/flutter (28455): #41 Iterable.forEach (dart:core/iterable.dart:279:30) E/flutter (28455): #42 SliverMultiBoxAdaptorElement.performRebuild package:flutter/…/widgets/sliver.dart:1246 E/flutter (28455): #43 SliverMultiBoxAdaptorElement.update (package:flutter/src/widgets/sliver.dart:119`

    opened by Loopex2019 11
  • Portrait / upright videos

    Portrait / upright videos

    I am not getting correct thumbnails from portrait videos. For this issue I did not find a solution with your plugin. Is this issue know? Do you know a solution?

    opened by bdoubleu86 10
  • MissingPluginException(No implementation found for method file on channel video_thumbnail)

    MissingPluginException(No implementation found for method file on channel video_thumbnail)

    I changed the plugin photo which i pick video before to the plugin file_picker and then i get this error.
    The difference between this two plugin may be is the path to the file.First plugin copy the file to application temp storage then give a new path and the second one give an absolute path(/storage/emulated/0/DCIM/Camera/VID_20200420_171228.mp4).
    what should i do if i dont wont to copy the original file?
    The plugins version is 0.2.0. and the code is

    static getVideoThumbNail(String filePath) async {
        String tempPath = (await getLocalOrTempDir()).path;
        try {
          var imageData = await VideoThumbnail.thumbnailFile(
            video: filePath,
            imageFormat: ImageFormat.PNG,
            maxWidth: 256,
            maxHeight: 256,
            thumbnailPath: tempPath,
            quality: 50,
          );
          return imageData;
        } catch (e) {
          print(e);
          eventBus.fire(showToast(CommonUtils.getLocale(null).noThumbnail));
          return null;
        }
      }
    
    opened by atheist1 9
  •  Unhandled Exception: MissingPluginException(No implementation found for method file on channel video_thumbnail)

    Unhandled Exception: MissingPluginException(No implementation found for method file on channel video_thumbnail)

    final uint8list = await VideoThumbnail.thumbnailFile( video: photoBean.path, imageFormat: ImageFormat.JPEG, // specify the width of the thumbnail, let the height auto-scaled to keep the source aspect ratio quality: 55, ); 我用的video_thumbnail: ^0.3.1最新版,现在还是有这个问题老哥,能在修复下吗 E/wagnfei==(21391): {"imageList":[{"name":"VID_20210226_193823.mp4","path":"/storage/emulated/0/DCIM/Camera/VID_20210226_193823.mp4","type":"-1"},{"name":"1591193340707.mp4","path":"/storage/emulated/0/tencent/MicroMsg/WeiXin/1591193340707.mp4","type":"-1"}]} I/flutter (21391): resultImageState=/storage/emulated/0/DCIM/Camera/VID_20210226_193823.mp4 D/ThumbnailPlugin(21391): buildThumbnailFile( format:0, maxh:0, maxw:75, timeMs:0, quality:55 ) D/ThumbnailPlugin(21391): buildThumbnailData( format:0, maxh:0, maxw:75, timeMs:0, quality:55 ) D/ThumbnailPlugin(21391): original w:1080, h:1920 => 75, 133 E/flutter (21391): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found for method file on channel video_thumbnail) E/flutter (21391): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7) E/flutter (21391): E/flutter (21391): #1 VideoThumbnail.thumbnailFile (package:video_thumbnail/video_thumbnail.dart:44:12) E/flutter (21391): E/flutter (21391): #2 _EvaluationWidgetState._pickAsset (package:flutter111/widget/EvaluationWidget.dart:421:27) E/flutter (21391): E/flutter (21391): QQ:390774562

    opened by nanian 7
  • MissingPluginException(No implementation found for method data on channel video_thumbnail)

    MissingPluginException(No implementation found for method data on channel video_thumbnail)

    ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found for method data on channel video_thumbnail) E/flutter ( 9427): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7) E/flutter ( 9427): E/flutter ( 9427): #1 VideoThumbnail.thumbnailData (package:video_thumbnail/video_thumbnail.dart:67:12) E/flutter ( 9427): E/flutter ( 9427): #2 _UploadClipState.loadThumb (package:proyectBlumer/screens/upload_post/upload_clip.dart:43:5) E/flutter ( 9427): E/flutter ( 9427):

    opened by ajosecueto 7
  • not support avi video?

    not support avi video?

    couldn't generate thumbnail, error:Error Domain=AVFoundationErrorDomain Code=-11869 "Cannot Open" UserInfo={NSLocalizedFailureReason=This media cannot be used., NSLocalizedDescription=Cannot Open, NSUnderlyingError=0x282c70210 {Error Domain=NSOSStatusErrorDomain Code=-12430 "(null)"}} [VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(IO Error, Failed to write data to file, null, null) #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653:7) #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:296:18) #2 VideoThumbnail.thumbnailFile (package:video_thumbnail/video_thumbnail.dart:48:12) #3 _VideoEditorExampleState.getImage (package:example/main.dart:74:22)

    opened by wengxianxun 0
  • Couldn't generate thumbnail, error:Error Domain=AVFoundationErrorDomain Code=-11800

    Couldn't generate thumbnail, error:Error Domain=AVFoundationErrorDomain Code=-11800

    Uint8List? bytes = await VideoThumbnail.thumbnailData(
       video: doc["mediaUrl"],
       maxHeight: (MediaQuery.of(context).size.height * 0.25)
              .round(),
       maxWidth: (MediaQuery.of(context).size.width * 0.3).round(),
    );
    

    Trying the above code to get the thumbnail of a video stored in firebase whose URL is fetched from firestore.

    Half of the times it works but rest of the times it fails, with the below error.

    couldn't generate thumbnail, error:Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-12792), NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x2828ac720 {Error Domain=NSOSStatusErrorDomain Code=-12792 "(null)"}}
    
    ════════ Exception caught by image resource service ════════════════════════════
    The following _Exception was thrown resolving an image codec:
    Exception: Invalid image data
    
    When the exception was thrown, this was the stack
    #0      _futurize (dart:ui/painting.dart:5886:5)
    #1      ImageDescriptor.encoded (dart:ui/painting.dart:5741:12)
    #2      instantiateImageCodecFromBuffer (dart:ui/painting.dart:2092:60)
    #3      PaintingBinding.instantiateImageCodecFromBuffer
    package:flutter/…/painting/binding.dart:153
    #4      MemoryImage._loadAsync
    package:flutter/…/painting/image_provider.dart:1090
    <asynchronous suspension>
    ════════════════════════════════════════════════════════════════════════════════
    

    IMG_911F06E4ECB4-1

    opened by ritvij14 1
  •  retriever.release(); , Not working

    retriever.release(); , Not working

    E:\flutter.pub-cache\hosted\pub.dartlang.org\video_thumbnail-0.5.2\android\src\main\java\xyz\justsoft\video_thumbnail\VideoThumbnailPlugin.java:253: error: unreported exception IOException; must be caught or declared to be thrown retriever.release();

    issue

    opened by Iamdheeraj22 5
  • 报错retriever.release();

    报错retriever.release();

    /Flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/video_thumbnail-0.5.2/android/src/main/java/xyz/justsoft/video_thumbnail/VideoThumbnailPlugin.java:253: 错误: 未报告的异常错误java.io.IOException; 必须对其进行捕获或声明以便抛出 retriever.release();

    opened by NiuXiaoGuang 1
Owner
John Zhong
John Zhong
A Flutter plugin for Android and iOS supports cropping images

Image Cropper A Flutter plugin for Android and iOS supports cropping images. This plugin is based on two different native libraries so it comes with d

HungHD 891 Dec 28, 2022
Flutter plugin that allows you to display multi image picker on iOS and Android. 👌🔝🎉

IMPORTANT: This repository has been archived and no longer mantained. As I don't have time anymore to work on the package it became very outdated. For

Radoslav Vitanov 898 Apr 29, 2021
A flutter plugin which provides Crop Widget for cropping images.

A flutter plugin which provides Crop Widget for cropping images. crop_your_image provides only minimum UI for deciding cropping area inside images. Other UI parts, such as "Crop" button or "Change Aspect Ratio" button, need to be prepared by each app developers.

Chooyan 96 Dec 31, 2022
Flutter video compress - Generate a new file by compressed video, and provide metadata. Get video thumbnail from a video path, supports JPEG/GIF. To reduce app size not using FFmpeg in IOS.

flutter_video_compress Generate a new path by compressed video, Choose to keep the source video or delete it by a parameter. Get video thumbnail from

天海るり 179 Dec 8, 2022
Generate a new file by compressed video, and provide metadata. Get video thumbnail from a video path, supports JPEG/GIF. To reduce app size not using FFmpeg in IOS.

flutter_video_compress Generate a new path by compressed video, Choose to keep the source video or delete it by a parameter. Get video thumbnail from

天海るり 179 Dec 8, 2022
Munem Sarker 1 Jan 25, 2022
This is a Flutter URL preview plugin for Flutter that previews the content of a URL

flutter_link_preview This is a URL preview plugin that previews the content of a URL Language: English | 中文简体 Special feature Use multi-processing to

yung 67 Nov 2, 2022
Flutter Advanced: PDF Viewer Tutorial Android & IOS | From URL & Asset | From URL & Asset

flutterpdfview A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Pawan Kumar 71 Jun 24, 2022
Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainder to the task, set color to separate tasks and it allows to add URL with URL's informations.

Utility Manager Flutter Application! Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainde

Kathirvel Chandrasekaran 6 Jan 6, 2022
A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your issue.

r_scan A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your iss

PengHui Li 112 Nov 11, 2022
dos downloader app is developed for downloading video. You can download video from YouTube and Facebook. You can also play video on background

dosdownloader Dos downloader app is developed for downloading video. You can download video from YouTube and Facebook. You can also play video on back

Md Abir Ahsan Tahmim 1 Dec 8, 2021
A cloudinatry video url sample project

cloudinary_media_sample A new Flutter project for Cloudinary video url. Getting Started This project is a starting point for a Flutter application. A

null 0 Nov 4, 2021
Flutter plugin to simply integrate Agora Video Calling or Live Video Streaming to your app with just a few lines of code.

Agora UI Kit for Flutter Instantly integrate Agora video calling or video streaming into your Flutter application. Getting started Requirements An Ago

Agora.io Community 106 Dec 16, 2022
A Video Player For Vimeo Videos in Flutter. This plugin allows us to play video from Vimeo and it supports Android and iOS platforms.

vimeo_video_player A Video Player For Vimeo Videos in Flutter. This plugin allow us to play video from vimeo and it's supports Android and iOS platfor

MindInventory 26 Dec 8, 2022
Video player-2.2.10 - A Flutter plugin for iOS, Android and Web for playing back video on a Widget surface

Video Player plugin for Flutter A Flutter plugin for iOS, Android and Web for pl

null 2 Sep 29, 2022
Hassan uni links - A Flutter plugin project to help with App/Deep Links (Android) and Universal Links and Custom URL schemes

Uni Links A Flutter plugin project to help with App/Deep Links (Android) and Uni

Hassan Al-Sabti 0 Feb 12, 2022
Cache json map to local file with Dart:io. Read file with sync api.

local_cache_sync 一个非常简单易用的Flutter本地储存库,适用于在本地储存一列轻量数据(例如用户保存在本地的设备信息,或者缓存一系列用户信息)。 local_cache_sync的所有方法都是同步,而不是异步的。这意味着你不需要使用await就可以获取数据。在flutter中,这

null 16 Jun 24, 2022
A simple flutter app that downloads a file from the internet, shows a custom-made download progress dialog and saves the file to device's internal storage

http_downloader A simple flutter app that downloads a file from the internet using the http plugin. It has a custom-designed progress dialog which dis

Akora Ing. Debrah Kwesi Buabeng 4 Apr 6, 2021
Flutter file based routing - File based routing and nested layouts for Flutter

Flutter File Based Routing I was inspired by the routing in remix.run with neste

Rody Davis 10 Sep 29, 2022
PowerFileView - A powerful file view widget, support a variety of file types, such as Doc Eexcl PPT TXT PDF and so on, Android is implemented by Tencent X5, iOS is implemented by WKWebView.

PowerFileView - A powerful file view widget, support a variety of file types, such as Doc Eexcl PPT TXT PDF and so on, Android is implemented by Tencent X5, iOS is implemented by WKWebView.

Yao 8 Oct 22, 2022