Recherche avancée

Médias (0)

Mot : - Tags -/navigation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (87)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

Sur d’autres sites (14147)

  • Image mask blur processing problem using ffmpeg

    16 avril 2024, par andrew kim

    I want to apply blur using masking to two or more points in the image. I want to use a circular or other type of blur in ffmpeg rather than a box blur. I wrote the ffmpeg code, but an error continued. When there is only one blur, it works correctly, but when there are two or more blurs, an error occurs. No matter how much I search, I can't figure it out, so I'd like to ask for help.

    


    The ffmpeg code I wrote is as follows.

    


    ffmpeg -i input.mp4 -i mask.png -filter_complex "`
[1:v]scale=200:200,pad=1920:1080:(ow-iw)/1:(oh-ih)/1[pmask1]; `
[1:v]scale=200:200,pad=1920:1080:(ow-iw)/3:(oh-ih)/3[pmask2]; `
[0:v][pmask1]alphamerge,avgblur=10[alf];[0:v][alf]overlay[temp1]; `
[temp1][pmask2]alphamerge,avgblur=10[alf2];[temp1][alf2]overlay[v] `
"-map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart maskedblur.mp4


    


    The error is as follows.

    


    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000026ed1d4a500] Invalid stream specifier: temp1.
    Last message repeated 1 times
[fc#0 @ 0000026ed1cdc280] Stream specifier 'temp1' in filtergraph description
[1:v]scale=200:200,pad=1920:1080:(ow-iw)/1:(oh-ih)/1[pmask1];
[1:v]scale=200:200,pad=1920:1080:(ow-iw)/3:(oh-ih)/3[pmask2];
[0:v][pmask1]alphamerge,avgblur=10[alf];[0:v][alf]overlay[temp1];
[temp1][pmask2]alphamerge,avgblur=10[alf2];[temp1][alf2]overlay[v]
 matches no streams.
Error initializing complex filters: Invalid argument


    


  • Revision 8b175679be : Masking intra mode choice adaptively The commit changes to mask available intra

    11 octobre 2013, par Yaowu Xu

    Changed Paths :
     Modify /vp9/encoder/vp9_onyx_if.c


     Modify /vp9/encoder/vp9_onyx_int.h


     Modify /vp9/encoder/vp9_rdopt.c



    Masking intra mode choice adaptively

    The commit changes to mask available intra prediction modes for test
    based on prediction block size.

    With this patch, encoding time of CpuUsed 2 reduces from 10% to 20% for
    HD clips with a compression drop of 0.2%

    Change-Id : I65f320f1237c0f5ae3a355bf7caf447f55625455

  • Can't upload folder with large amount of files to google storage. I using "@ffmpeg-installer/ffmpeg" and @google-cloud/storage

    20 juillet 2022, par Dmytro

    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 video.

    


    for example when I upload video with duration one hour it split on chunk and totally I get more three thousands files. But the problem occurs when there are more than 1500 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.');
    }
  };