
Recherche avancée
Autres articles (42)
-
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...) -
Diogene : création de masques spécifiques de formulaires d’édition de contenus
26 octobre 2010, parDiogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
A quoi sert ce plugin
Création de masques de formulaires
Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...) -
Problèmes fréquents
10 mars 2010, parPHP et safe_mode activé
Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site
Sur d’autres sites (6352)
-
Evolution #2995 : Améliorer la présentation de input file sur les Logos
8 février 2014, par Franck DalotBonjour
Test fait en SPIP 3.1.0-dev [21175]
A la recherche des bugs de spip 3.1 :-D
J’actualise les copies d’écrans dans le cas ou cela serait utile
Sauf concernant Opéra la 12.16 est identique à la 12.15, donc pas de nouvelle copieJ’ai également fait un test avec le navigateur de ma TV (samsung serie F6500), il s’agit du bloc de la médiathèque, mais c’est pareil pour les logos
Le texte à côté du bouton est couper suivant le navigateur et sur la TV, c’est comme s’il ne comprenait pas la langue car il affiche en anglais le bouton et aucun texte à côté -
Anomalie #3239 : _CACHE_CONTEXTES_AJAX génère un dossier /tmp/cache/contextes qui grossit à l’infini
19 juillet 2014, par marcimat ☺☮☯♫Juste un mot tout de même :
En SPIP 3, il ne faut pas déclarer cette constante. La solution intermédiaire qu’on utilise est de passer automatiquement par tmp/cache/contexte SI certaines conditions sont requises, au cas par cas. Particulièrement :
- si bug lors du décryptage du hash ajax (un bug sur une version de php) => on met le contexte en fichier cache
- si la longueur du hash dépasse la longueur autorisée pah suhosin (si présent) => on met le contexte en fichier cache.De la sorte, ça limite grandement le nombre de fichiers créés dans ce cache (et c’est fait de façon automatique).
Mais… ça ne résout pas du tout le problème : ces fichiers restent en cache et ne se nettoient jamais, ce qui potentiellement peut créer le même problème signalé ici.
-
Flutter video_compress and then ffmpeg trim video to 30s fails with endless logs
7 mars 2021, par Charles BassI am trying to make a simple app in Flutter. A user can either take or pick a video and then upload it. However, I wanted to compress the video for storage purposes on firebase storage, and also trim it to only get the first 30 seconds.


I am facing a very puzzling problem. I am able to compress the video, but with the resultant file, FFmpeg fails to trim it and I get endless logs which result in me having to stop the app and re-run. Alternatively, I am able to trim the video, but with the resultant file, I am unable to compress it getting the error :
Failed to open file '/data/user/0/live.roots.roots/app_flutter/TRIMMED.mp4'. (No such file or directory) PlatformException(error, java.io.IOException: Failed to instantiate extractor., null, java.lang.RuntimeException: java.io.IOException: Failed to instantiate extractor.


This is my code below :




//! function that controls file compression and trimming
static Future<file> compressFile(File file) async {
 print('[COMPRESSING FILE]');

 String mimeStr = lookupMimeType(file.path);
 var fileType = mimeStr.split('/');

 if (fileType.contains("image")) {
 print('[COMPRESSING FILE] - file is image');
 String tempPath = (await getTemporaryDirectory()).path;
 String targetPath = '$tempPath/${DateTime.now().toIso8601String()}.jpg';
 return await compressImageAndGetFile(file, targetPath);
 } else {
 print('[COMPRESSING FILE] - file is video');

 final compressedVideoFile = await compressVideoAndGetFile(file);
 print('[VIDEO FILE COMPRESSED]');
 return await trimVideoGetFile(compressedVideoFile);
 }
 }
 
 
//! function to compress video
static Future<file> compressVideoAndGetFile(File file) async {
 print('[COMPRESSING VIDEO]');

 var result = await VideoCompress.compressVideo(
 file.absolute.path,
 quality: VideoQuality.DefaultQuality,
 deleteOrigin: true,
 );

 print('[COMPRESSED VIDEO TO]: ${result.file.path}');

 return result.file;
 }
 
//! function to trim video
static Future<file> trimVideoGetFile(File file) async {
 print('[TRIMMING VIDEO]');

 Directory appDocumentDir = await getApplicationDocumentsDirectory();
 String rawDocumentPath = appDocumentDir.path;
 String outputPath = rawDocumentPath + "/TRIMMED.mp4";

 final newFile = File(outputPath);

 if (await newFile.exists()) {
 await newFile.delete();
 }

 _flutterFFmpeg
 .execute(
 "-ss 00:00:00 -i ${file.path} -to 00:00:30 -c copy $outputPath")
 .then((rt) async {
 print('[TRIMMED VIDEO RESULT] : $rt');
 if (rt == -1) {
 throw Exception("Something went wrong when trimming the video");
 }
 });

 return File(outputPath);
 }</file></file></file>







Thank you in advance