Recherche avancée

Médias (91)

Autres articles (60)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • MediaSPIP Init et Diogène : types de publications de MediaSPIP

    11 novembre 2010, par

    À l’installation d’un site MediaSPIP, le plugin MediaSPIP Init réalise certaines opérations dont la principale consiste à créer quatre rubriques principales dans le site et de créer cinq templates de formulaire pour Diogène.
    Ces quatre rubriques principales (aussi appelées secteurs) sont : Medias ; Sites ; Editos ; Actualités ;
    Pour chacune de ces rubriques est créé un template de formulaire spécifique éponyme. Pour la rubrique "Medias" un second template "catégorie" est créé permettant d’ajouter (...)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (7676)

  • NodeJS/ffmpeg : Can't create screenshot of stream file

    11 septembre 2017, par user3142695

    I need to create a screenshot via ffmpeg (node-fluent-ffmpeg : https://github.com/fluent-ffmpeg/node-fluent-ffmpeg) of a stream, as my data is stored in a gridFS.

    This is how I’m doing that with a local file - and it works so far

    ffmpeg('/Users/Anybody/Downloads/1test.mp4')
     .on('error', (error) => {
       console.error(error)
     })
     .on('end', () => {
       console.log('Screenshots taken')
     })
     .screenshots({
       folder: '/Users/Anybody/Downloads/',
       timestamps: ['00:01.000']
     })

    But if I change the code to use a stream (gridfs-stream), no file is created, although the output gives me a successful message :

    import Grid from 'gridfs-stream'

    const gfs = Grid(
     MongoInternals.defaultRemoteCollectionDriver().mongo.db,
     MongoInternals.NpmModule
    )

    ffmpeg(gfs.createReadStream({ _id: sourceId }))
     .on('filenames', (filenames) => {
       console.log('Will generate ' + filenames.join(', '))
     })
     .on('codecData', (data) => {
       console.log('Input is ' + data.audio + ' audio ' + 'with ' + data.video + ' video')
     })
     .on('error', (error) => {
       console.error(error)
     })
     .on('end', () => {
       console.log('Screenshots taken')
     })
     .screenshots({
       folder: '/Users/Anybody/Downloads/',
       timestamps: ['00:01.000']
     })

    Output

    Will generate tn.png
    Input is aac (mp4a / 0x6134706D) audio with h264 (avc1 / 0x31637661) video
    Screenshots taken
  • Evolution #4103 : Autoriser /local/cache-gd2/ et /local/cache-vignette/ dans robots.txt

    27 mai 2018, par Franck D

    cedric - a écrit :

    Je ne sais pas si il faut Allow tout /local/cache-gd2/ avec l’impact que du coup toutes les images réduites de tout le site vont se retrouvées parsées et indexées, ou si il faut provisionner un dossier /local/indexable/ (ou meilleur nom à trouver) et un filtre image_indexable qui se charge de faire une copie de l’image dans ce dossier, qu’on rendrait visible du coup ?

    Hello :-)
    "Si" la raison historique, c’est une histoire de "confidentialité", alors faut garder cette possibilité !
    Par contre, ne faudrait-il pas un bouton "indexation" dans un sous-menu du menu "configuration" ?
    Un truc du genre "Indexation de tous les documents oui/non" ? Cela permettrait de garder le fonctionnement actuel car il serait pas défaut, mais aussi que les simples utilisateurs aient le choix ?

    Après, à ceux qui auraient un besoin "particulier" de faire un plug pour "affiner" l’indexation (uniquement les logos, ou que certains documents qui serait dans la médiathèque ( via l’apparition d’une case à cocher/décocher dans /ecrire/ ?exec=documents par exemple)

  • PHP readfile on a file which is increasing in size

    13 février 2013, par Sathiya Sundaram

    Is it possible to use PHP readfile function on a remote file whose size is unknown and is increasing in size ? Here is the scenario :

    I'm developing a script which downloads a video from a third party website and simultaneously trans-codes the video into MP3 format. This MP3 is then transferred to the user via readfile.

    The query used for the above process is like this :

    wget -q -O- "VideoURLHere" | ffmpeg -i - "Output.mp3" > /dev/null 2>&1 &

    So the file is fetched and encoded at the same time.
    Now when the above process is in progress I begin sending the output mp3 to the user via readfile. The problem is that the encoding process takes some time and therefore depending on the users download speed readfile reaches an assumed EoF before the whole file is encoded, resulting in the user receiving partial content/incomplete files.

    My first attempt to fix this was to apply a speed limit on the users download, but this is not foolproof as the encoding time and speed vary with load and this still led to partial downloads.

    So is there a way to implement this system in such a way that I can serve the downloads simultaneously along with the encoding and also guarantee sending the complete file to the end user ?

    Any help is appreciated.

    EDIT :
    In response to Peter, I'm actually using fread(read readfile_chunked) :

    <?php
    function readfile_chunked($filename,$retbytes=true) {
               $chunksize = 1*(1024*1024); // how many bytes per chunk
               $totChunk = 0;
               $buffer = '';
               $cnt =0;
               $handle = fopen($filename, 'rb');
               if ($handle === false) {
                   return false;
               }
               while (!feof($handle)) {
                   //usleep(120000); //Used to impose an artificial speed limit
                   $buffer = fread($handle, $chunksize);
                   echo $buffer;
                   ob_flush();
                   flush();
                   if ($retbytes) {
                       $cnt += strlen($buffer);
                   }
               }
                   $status = fclose($handle);
               if ($retbytes && $status) {
                   return $cnt;        // return num. bytes delivered like readfile() does.
               }
               return $status;
           }
           readfile_chunked($linkToMp3);
       ?>

    This still does not guarantee complete downloads as depending on the users download speed and the encoding speed, the EOF() may be reached prematurely.

    Also in response to theJeztah's comment, I'm trying to achieve this without having to make the user wait..so that's not an option.