video_compress_v2 1.0.0+1 copy "video_compress_v2: ^1.0.0+1" to clipboard
video_compress_v2: ^1.0.0+1 copied to clipboard

A new Flutter video compress, support HDR convert to SDR

video_compress_v2 #

Version Generic badge

A new Flutter video compress support convert HDR video to SDR video. Compress videos, remove audio, manipulate thumbnails, and make your video compatible with all platforms through this lightweight and efficient library. 100% native code was used, we do not use FFMPEG as it is very slow, bloated and the GNU license is an obstacle for commercial applications.

Table of Contents #

Lets Get Started #

1. Depend on it #

Add this to your package's pubspec.yaml file:

dependencies:
  video_compress_v2: last-version

2. Install it #

You can install packages from the command line:

with pub:

$  pub get

3. Import it #

Now in your Dart code, you can use:

import 'package:video_compress_v2/video_compress.dart';

How to use #

Imports #

import 'package:video_compress_v2/video_compress.dart';
    

Video compression #

MediaInfo mediaInfo = await VideoCompressV2.compressVideo(
  path,
  quality: VideoQuality.DefaultQuality, 
  deleteOrigin: false, // It's false by default
);

Check compress state #

VideoQuality.isCompressing

Get memory thumbnail from VideoPath #

final uint8list = await VideoCompressV2.getByteThumbnail(
  videopath,
  quality: 50, // default(100)
  position: -1 // default(-1)
);

Get File thumbnail from VideoPath #

final thumbnailFile = await VideoCompressV2.getFileThumbnail(
  videopath,
  quality: 50, // default(100)
  position: -1 // default(-1)
);

Get media information #

final info = await VideoCompressV2.getMediaInfo(videopath);

delete all cache files #

  • Delete all files generated by this will delete all files located at 'video_compress', you shoule ought to know what are you doing.
await VideoCompressV2.deleteAllCache()

Listen the compression progress #

class _Compress extends State<Compress> {

  Subscription _subscription;

  @override
  void initState() {
    super.initState();
    _subscription =
        VideoCompressV2.compressProgress$.subscribe((progress) {
      debugPrint('progress: $progress');
    });
  }

  @override
  void dispose() {
    super.dispose();
    _subscription.unsubscribe();
  }
}

TODO #

  • Add the trim video function
  • Add cancel function to Android

Methods #

Functions Parameters Description Returns
getByteThumbnail String path[video path], int quality(1-100)[thumbnail quality], int position[Get a thumbnail from video position] get thumbnail from video path Future<Uint8List>
getFileThumbnail String path[video path], int quality(1-100)[thumbnail quality], int position[Get a thumbnail from video position] get thumbnail file from video path Future<File>
getMediaInfo String path[video path] get media information from video path Future<MediaInfo>
compressVideo String path[video path], VideoQuality quality[compressed video quality], bool deleteOrigin[delete the origin video], int startTime[compression video start time], int duration[compression video duration from start time], bool includeAudio[is include audio in compressed video], int frameRate[compressed video frame rate] compression video at origin video path Future<MediaInfo>
cancelCompression none cancel compressing Future<void>
deleteAllCache none Delete all files generated by 'video_compress' will delete all files located at 'video_compress' Future<bool>

Subscriptions #

Subscriptions Description Stream
compressProgress$ Subscribe the compression progress steam double progress

Contribute #

Contributions are always welcome!

acknowledgment #

Inspired by the flutter_ffmpeg library. https://github.com/rurico/flutter_video_compress https://github.com/jonataslaw/VideoCompress.git

Made with ❤ by Flutter team at Tastech-asia

9
likes
160
points
0
downloads

Publisher

unverified uploader

Weekly Downloads

A new Flutter video compress, support HDR convert to SDR

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, lat_hdr_transcoder_v2, plugin_platform_interface

More

Packages that depend on video_compress_v2