Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (81)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

Sur d’autres sites (11102)

  • FFMpeg-Normalize Doesn't Exist After Install

    26 octobre 2019, par 123hierarchy

    I’m cloning this repo. I installed ffmpeg-normalize and pip install ffmpeg-normalize returns

    Requirement Already Satisfied...

    And yet I’m getting an error that ffmpeg-normalize doesn’t exist when executing the preprocess.py step :

    enter image description here

    The offending code :

    def preprocess(audio_filename, output_filename):
       ext_ind = audio_filename.rfind('.wav')
       audio_filename_formatted = audio_filename[:ext_ind] + '-formatted.wav'
       try:
           os.remove(audio_filename_formatted)
       except OSError:
           pass
       try:
           os.remove(output_filename)
       except OSError:
           pass
       error = os.system(
           'ffmpeg -i {} -acodec pcm_s16le -ac 1 -ar 16000 {}'.format(
               audio_filename, audio_filename_formatted))
       if error:
           print error
           raise StandardError('ffmpeg or audio file doesn\'t exist')
       error = os.system(
           'ffmpeg-normalize -f {}'.format(audio_filename_formatted))
       if error:
           raise StandardError('ffmpeg-normalize doesn\'t exist')

       data = wavfile.read(audio_filename_formatted)
       mfcc_inst = MFCC()
       features = mfcc_inst.sig2s2mfc_energy(data[1])

       np.save(output_filename, features)


    if __name__ == '__main__':
       if len(sys.argv) < 3:
           sys.exit(
               "Have to pass audio_filename and output_filename as parameters.")
       print sys.argv[1],sys.argv[2]
       preprocess(sys.argv[1], sys.argv[2])

    Is there another step after installing it that’s needed ? Is this an issue with running it on a Mac ? I’m completely lost here. Thank you in advance.

  • Can't upload huge video to google storage. I using "@ffmpeg-installer/ffmpeg" and @google-cloud/storage

    20 juillet 2022, par Dmytro Petskovych

    I upload file to google storage using "@ffmpeg-installer/ffmpeg" and @google-cloud/storage in my node.js App.
Step 1. file uploading to fs is in child processes - one process for each type of resolution (totaly six).
step 2. encription (converting to stream)
step 3. upload to google storage

    


    I use "Upload a directory to a bucket" in order to send the video from the client to the Google Cloud Storage bucket.

    


    This way is working fine only with small file.

    


    when I upload video, actually I upload six videos, one for each type resolution

    


    for example when I upload video with duration one hour it split on chunk and totally I get more three thousands files.

    


    So actually i upload folder with large amount of files, but not all of this files are uploaded to cloud.

    


    maybe someone had the similar problem and helps fix it.

    


    

    

    const uploadFolder = async (bucketName, directoryPath, socketInstance) => {
    try {
      let dirCtr = 1;
      let itemCtr = 0;
      const fileList = [];

      const onComplete = async () => {
        const folderName = nanoid(46);

        await Promise.all(
          fileList.map(filePath => {
            const fileName = path.relative(directoryPath, filePath);
            const destination = `${ folderName }/${ fileName }`;

            return storage
              .bucket(bucketName)
              .upload(filePath, { destination })
              .then(
                uploadResp => ({ fileName: destination, status: uploadResp[0] }),
                err => ({ fileName: destination, response: err })
              );
          })
        );

        if (socketInstance) socketInstance.emit('uploadProgress', {
          message: `Added files to Google bucket`,
          last: false,
          part: false
        });

        return folderName;
      };

      const getFiles = async directory => {
        const items = await fs.readdir(directory);
        dirCtr--;
        itemCtr += items.length;
        for(const item of items) {
          const fullPath = path.join(directory, item);
          const stat = await fs.stat(fullPath);
          itemCtr--;
          if (stat.isFile()) {
            fileList.push(fullPath);
          } else if (stat.isDirectory()) {
            dirCtr++;
            await getFiles(fullPath);
          }
        }
      }

      await getFiles(directoryPath);

      return onComplete();
    } catch (e) {
      log.error(e.message);
      throw new Error('Can\'t store folder.');
    }
  };

    


    


    



  • Merge audio (m4s) segments into one

    20 avril 2022, par akinuri

    I recently started learning Laravel, and currently watching an online course. Online courses are fine, but I like to have local copies, so I'm trying to download/merge segmented audio from Laracasts : Laravel 8 From Scratch series.

    


    I've written some scripts (in Python) that does the following :

    


      

    1. Download the master.json
    2. 


    3. Read master.json and download audio segments
    4. 


    5. Merge the segments into a single file (the file is not playable yet)
    6. 


    7. Process the audio file via ffmpeg (now it's playable, but has issues)
    8. 


    


    I think there's a problem with the step 3 and/or 4.

    


    In step/script 3, I create a new file, and add the contents of the segments to the file in binary.

    


    Then (step/script 4), run a ffmpeg command in python : ffmpeg -i merged-file.mp4 -c copy processed-file.mp4

    


    However, the final file doesn't work/play as expected. There's a delay in the beginning, and some parts seem to be cut off/skipped.

    


    There are three possibilities :

    


      

    • Segment files are problematic (not likely ?)
    • 


    • I'm doing the merging wrong
    • 


    • I'm doing the ffmpeg processing wrong
    • 


    


    Can someone guide me here ?

    



    


    The issues/colored parts in the ffmpeg output are :

    


    ...
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001cfbc0de780] could not find corresponding track id 2
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001cfbc0de780] could not find corresponding trex (id 2)
...
[aac @ 000001cfbc0f0380] Number of bands (31) exceeds limit (6).
...
[mp4 @ 000001cfbc20ecc0] track 0: codec frame size is not set
...
[mp4 @ 000001cfbc20ecc0] Non-monotonous DTS in output stream 0:0; previous: 318318, current: 286286; changing to 318319. This may result in incorrect timestamps in the output file.
...


    


    Everything required for a test case is located in GitHub (akinuri/dump/m4s-segments/). Screenshot of the contents :

    


    repo folder contents

    



    


    Note : there are two types/formats of audio in the master.json : mp42 and dash. dash works as expected, and seem to be used in limited videos/courses. On the other hand, mp42 appears more. So I need a way to make mp42 work.