Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.0.0

video_compress_plus

Biblioteca leve para manipulação de vídeo no Flutter. Compacte vídeos, remova o áudio e obtenha miniaturas de vídeo a partir do código Dart.

AndroidiOSmacOS
Downloads em 30 dias
39
Curtidas
23
Pontos Pub
140

Instalar pacote

flutter pub add video_compress_plus

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote leve do Flutter para manipulação de vídeo, permitindo que desenvolvedores compactem vídeos, removam faixas de áudio e gerem miniaturas diretamente a partir de código Dart. Projetado para Android, iOS e macOS, simplifica o processamento multimídia em aplicativos Flutter. O pacote se integra perfeitamente às capacidades nativas de manipulação de vídeo, oferecendo desempenho eficiente para otimização de vídeos diretamente no dispositivo. Ideal para aplicativos que exigem edição de vídeo offline ou redução de tamanho de arquivos sem dependências externas.

Casos de uso

  • Comprima vídeos para uploads mais rápidos
  • Remover áudio de arquivos de vídeo
  • Gerar miniaturas para pré-visualizações de vídeo
  • Otimize o armazenamento de vídeo em aplicativos
  • Processar vídeos antes de compartilhar
  • Reduza o tamanho do pacote do aplicativo

Principais recursos

  • Compressão de vídeo
  • Remoção de áudio
  • Geração de miniaturas
  • Suporte multiplataforma
  • Integração nativa
  • Configuração mínima

Indicado para

  • Aplicativos com muitos meios
  • Aplicativos de mídia social
  • Ferramentas de edição de vídeo
  • aplicativos de gerenciamento de arquivos
  • Processadores de vídeo offline
  • Aplicativos direcionados para dispositivos móveis e desktop

Considerações

  • Requer permissões nativas no Android e no iOS
  • Limitado a operações básicas de vídeo
  • Pode variar conforme o comportamento específico da plataforma
  • Sem recursos avançados de edição de vídeo
  • Depende das bibliotecas nativas subjacentes
  • Não adequado para processamento de vídeo em tempo real

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

video_compress

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. In addition, google chrome uses VP8/VP9, safari uses h264, and most of the time, it is necessary to encode the video in two formats, but not with this library. All video files are encoded in an MP4 container with AAC audio that allows 100% compatibility with safari, mozila, chrome, android and iOS.

Works on ANDROID, IOS and desktop (just MacOS for now).

Table of Contents

Lets Get Started

1. Depend on it

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

dependencies:
  video_compress: 1.0.0
    git: https://github.com/kamaravichow/VideoCompressPlus.git
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_plus/video_compress_plus.dart';

How to use

Imports
import 'package:video_compress_plus/video_compress_plus.dart';
    

Video compression

MediaInfo mediaInfo = await VideoCompress.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 VideoCompress.getByteThumbnail(
  videopath,
  quality: 50, // default(100)
  position: -1 // default(-1)
);

Get File thumbnail from VideoPath

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

Get media information

final info = await VideoCompress.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 VideoCompress.deleteAllCache()

Listen the compression progress

class _Compress extends State<Compress> {

  Subscription _subscription;

  @override
  void initState() {
    super.initState();
    _subscription =
        VideoCompress.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

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.