Recherche avancée

Médias (91)

Autres articles (56)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (8595)

  • Is async.js needed to process multiple ffmpeg conversions at the same time ?

    15 février 2019, par jurelik

    I’m trying to convert youtube videos to mp3 via my Node.js server, using ’ytdl-core’ and ’fluent-ffmpeg’. Since the server is intended to process multiple requests at the same time, it got me thinking whether or not async.js is needed to convert videos in a time efficient manner.

    The interesting thing however, is that upon testing the handling of multiple requests with and without using async.js, the result seems to be the same both ways - the time it takes to convert 3 videos is the same.

    Here is the code I’m using without async.js :

    server.get('/download/:id', (req, res) => {

     const id = req.params.id;
     let stream = ytdl(`https://www.youtube.com/watch?v=${id}`);

     ffmpeg(stream)
       .audioCodec('libmp3lame')
       .audioBitrate(128)
       .toFormat('mp3')
       .save(`public/downloads/${id}.mp3`)
       .on('error', err => {
         console.log(err);
       })
       .on('end', () => {
         console.log('file downloaded');
         send(req, `public/downloads/${id}.mp3`).pipe(res);
       });
    });

    And this is the code using async.js :

    let queue = async.queue((task, callback) => {
     let stream = ytdl(`https://www.youtube.com/watch?v=${task.id}`);

     ffmpeg(stream)
     .audioCodec('libmp3lame')
     .audioBitrate(128)
     .toFormat('mp3')
     .save(`public/downloads/${task.id}.mp3`)
     .on('error', err => {
       console.log(err);
       callback(err)
     })
     .on('end', () => {
       send(task.req, `public/downloads/${task.id}.mp3`).pipe(task.res);
       callback('file sucessfully downloaded');
     });
    }, 5);

    queue.drain = function() {
     console.log('all items downloaded');
    }

    server.get('/download/:id', (req, res) => {
     queue.push({req: req, id: req.params.id, res: res}, err => {
       console.log(err);
     });
    });

    Does anyone have any ideas why both methods seem to finish conversion at roughly the same time ? I would imagine using async.js should finish converting the videos faster due to processing in parallel, but that isn’t the case.

    Any thoughts would be much appreciated !

  • avfilter/vf_delogo : round to the closest value

    9 décembre 2015, par Jean Delvare
    avfilter/vf_delogo : round to the closest value
    

    When the interpolated value is divided by the sum of weights, no
    rounding is done, which means the value is truncated. This results in
    a slight bias towards dark green in the interpolated area. Rounding
    properly removes the bias.

    I measured this change to reduce the interpolation error by 1 to 2 %
    on average on a number of sample input and logo area combinations.

    Signed-off-by : Jean Delvare <jdelvare@suse.de>
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavfilter/vf_delogo.c
    • [DH] tests/ref/fate/filter-delogo
  • Anomalie #3265 (Nouveau) : pclzip et liens symboliques

    10 septembre 2014, par Jean-Daniel Dubois

    Bonjour,
    J’ai eu un problème avec le plugin "mes_fichiers" et un serveur où des liens symboliques ont été installés dans le répertoire IMG. Dans mon cas les certains liens symboliques pointent vers des zones communes ce qui a fait que les tailles calculées étaient aberrantes.

    En regardant dans la doc php on voit que la fonction « is_dir » suit les liens symboliques, c’est à dire qu’elle ne les voit pas.

    La sauvegarde devrait suivre le principe annoncé par le module pclzip qu’elle utilise c’est à dire ignorer les liens symboliques. Pour cela il faut tester les liens symboliques avant les répertoires ce que pclzip oublie de faire.

    Pour "mes_fichiers" il a suffit de modifier la fonction mes_fichiers_dirsize (dans inc/mes_fichiers_utils) en rajoutant un test.

    Pour pclzip (dans le core de spip) il m’a fallu changer l’ordre des tests dans la fonction privFileDescrExpand (/ecrire/inc/pclzip.php) de façon à tester les liens en premier.

    <br />     // ----- Look for real file or folder<br />      if (file_exists($v_descr['filename'])) {<br />        if (@is_link($v_descr['filename'])) {<br />          // skip<br />          continue;<br />        }<br />        else if (@is_file($v_descr['filename'])) {<br />          $v_descr['type'] = 'file';<br />        }<br />        else if (@is_dir($v_descr['filename'])) {<br />          $v_descr['type'] = 'folder';<br />        }<br />        else {<br />          // skip<br />          continue;<br />        }<br />      }<br />

    Jean-Daniel