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 :
- 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)
- 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
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)
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 :
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.phpgénère déjà des vignettes JPEG 320px, mais uniquement pour les images (y compris RAW viaRawPreviewExtractorInterface, et EXIF embarqué) — jamais pour les vidéossrc/Service/MediaProcessor.php:71-84n'appelleThumbnailServicequeif ($mediaType === 'photo')— aucune extraction de frame vidéo (pas de ffmpeg ni équivalent) nulle part dans le repoMedia(src/Entity/Media.php) est déjà créée pour toutFileimage/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éomedia_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 parFileCard.html.twigPiste de correction
FileCard.html.twig, remplacer/compléter l'icône par un<img>pointant versmedia_thumbnailquand unMediaavecthumbnailPathexiste pour leFileaffiché.claude/deploiement.md) dans le pipelineMediaProcessor, pourmediaType === 'video', produisant un thumbnail au même format que celui des images (même colonnethumbnailPath, même route de service)media_thumbnail, sans changement côté ces templatesCritères d'acceptation
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)