Orientação gerada a partir de informações públicas. Apenas para referência.
Um plugin Flutter que gera uma imagem em miniatura a partir de um arquivo de vídeo local ou de uma URL de vídeo. Ele suporta plataformas Android, iOS e Web, permitindo que desenvolvedores extraiam um quadro representativo de vídeos para visualizações, galerias ou exibições de mídia. O plugin utiliza recursos nativos por meio de implementações específicas da plataforma, garantindo desempenho eficiente e compatibilidade entre dispositivos. É especialmente útil em aplicativos que exigem representação visual de conteúdo de vídeo sem reproduzir o vídeo completo.
Casos de uso
Geração de pré-visualização de vídeo
miniaturas da galeria de mídia
Interfaces de usuário de recomendação de conteúdo
Pré-visualizações de upload de vídeo
Pré-visualizações de postagens em redes sociais
Principais recursos
Suporta arquivos de vídeo locais
Suporta URLs de vídeo
Multiplataforma (Android, iOS, Web)
Extração eficiente de quadros
Integração de API simples
Indicado para
Aplicações intensivas em mídia
Plataformas de compartilhamento de vídeos
sistemas de gerenciamento de conteúdo
Aplicativos móveis com bibliotecas de vídeo
Visualizadores de vídeo baseados na web
Considerações
Requer permissões adequadas no Android e no iOS
O suporte da Web pode ter limitações com base nas capacidades do navegador
Arquivos de vídeo grandes podem afetar o desempenho
A qualidade da miniatura depende da resolução do vídeo de origem
Solicitações de rede para URLs remotos exigem tratamento de erros
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
get_video_thumbnail
This project is a modified fork of video_thumbnail,
originally created by
John Zhong. Modifications and improvements have been made to adapt the project to new needs.
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 / Android / web.
Methods
function
parameter
description
return
thumbnailData
String [video], optional Map<String, dynamic> [headers], 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<Uint8List>]
thumbnailFile
String [video], optional Map<String, dynamic> [headers], String [thumbnailPath](folder or full path where to store the thumbnail file, null to save to same folder as the video file) this ignored on the web, 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<String>]
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 get_thumbnail_video as a dependency in your pubspec.yaml file.
final uint8list = awaitVideoThumbnail.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
XFile thumbnailFile = awaitVideoThumbnail.thumbnailFile(
video: "https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4",
thumbnailPath: (awaitgetTemporaryDirectory()).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,
);
final image = kIsWeb ? Image.network(thumbnailFile.path) : Image.file(File(thumbnailFile.path));
Generate a thumbnail file from video Assets declared in pubspec.yaml
Flutter Thumbnail on the Web platform has some limitations that might surprise developers more
familiar with
mobile/desktop targets.
In no particular order:
CORS headers
This plugin requires the server hosting the video to include appropriate CORS headers in the
response. Specifically, the
server must include the Access-Control-Allow-Origin and Access-Control-Allow-Methods headers in
the response to the
request.
For more information, please refer to
the Mozilla Developer Network documentation.
HTTP range headers
This plugin requires the server hosting the video to support HTTP range headers. If the server does
not support range
requests, the plugin may generate a thumbnail from the first frame of the video instead of the
desired frame.
For more information, please refer to
the Mozilla Developer Network documentation.
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.