Code Monkey home page Code Monkey logo

tapioca's Introduction

Tapioca - a Flutter plugin for video editing

Version Generic badge Discord tippin.me

codecov Tapioca is a Flutter plugin for video editing on Android and iOS.

Note: Feedback welcome and Pull Requests are most welcome!

Previews


No filter

Apply pink filter

Apply blue filter

Apply text filter

Apply image filter

Features

  • Develop for iOS and Android from a single codebase
  • Edit videos(Apply filter, Overlay text and images)

Installation

First, add tapioca as a dependency in your pubspec.yaml file.

iOS

Add the following entry to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

  • NSPhotoLibraryUsageDescription - Specifies the reason for your app to access the user’s photo library. This is called Privacy - Photo Library Usage Description in the visual editor.
  • NSPhotoLibraryAddUsageDescription - Specifies the reason for your app to get write-only access to the user’s photo library. This is called Privacy - Photo Library Additions Usage Description in the visual editor.

Android

Step 1. Ensure the following permission is present in your Android Manifest file, located in <project root>/android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Step 2. Add the JitPack repository to your Android build file, located in <project root>/android/build.gradle:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

Usage

import 'package:tapioca/tapioca.dart';
import 'package:path_provider/path_provider.dart';

final tapiocaBalls = [
    TapiocaBall.filter(Filters.pink),
    TapiocaBall.imageOverlay(imageBitmap, 300, 300),
    TapiocaBall.textOverlay("text",100,10,100,Color(0xffffc0cb)),
];
var tempDir = await getTemporaryDirectory();
final path = '${tempDir.path}/result.mp4';
final cup = Cup(Content(videoPath), tapiocaBalls);
cup.suckUp(path).then((_) {
  print("finish processing");
});

TapiocaBall

TapiocaBall is a effect to apply to the video.

TapiocaBall Effect
TapiocaBall.filter(Filters filter) Apply color filter
TapiocaBall.textOverlay(String text, int x, int y, int size, Color color) Overlay text
TapiocaBall.imageOverlay(Uint8List bitmap, int x, int y) Overlay images

Content

Content is a class to wrap a video file.

Cup

Cup is a class to wrap a Content object and List<TapiocaBall> object.

You can edit the video by executing .suckUp().

Supported Formats

  • On iOS, the backing video editor is AVFoundation. please refer here for list of supported video formats.
  • On Android, the backing video editor is Mp4Composer-android, The supported format is only MP4.

Articles

Contributing

Contributions are welcomed!

  • Report bugs and scenarios that are difficult to implement
  • Report parts of the documentation that are unclear
  • Update the documentation / add examples
  • Implement new features by making a pull-request

Please see the following guidelines when modifying the repository
Contributing

Community

Questions and proposals are most welcome!
Discord Banner 4

tapioca's People

Contributors

anharu2394 avatar tokku5552 avatar baneeishaque avatar gorter-dev avatar j-j-gajjar avatar mhdaslam790 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.