2017-08-24 9 views
0

Je veux avoir une miniature de 0.0 sec d'une vidéo. Actuellement j'utilise node-fluent-ffmpeg pour générer des vignettes. Voici le code:nodejs obtenir la miniature de fichier MP4 rapidement

ffmpeg(tempLocalFile) 
      .screenshots({ 
      timestamps: [0.0], 
      filename: 'xx.png', 
      folder: tempFilePath 
      }).on('end', function() { 
      console.log('done'); 
      }); 

Mais le problème est que cela prend trop de temps pour faire le processus. Il faut normalement 30 secondes pour générer la vignette. Ce qui continue d'augmenter si la taille du fichier mp4 augmente.

Donc, ma question est, Y at-il un moyen rapide de générer la vignette. Pouvons-nous améliorer le code ci-dessus pour améliorer les performances.

ps: La machine de ce code est en cours d'exécution est 512 Mo de RAM 800MHz

+0

800MHz est la vitesse du processeur? Utilisez une machine plus rapide :) –

+0

J'ai mis à niveau à la machine 2.5GHz .. Il prend moins maintenant .. Mais pas le niveau de production. Existe-t-il une bibliothèque/méthode alternative. Que puis-je utiliser? – user1590595

Répondre

0

Il y a une astuce pour faire ffmpeg décode une seule image. Vous définissez simplement le drapeau -ss avant la saisie. Cela le forcera à décoder uniquement le cadre spécifié, par opposition à l'ensemble de la vidéo.

ffmpeg -ss 0 -i input.mp4 -vframes 1 output.jpg

Je ne sais pas comment cela pourrait se faire en ffmpeg couramment, ou s'il est même possible. Vous pourriez file an issue