Skip to content

Vignettes des médias dans « Mes fichiers » + extraction de vignette vidéo (réutilisable dans Albums) #312

Description

@ronan-develop

Description

Dans « Mes fichiers », les médias (images/vidéos) n'affichent qu'une icône SVG générique par type MIME, jamais un aperçu réel du contenu — contrairement à « Albums »/« Galerie » qui affichent déjà des vignettes réelles via ThumbnailService.

Deux volets liés :

  1. Afficher la vignette réelle sur les cartes médias de « Mes fichiers » (déjà générée pour les images, simplement non exploitée à cet endroit)
  2. Ajouter l'extraction de vignette pour les vidéos, actuellement absente du système — cette extraction bénéficiera aussi à « Albums », qui affiche aujourd'hui les vidéos sans aperçu réel faute de génération de frame

Cause

  • templates/components/FileCard.html.twig : aucune balise <img> ni référence à media_thumbnail, uniquement des icônes génériques (lignes 3-13)
  • src/Service/ThumbnailService.php génère déjà des vignettes JPEG 320px, mais uniquement pour les images (y compris RAW via RawPreviewExtractorInterface, et EXIF embarqué) — jamais pour les vidéos
  • src/Service/MediaProcessor.php:71-84 n'appelle ThumbnailService que if ($mediaType === 'photo') — aucune extraction de frame vidéo (pas de ffmpeg ni équivalent) nulle part dans le repo
  • L'entité Media (src/Entity/Media.php) est déjà créée pour tout File image/vidéo, qu'il soit dans un Album ou dans « Mes fichiers » (MediaProcessor::resolveMediaType, indépendant du contexte Album) — le lien technique fichier↔média existe déjà, seul le câblage d'affichage manque côté « Mes fichiers », et l'extraction elle-même manque pour la vidéo
  • La route media_thumbnail (src/Controller/Api/MediaThumbnailController.php:51) n'est aujourd'hui utilisée que par les templates Albums/Galerie (albums.html.twig, album_detail.html.twig, gallery.html.twig, public_share.html.twig, NewAlbumModal.html.twig), jamais par FileCard.html.twig

Piste de correction

  • Vignette image dans Mes fichiers : dans FileCard.html.twig, remplacer/compléter l'icône par un <img> pointant vers media_thumbnail quand un Media avec thumbnailPath existe pour le File affiché
  • Extraction vignette vidéo : ajouter un mécanisme d'extraction de frame (ex. ffmpeg, à confirmer disponible sur l'environnement o2switch cf. .claude/deploiement.md) dans le pipeline MediaProcessor, pour mediaType === 'video', produisant un thumbnail au même format que celui des images (même colonne thumbnailPath, même route de service)
  • Une fois l'extraction vidéo en place, elle profite automatiquement à « Albums »/« Galerie » via la même route media_thumbnail, sans changement côté ces templates

Critères d'acceptation

  • Les images affichent leur vraie vignette dans « Mes fichiers » (au lieu de l'icône générique)
  • Les vidéos ont une vignette extraite automatiquement à l'upload/traitement, stockée comme pour les images
  • Les vidéos affichent leur vignette dans « Mes fichiers »
  • Les vidéos affichent également leur vignette dans « Albums »/« Galerie » (bénéfice indirect, même mécanisme)
  • Fallback vers l'icône générique si aucune vignette n'est disponible (échec d'extraction, format non supporté)
  • Tests : génération de vignette vidéo, absence de régression sur la génération image existante

Zone concernée

Backend (MediaProcessor, ThumbnailService) + Frontend (Twig)

Effort estimé

M — plusieurs jours (dépend de la disponibilité de ffmpeg ou équivalent sur l'environnement de production)

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNouvelle fonctionnalitéfrontendCSS, Twig, Stimulus, JS

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions