2017-08-24 1 views
0

Ich möchte ein Vorschaubild von 0.0 s eines Videos haben. Momentan verwende ich node-fluent-ffmpeg, um ein Thumbnail zu erzeugen. Folgendes ist der Code:nodejs bekomme mp4 thumbnail schnell

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

Aber das Problem ist, es dauert zu viel Zeit, um den Prozess zu tun. Es dauert normalerweise 30 Sekunden, um das Thumbnail zu erzeugen. Was sich erhöht, wenn die mp4-Datei größer wird.

Also meine Frage ist, gibt es eine schnelle Möglichkeit, das Thumbnail zu generieren. Können wir den obigen Code verbessern, um die Leistung zu verbessern?

ps: Die Maschine dieser Code ausgeführt wird, ist 512 MB RAM 800MHz

+0

800 MHz ist die Geschwindigkeit des Prozessors? Verwenden Sie eine schnellere Maschine :) –

+0

Ich verbesserte auf 2,5 GHz Maschine .. Es dauert weniger es jetzt .. Aber nicht Produktionsebene. Gibt es eine alternative Bibliothek/Methode? Welche kann ich verwenden? – user1590595

Antwort

0

Es gibt einen Trick ffmpeg nur um einen einzigen Rahmen dekodieren. Sie definieren einfach das -ss Flag vor der Eingabe. Dies wird dazu führen, dass nur der angegebene Frame dekodiert wird, im Gegensatz zum gesamten Video.

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

Ich bin mir nicht sicher, wie dies in fließend-ffmpeg getan werden könnte, oder ob es überhaupt möglich. Sie könnten file an issue

Verwandte Themen